第五章 嵌入式开发平台组建

上传人:cl****1 文档编号:569274056 上传时间:2024-07-28 格式:PPT 页数:134 大小:2.82MB
返回 下载 相关 举报
第五章 嵌入式开发平台组建_第1页
第1页 / 共134页
第五章 嵌入式开发平台组建_第2页
第2页 / 共134页
第五章 嵌入式开发平台组建_第3页
第3页 / 共134页
第五章 嵌入式开发平台组建_第4页
第4页 / 共134页
第五章 嵌入式开发平台组建_第5页
第5页 / 共134页
点击查看更多>>
资源描述

《第五章 嵌入式开发平台组建》由会员分享,可在线阅读,更多相关《第五章 嵌入式开发平台组建(134页珍藏版)》请在金锄头文库上搜索。

1、第五章第五章 嵌入嵌入式式开发平台组建开发平台组建 第五章嵌入式开发平台组建学习目标学习目标1 1、了解嵌入式系统开发平台的基本知识、了解嵌入式系统开发平台的基本知识2 2、熟悉嵌入式系统程序调试的常用方法、熟悉嵌入式系统程序调试的常用方法3 3、掌握、掌握ADSADS嵌入式开发平台的组建方法嵌入式开发平台的组建方法4 4、掌握、掌握LinuxLinux嵌入式开发平台的组建方法嵌入式开发平台的组建方法第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 嵌入式系统的开发通常采用宿主机嵌入式系统的开发通常采用宿主机- -目标机模目标机模式,使用交叉编译的方法,开发模型如图:式,使用交

2、叉编译的方法,开发模型如图:5.1.1 5.1.1 开发模型开发模型 宿宿主主机机就就是是常常用用的的PCPC机机,嵌嵌入入式式开开发发环环境境通通常常建建立立在在宿宿主主机机上上。宿宿主主机机的的操操作作系系统统一一般般是是通通用用 的的 WindowsWindows或或LinuxLinux系统。系统。目目标标机机就就是是嵌嵌入入式式应应用用系系统统,形形态态和和结结构构各各异异,它它运运行行嵌嵌入入式式操操作作系系统统,与与主主机机通通过过串串口口、以以太太网网口口、JTAGJTAG调调试试口口、USBUSB口口或或其其他他方方式式通通信信,下下载载运运行行在在宿宿主主机机中中编编译好的代

3、码。译好的代码。第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 开发环境建立在宿主机上,用户所有的开发开发环境建立在宿主机上,用户所有的开发工作大都在宿主机开发环境中进行,包括程序编工作大都在宿主机开发环境中进行,包括程序编辑、编译、链接等。生成的可执行目标代码通过辑、编译、链接等。生成的可执行目标代码通过串口或以太网口下载到目标机,在目标机执行时,串口或以太网口下载到目标机,在目标机执行时,可以把执行结果回显到宿主机上,宿主机还可以可以把执行结果回显到宿主机上,宿主机还可以通过开发环境提供的调试工具对代码进行调试。通过开发环境提供的调试工具对代码进行调试。5.1.1 5.1

4、.1 开发模型开发模型 第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 RTOSRTOS(Real Time Operation SystemReal Time Operation System,实时实时操作系统)是嵌入式应用软件的运行基础,它与操作系统)是嵌入式应用软件的运行基础,它与硬件平台息息相关。随着应用系统越来越复杂,硬件平台息息相关。随着应用系统越来越复杂,需要管理的资源越来越多,没有操作系统对其调需要管理的资源越来越多,没有操作系统对其调度是不行的。操作系统向应用软件提供访问资源度是不行的。操作系统向应用软件提供访问资源的的BSPBSP(Board Suppor

5、t PackageBoard Support Package,板级支持包),板级支持包),这样就可以屏蔽部分硬件,使开发者不必关注过这样就可以屏蔽部分硬件,使开发者不必关注过多的硬件细节,减小开发难度。同时,通过多的硬件细节,减小开发难度。同时,通过RTOSRTOS,还可以提高应用软件在不同硬件平台间的代码还可以提高应用软件在不同硬件平台间的代码复用率。复用率。5.1.1 5.1.1 开发模型开发模型 第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 在嵌入式应用软件开发中,目前大部分使用在嵌入式应用软件开发中,目前大部分使用C C语言作为编程语言。与一般语言作为编程语言。与一

6、般C C语言编译器不同的语言编译器不同的是,嵌入式是,嵌入式C C语言编译器通常都经过优化,以提语言编译器通常都经过优化,以提高编译效率。另外,由于嵌入式处理器速度的提高编译效率。另外,由于嵌入式处理器速度的提高和存储空间的增加,一些嵌入式平台也开始采高和存储空间的增加,一些嵌入式平台也开始采用用C+C+作为编程语言。作为编程语言。5.1.1 5.1.1 开发模型开发模型 第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 在嵌入式系统开发环境中,交叉调试工具是在嵌入式系统开发环境中,交叉调试工具是必需的。交叉调试工具用于在宿主机上调试目标必需的。交叉调试工具用于在宿主机上调试目

7、标机上运行的程序。调试时,在目标机上运行一个机上运行的程序。调试时,在目标机上运行一个代理,以接收主机发送过来的命令和代码,并且代理,以接收主机发送过来的命令和代码,并且解释执行。通过调试器,开发者可以设定程序运解释执行。通过调试器,开发者可以设定程序运行的起止位置和断点,同时可以查看和设置变量、行的起止位置和断点,同时可以查看和设置变量、寄存器及内存中的值,设置程序运行的条件,使寄存器及内存中的值,设置程序运行的条件,使开发者感到如同在目标机上调试程序一样方便。开发者感到如同在目标机上调试程序一样方便。5.1.1 5.1.1 开发模型开发模型 第五章嵌入式开发平台组建5.1 5.1 开发平台

8、简介开发平台简介 嵌入式系统是硬件和软件的综合体,开发嵌入嵌入式系统是硬件和软件的综合体,开发嵌入式系统首先需要建立一个嵌入式硬件平台。嵌入式式系统首先需要建立一个嵌入式硬件平台。嵌入式硬件平台的构建常用以下三种方案:硬件平台的构建常用以下三种方案:1 1、购置实验箱、购置实验箱 2 2、购置开发板、购置开发板 3 3、自制电路板、自制电路板 5.1.5.1. 硬件开发平台硬件开发平台第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介设计设计ARMARM硬件系统,一般遵从以下原则:硬件系统,一般遵从以下原则:(1 1)采用新型的和适合应用场合的)采用新型的和适合应用场合的ARMA

9、RM,可极大地提高系统可极大地提高系统的程序执行效率,缩短系统反应时间,满足适时性要求。的程序执行效率,缩短系统反应时间,满足适时性要求。(2 2)采用低功耗贴片封装元器件,可以有效地降低功耗,减)采用低功耗贴片封装元器件,可以有效地降低功耗,减小电路板面积,提高电路本身的抗干扰能力,从而提高系统小电路板面积,提高电路本身的抗干扰能力,从而提高系统的稳定性和可靠性。的稳定性和可靠性。(3 3)采用通用型平台硬件电路设计,可以根据需要增删部件)采用通用型平台硬件电路设计,可以根据需要增删部件而生产不同型号的产品。而生产不同型号的产品。(4 4)在硬件电路设计中将富余的端口都做成插座形式的接口。)

10、在硬件电路设计中将富余的端口都做成插座形式的接口。(5 5)通过选择)通过选择CPUCPU芯片,将逻辑接口芯片尽量集成在片内,芯片,将逻辑接口芯片尽量集成在片内,可以简化系统设计。可以简化系统设计。5.1.5.1. 硬件开发平台硬件开发平台第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 嵌入式软件开发环境依赖于嵌入式软件系统架嵌入式软件开发环境依赖于嵌入式软件系统架构。嵌入式软件包括与硬件相关的底层软件、操作系构。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通信协议、数据库、浏览器和应用程统、图形界面、通信协议、数据库、浏览器和应用程序等。其中,嵌入式操作系统是用

11、来支持嵌入式应用序等。其中,嵌入式操作系统是用来支持嵌入式应用的系统软件,通常包括与硬件相关的底层驱动软件、的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动、通信协议、图形用户界面等。系统内核、设备驱动、通信协议、图形用户界面等。5.1.3 5.1.3 软件开发环境软件开发环境 第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 目前流行的嵌入式操作系统主要有目前流行的嵌入式操作系统主要有LinuxLinux、WindowsCEWindowsCE、VxWorksVxWorks、ucOSucOS等,由于等,由于LinuxLinux的源的源代码开放、内核可裁剪、支持多

12、任务和安全可代码开放、内核可裁剪、支持多任务和安全可靠等诸多优点,使得它已成为一款应用广泛的靠等诸多优点,使得它已成为一款应用广泛的操作系统。操作系统。5.1.3 5.1.3 软件开发环境软件开发环境 第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 1 1、ADSADS开发环境开发环境 ADSADS(ARM Developer SuiteARM Developer Suite,ARMARM开发环境)开发环境)在没有硬件平台的情况下,可以提供软件模拟的方在没有硬件平台的情况下,可以提供软件模拟的方法进行软件开发,即法进行软件开发,即ARMulateARMulate模式,在模式,

13、在PCPC机上模拟机上模拟调试。经模拟调试以后,当目标机硬件研制成功时,调试。经模拟调试以后,当目标机硬件研制成功时,再利用再利用ARMARM提供的提供的JTAGJTAG端口将目标程序下载到目标端口将目标程序下载到目标机进行实时调试。机进行实时调试。5.1.3 5.1.3 软件开发环境软件开发环境 第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 2 2、LinuxLinux交叉编译环境交叉编译环境 对于以对于以LinuxLinux作为操作系统的嵌入式系统开发,作为操作系统的嵌入式系统开发,可以借助于可以借助于PCPC机的丰富资源和强大功能,在机的丰富资源和强大功能,在PCPC

14、机的机的LinuxLinux环境下进行应用程序的编写和交叉编译,把环境下进行应用程序的编写和交叉编译,把生成的目标程序通过串口和网口下载到目标机进行生成的目标程序通过串口和网口下载到目标机进行调试。这种开发模式的特点是,在开发过程的始终,调试。这种开发模式的特点是,在开发过程的始终,宿主机和目标机都在一个强大的宿主机和目标机都在一个强大的LinuxLinux网络之中。网络之中。5.1.3 5.1.3 软件开发环境软件开发环境 第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 嵌入式系统的调试方式有多种,常见的有嵌入式系统的调试方式有多种,常见的有模拟器方式、监控器方式、仿真器方

15、式和在线模拟器方式、监控器方式、仿真器方式和在线调试器方式四种调试器方式四种。5.1.4 5.1.4 嵌入式系统的调试方式嵌入式系统的调试方式第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 1 1、模拟器方式、模拟器方式 调试工具和待调试的应用软件都在宿主机上运行,通过软调试工具和待调试的应用软件都在宿主机上运行,通过软件手段模拟目标机的行为,达到程序调试的目的,此为模拟器件手段模拟目标机的行为,达到程序调试的目的,此为模拟器方式。简单的模拟器可以通过指令解释方式逐条执行源程序,方式。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,进行语法和逻辑上的调

16、试。分配虚拟存储空间和外设,进行语法和逻辑上的调试。 模拟器软件独立于微处理器硬件,一般与编译器集成在同模拟器软件独立于微处理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和测试工具。但值得注一个环境中,是一种有效的源程序检验和测试工具。但值得注意的是,模拟器的功能毕竟是以一种处理器模拟另一种处理器意的是,模拟器的功能毕竟是以一种处理器模拟另一种处理器的行为,在指令执行时间、中断响应、定时器处理等方面,有的行为,在指令执行时间、中断响应、定时器处理等方面,有时会存在很大的差别。另外,它也无法实现嵌入式系统在实际时会存在很大的差别。另外,它也无法实现嵌入式系统在实际运行中的真实状

17、况。运行中的真实状况。ADSADS中的中的ARMulatorARMulator模拟器就属于此种工具,它可以模拟开发各模拟器就属于此种工具,它可以模拟开发各种种ARMARM嵌入式处理器,具有指令和定时等模拟功能。嵌入式处理器,具有指令和定时等模拟功能。5.1.4 5.1.4 嵌入式系统的调试方式嵌入式系统的调试方式第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 2 2、监控器方式、监控器方式 宿主机和目标机通过某种接口(通常是串口)连宿主机和目标机通过某种接口(通常是串口)连接,宿主机上提供调试界面,被调试程序下载到目标接,宿主机上提供调试界面,被调试程序下载到目标机上运行,这

18、种调试方式属于监控器方式。机上运行,这种调试方式属于监控器方式。 监控程序是一段运行于目标机上的可执行程序,监控程序是一段运行于目标机上的可执行程序,主要负责监控目标机上被调试程序的运行情况,并在主要负责监控目标机上被调试程序的运行情况,并在宿主机的控制下,及时反馈目标机的运行信息,与宿宿主机的控制下,及时反馈目标机的运行信息,与宿主机端的调试器一起完成对应用程序的调试。监控器主机端的调试器一起完成对应用程序的调试。监控器方式操作简单易行,功能强大,不需要专门的调试硬方式操作简单易行,功能强大,不需要专门的调试硬件,适用面宽,已广泛应用于多种嵌入式系统的开发件,适用面宽,已广泛应用于多种嵌入式

19、系统的开发之中。但监控器调试主要用于调试目标机应用程序,之中。但监控器调试主要用于调试目标机应用程序,不适宜调试目标机操作系统。不适宜调试目标机操作系统。5.1.4 5.1.4 嵌入式系统的调试方式嵌入式系统的调试方式第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 2 2、监控器方式、监控器方式 ARMARM公司的公司的AngelAngel是可以常驻在目标机是可以常驻在目标机FlashFlash中的中的监控程序,只需通过串行口与宿机相连,就可以在宿监控程序,只需通过串行口与宿机相连,就可以在宿主机上对基于主机上对基于ARMARM架构处理器的目标机进行监控式开架构处理器的目标机

20、进行监控式开发和调试。发和调试。5.1.4 5.1.4 嵌入式系统的调试方式嵌入式系统的调试方式第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 3 3、仿真器方式、仿真器方式 仿真器(仿真器(In-Circuit EmulatorIn-Circuit Emulator,ICEICE)是一种完是一种完全仿造调试目标全仿造调试目标CPUCPU设计的仪器,目标系统对用户来设计的仪器,目标系统对用户来说是完全透明的、可控的。仿真器与目标机通过仿真说是完全透明的、可控的。仿真器与目标机通过仿真头连接,与主机有串口、并口、以太网口或头连接,与主机有串口、并口、以太网口或USBUSB口等口

21、等连接方式。仿真器可以真正地运行所有的目标连接方式。仿真器可以真正地运行所有的目标CPUCPU动动作,并且可以在其使用的内存中设置非常多的硬件中作,并且可以在其使用的内存中设置非常多的硬件中断点,实时查看所有需要的数据,从而给调试过程带断点,实时查看所有需要的数据,从而给调试过程带来很多便利。由于仿真器自成体系,调试时可以连接来很多便利。由于仿真器自成体系,调试时可以连接目标机,也可以不接目标机。目标机,也可以不接目标机。5.1.4 5.1.4 嵌入式系统的调试方式嵌入式系统的调试方式第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 3 3、仿真器方式、仿真器方式 使用使用IC

22、EICE同使用一般的目标硬件一样,只是在同使用一般的目标硬件一样,只是在ICEICE上完成调试后,需要把调试好的程序重新下载到目标上完成调试后,需要把调试好的程序重新下载到目标系统上而已。由于系统上而已。由于ICEICE价格昂贵,而且每种价格昂贵,而且每种CPUCPU都需要都需要一种与之对应的一种与之对应的ICEICE,使得开发成本较高。使得开发成本较高。5.1.4 5.1.4 嵌入式系统的调试方式嵌入式系统的调试方式第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 4 4、在线调试器方式、在线调试器方式 使用使用ICDICD(In-Circuit DebuggerIn-Cir

23、cuit Debugger,在线调试器)在线调试器)和目标机的调试端口连接,发送调试命令和接收调试和目标机的调试端口连接,发送调试命令和接收调试信息,可以完成必要的调试功能。一般情况下,在以信息,可以完成必要的调试功能。一般情况下,在以ARMARM为为CPUCPU的目标机上采用的目标机上采用JTAGJTAG边界扫描口进行调试。边界扫描口进行调试。使用合适的开发工具可以利用这些接口。例如,使用合适的开发工具可以利用这些接口。例如,ARMARM目目标机,可以将标机,可以将JTAGJTAG调试器接在目标机的调试器接在目标机的JTAGJTAG口上,宿口上,宿主机通过主机通过JTAGJTAG口与口与AR

24、MARM处理器核进行通信。由于处理器核进行通信。由于JTAGJTAG调调试的目标程序是在目标机上执行,因此,这种方式更试的目标程序是在目标机上执行,因此,这种方式更接近于目标硬件。该方式是目前采用较多的一种调试接近于目标硬件。该方式是目前采用较多的一种调试方式。方式。 5.1.4 5.1.4 嵌入式系统的调试方式嵌入式系统的调试方式第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 由于嵌入式系统中微处理器的多样性,嵌入式系由于嵌入式系统中微处理器的多样性,嵌入式系统的可移植性显得更加重要,所以,有些嵌入式操作统的可移植性显得更加重要,所以,有些嵌入式操作系统的内核明确分成两层,

25、其上层一般称为内核,而系统的内核明确分成两层,其上层一般称为内核,而低层则称为硬件抽象层或硬件适配层,更通俗地称为低层则称为硬件抽象层或硬件适配层,更通俗地称为BSPBSP(Board Support Package, Board Support Package, 板级支持包)。板级支持包)。BSPBSP是是操作系统与目标硬件的中间接口,是软件包中具有平操作系统与目标硬件的中间接口,是软件包中具有平台依赖性的一部分。台依赖性的一部分。5.1.5 5.1.5 板级支持包板级支持包第五章嵌入式开发平台组建5.1 5.1 开发平台简介开发平台简介 BSPBSP将实时操作系统和目标应用环境的硬件连将实

26、时操作系统和目标应用环境的硬件连接在一起,充分利用硬件设备的特性,其功能主要接在一起,充分利用硬件设备的特性,其功能主要包含以下两项:包含以下两项:1 1、在系统启动时,对硬件进行初始化、在系统启动时,对硬件进行初始化2 2、为驱动程序提供访问硬件的手段、为驱动程序提供访问硬件的手段 开发一个性能稳定可靠、可移植性好、可配置开发一个性能稳定可靠、可移植性好、可配置性好、规范化的性好、规范化的BSPBSP将大大提高嵌入式操作系统各将大大提高嵌入式操作系统各方面的性能。在目标环境改变的情况下,嵌入式操方面的性能。在目标环境改变的情况下,嵌入式操作系统的作系统的BSPBSP只需要在原有基础上稍作调整

27、,就可只需要在原有基础上稍作调整,就可以适应新的目标环境,这无疑将显著缩短开发周期,以适应新的目标环境,这无疑将显著缩短开发周期,提高开发效率。提高开发效率。5.1.5 5.1.5 板级支持包板级支持包比如对设备的中断,对比如对设备的中断,对CPUCPU、寄存器和内存的寄存器和内存的分配等进行操作。这个分配等进行操作。这个工作是比较系统化的,工作是比较系统化的,要根据要根据CPUCPU的启动、操的启动、操作系统的初始化和系统作系统的初始化和系统的工作流程等多方面要的工作流程等多方面要求来决定。求来决定。驱动程序经常要访问设备的寄驱动程序经常要访问设备的寄存器,通过对设备的寄存器进存器,通过对设

28、备的寄存器进行操作而达到控制设备的目的。行操作而达到控制设备的目的。如果目标系统采用统一编址的如果目标系统采用统一编址的方式,开发者在驱动程序中用方式,开发者在驱动程序中用C C语言的函数就可访问。但是,语言的函数就可访问。但是,如果目标系统采用独立编址方如果目标系统采用独立编址方式,那么式,那么C C语言就不能直接访语言就不能直接访问设备中的寄存器,只有用汇问设备中的寄存器,只有用汇编语言编写的函数才能对外围编语言编写的函数才能对外围设备寄存器的访问。设备寄存器的访问。BSPBSP就是就是为上层的驱动程序提供访问硬为上层的驱动程序提供访问硬件设备寄存器的函数包。件设备寄存器的函数包。第五章嵌

29、入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 嵌入式系统开发离不开具体的硬件平台。基于嵌入式系统开发离不开具体的硬件平台。基于ARM2410SARM2410S嵌入式微处理器,平台由微处理器核心板、嵌入式微处理器,平台由微处理器核心板、主板及主板及LCDLCD三部分组成,具有丰富的接口资源和良三部分组成,具有丰富的接口资源和良好的可扩展性,为嵌入式系统设计提供了一种参考好的可扩展性,为嵌入式系统设计提供了一种参考方案。虽然如此,其开发理念和开发方法在其他硬方案。虽然如此,其开发理念和开发方法在其他硬件平台上也是相似的,只是地址分配、

30、接口方式和件平台上也是相似的,只是地址分配、接口方式和存储处理稍有区别而已。在掌握一般开发方法的基存储处理稍有区别而已。在掌握一般开发方法的基础上,其开发技术可以方便地用于其他任何一种平础上,其开发技术可以方便地用于其他任何一种平台。台。第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 UP-NETARM2410-SUP-NETARM2410-S开开发发平平台台基基于于ARM2410SARM2410S嵌嵌入入式式微微处处理理器器,采采用用核核心心板板加加主主板板的的结结构构方方式式,主主工工作作频频率率202202M M,可可

31、移移植植LinuxLinux、WindowsCEWindowsCE、VxWorksVxWorks和和ucOSucOS等等操操作作系系统统,支支持持QT/EQT/E等等嵌嵌入入式式图图形形界界面面,包括完整的驱动程序。包括完整的驱动程序。 5.2.1 5.2.1 系统概述系统概述第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 5.2.1 5.2.1 系统概述系统概述第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 5.2.1 5.2.1 系统概述系统概述第五章

32、嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 5.2.2 5.2.2 核心板结构核心板结构UP-NETARM2410-SUP-NETARM2410-S开发平台核心板资源主要有:开发平台核心板资源主要有:(1 1)CPU: ARM920TCPU: ARM920T结构芯片,工作频率结构芯片,工作频率202202MHz MHz ,SAMSUNGSAMSUNG公司的公司的S3c2410X S3c2410X (2 2)FLASH:64MB NANDFLASH:64MB NAND型,型号为型,型号为SAMSUNGSAMSUNG的的K9F12

33、08K9F1208(3 3)RAMRAM:64MB SDRAM64MB SDRAM,型号为型号为HY57V561620ATHY57V561620ATH H(4 4)200200管脚精密插座管脚精密插座第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 5.2.2 5.2.2 核心板结构核心板结构 由于由于ARM2410SARM2410S微处理器位于核心微处理器位于核心板中,通过板中,通过200200引引脚的插座引出脚的插座引出CPUCPU的接口线,电路板的接口线,电路板布线比较复杂,所布线比较复杂,所以采用以采用6 6层印刷电层

34、印刷电路板布线。路板布线。 第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 5.2.3 5.2.3 主板结构主板结构UP-NETARM2410-SUP-NETARM2410-S开发平台主板资源主要有:开发平台主板资源主要有:(1 1)USBUSB口口: : 包包括括一一个个USB USB DeviceDevice接接口口和和4 4个个USB USB HostHost接接口口。前前者者直直接接来来自自处处理理器器,后后者者是是处处理理器器的的HostHost接接口口经经过过由由AT43301AT43301构构成成的的USB U

35、SB HUBHUB电电路路扩扩展展出出来的来的4 4个个HostHost接口。接口。 (2 2)JTAGJTAG调试口调试口 :2020针标准口,针标准口,1414针简易口。针简易口。(3 3)AUDIOAUDIO口口:44.144.1KHzKHz音音频频, , 采采用用UDA1341UDA1341芯芯片片构构成成,可可放放音音和和录录音音,通通过过IISIIS总总线线连连接接到到处处理理器器,具有功放电路驱动喇叭,板载具有功放电路驱动喇叭,板载MICMIC和音频和音频IOIO插座。插座。第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平

36、台开发平台 5.2.3 5.2.3 主板结构主板结构UP-NETARM2410-SUP-NETARM2410-S开发平台主板资源主要有:开发平台主板资源主要有:(4 4)鼠鼠标标、键键盘盘和和ICIC卡卡接接口口:通通过过一一片片ATMEGA8ATMEGA8单单片片机机作作为为控控制制器器,驱驱动动PS2PS2接接口口、ICIC卡卡接接口口和和板板载载KEYPADKEYPAD。ATMEGA8ATMEGA8单单片片机机通通过过IICIIC总总线线和和ARMARM处处理理器器连接。连接。 (5 5)ADAD口口:3 3个个电电位位器器控控制制输输入入,8 8个个通通道道经经过过跳跳线线设设置置可可

37、全全部部作作为为外外部部模模拟拟电电压压输输入入, ,同同时时在在板板上上设设模模拟拟电电压压输输入入专专用用接接口口,由由S3C2410S3C2410芯芯片片管管脚脚引引出。出。(6 6)DC/STEPDC/STEP电电机机:直直流流电电机机信信号号来来自自PWMPWM输输出出,步步进进电电机机信信号号来来自自EXIOEXIO扩扩展展, EXIOEXIO扩扩展展电电路路由由7474HC573HC573构构成成,分分配配专专用用地地址址段段,和和IDEIDE接接口口在在同同一一BANKBANK。第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S

38、开发平台开发平台 5.2.3 5.2.3 主板结构主板结构UP-NETARM2410-SUP-NETARM2410-S开发平台主板资源主要有:开发平台主板资源主要有:(7 7)IDEIDE卡卡接接口口:IDEIDE接接口口直直接接出出自自扩扩展展总总线线,由由软件完成驱动控制。软件完成驱动控制。(8 8)CFCF卡接口:卡接口:PCMCIAPCMCIA模式的模式的CFCF卡接口。卡接口。(9 9)SDSD卡插座:直接来自卡插座:直接来自s3c2410s3c2410的的SDSD控制器。控制器。(1010)PCMCIAPCMCIA插插座座: PCMCIAPCMCIA接接口口挂挂在在扩扩展展总总线线

39、上上,通通过过EPM3128A100 EPM3128A100 CPLDCPLD和和HC245HC245芯芯片片等等实实现现总总线线隔隔离离和和控控制制,并并需需要要配配置置专专用用的的电电源源控控制制芯芯片片TPS2211TPS2211。(1111)IrDAIrDA/RS485/RS485:利利用用UART2UART2实实现现,分分别别经经过过TFDU4100TFDU4100收收发发器器和和MAX485MAX485芯芯片片完完成成。要要作作IrDAIrDA实实验验,必必须须将将UART2UART2设设置置到到IrDAIrDA电电路路上上,而而不不能能同同时时作作RS485RS485实验。实验。

40、第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 5.2.3 5.2.3 主板结构主板结构UP-NETARM2410-SUP-NETARM2410-S开发平台主板资源主要有:开发平台主板资源主要有:( 1212) CANCAN总总 线线 : 由由 控控 制制 器器 MCP2510MCP2510和和 驱驱 动动 器器TJA1050TJA1050构成。构成。(1313)DADA电电路路:设设置置两两个个1010位位DACDAC端端口口,采采用用MAX504 MAX504 接接SPISPI总线,输出两路模拟电压总线,输出两路模拟电压

41、( (预留一路)。预留一路)。(1414)串串口口:包包括括两两个个RS232RS232接接口口,处处理理器器的的UART0UART0和和UART1UART1经经过过MAX3232MAX3232芯芯片片电电压压转转换换后后用用DB9DB9插插座座输输出。出。(1515)以以太太网网卡卡接接口口:包包括括两两个个相相同同的的网网卡卡电电路路,芯片型号芯片型号AX88796AX88796,10M/100M10M/100M自适应(预留一个)自适应(预留一个)。第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 5.2.3 5.2.3

42、主板结构主板结构UP-NETARM2410-SUP-NETARM2410-S开发平台主板资源主要有:开发平台主板资源主要有:(1616)168168PinPin的的扩扩展展插插座座:该该插插座座和和计计算算机机的的内内存存条条插插座座规规格格一一致致,用用户户可可以以据据此此设设计计合合适适的的扩扩展展板板。扩扩展展槽槽上上包包含含扩扩展展总总线线的的所所有有信信号号,可可复复用用的的系系统统资源以及开发平台尚未使用的空置资源。资源以及开发平台尚未使用的空置资源。(1717)显显示示接接口口:采采用用8 8寸寸1616bit bit TFT TFT LCDLCD显显示示器器,640480640

43、480分分辨辨率率,型型号号是是LQ080V3DG01LQ080V3DG01。S3C2410S3C2410处处理理器器内内含含LCDLCD控控制制器器,这这使使得得LCDLCD部部分分的的电电路路非非常常简简单单,LCDLCD控控制制器器的的信信号号线线经经过过驱驱动动电电路路后后即即可可连连接接LCDLCD模块。模块。(1818)触触摸摸屏屏:采采用用2410 2410 CPU CPU ADAD单单元元的的接接口口方方案案,可实现触摸屏功能。可实现触摸屏功能。第五章嵌入式开发平台组建5.2 UP-NETARM2410-S5.2 UP-NETARM2410-S开发平台开发平台 5.2.4 5.

44、2.4 地址空间分配地址空间分配UP-NETARM2410-SUP-NETARM2410-S拥拥 有有 6464MB MB NAND NAND FLASHFLASH和和 6464MB MB SDRAMSDRAM,其地址空间分配如表所示其地址空间分配如表所示开始地址开始地址区域大小区域大小用途说明用途说明0x000000000x00020000128K BootLoader存储区存储区0x000300000x001000001M Linux内核存储区内核存储区0x001300000x003000003M Linux根文件系统存储区根文件系统存储区0x004300000x0200000032M W

45、inCE存储区存储区0x300000000x0400000064M SDRAM区区第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境 ADSADS全全称称为为ARM ARM Developer Developer SuiteSuite,是是ARMARM公公司司推推出出的的新新一一代代ARMARM集集成成开开发发工工具具,可可以以完完成成ARMARM应应用用软软件件的的编编辑辑、编编译译和和链链接接等等工工作作,支支持持包包括括WindowsWindows和和LinuxLinux在内的多种操作系统。在内的多种操作系统。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境

46、开发环境 ADSADS由三部分组成:由三部分组成:命令行工具命令行工具集成开发环境集成开发环境实用程序和支持软件实用程序和支持软件5.3.1 5.3.1 ADSADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境1.1.命令行工具命令行工具 命命令令行行工工具具通通过过命命令令方方式式实实现现嵌嵌入入式式应应用用程程序序的的编编译译与与调调试试,也也可可以以将将许许多多编编译译命命令令编编写写在在一一个个脚脚本本文文件件中中,通通过过运运行行脚脚本本文文件件自自动动完完成成编编译译工工作作。命命令令行行工工具具可可分分为为三三个个部部分分:编编译译器器、链链接

47、接器器和和符符号调试器。号调试器。 5.3.1 ADS5.3.1 ADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境1.1.命令行工具命令行工具1 1)编译器)编译器 ADSADS提提供供多多种种编编译译器器,以以支支持持ARM ARM 和和ThumbThumb指指令令的编译,主要有:的编译,主要有:ArmccArmcc:ARM ARM C C编编译译器器,用用于于将将用用ANSI ANSI C C编编写写的的程程序序编译成编译成3232位位ARMARM指令代码。指令代码。TccTcc:Thumb CThumb C编译器。编译器。ArmcppArmcpp:A

48、RM C+ARM C+编译器。编译器。TcppTcpp:Thumb C+Thumb C+编译器。编译器。ArmasmArmasm:ARMARM和和ThumbThumb的汇编语言编译器。的汇编语言编译器。5.3.1 ADS5.3.1 ADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境1.1.命令行工具命令行工具2 2)链接器)链接器 armlinkarmlink是是ARMARM链链接接器器。该该命命令令既既可可以以将将编编译译得得到到的的一一个个或或多多个个目目标标文文件件和和相相关关的的一一个个或或多多个个库库文文件件进进行行链链接接,生生成成一一个个可可执

49、执行行文文件件,也也可可以以将将多多个个目目标标文文件件部部分分链链接接成成一一个个目目标标文文件件,以以供供进进一一步步的的链接。链接。5.3.1 ADS5.3.1 ADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境1.1.命令行工具命令行工具3 3)符号调试器)符号调试器 armsdarmsd是是ARMARM和和ThumbThumb的的符符号号调调试试器器。借借助助armsdarmsd,可可以以进进行行源源码码级级的的程程序序调调试试,也也可可以以进进行行单单步步调调试、设置断点、查看变量和内存单元的内容。试、设置断点、查看变量和内存单元的内容。5.3.

50、1 ADS5.3.1 ADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境 2.GUI2.GUI集成开发环境集成开发环境 GUIGUI开开发发环环境境包包含含CodeWarriorCodeWarrior和和AXDAXD两两部部分分,前前者是集成开发工具,后者是可视化调试工具。者是集成开发工具,后者是可视化调试工具。 CodeWarriorCodeWarrior集集成成开开发发环环境境为为管管理理和和开开发发应应用用项项目目提提供供了了良良好好的的图图形形用用户户界界面面,使使用用CodeWarriorCodeWarrior可可以以为为ARMARM和和Thumb

51、Thumb处处理理器器开开发发用用C C、C+C+或或者者汇汇编编语语言言编编写写的的程程序序代代码码。在在整整个个开开发发周周期期中中,开开发发者者无无需需离离开开CodeWarriorCodeWarrior,就就能能编编写写和和编编译译基基于于ARMARM的的嵌嵌入式程序。入式程序。5.3.1 ADS5.3.1 ADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境 2.GUI2.GUI集成开发环境集成开发环境 AXDAXD(ARM ARM eXtendedeXtended DebuggerDebugger,ARMARM扩扩展展调调试试器器),是是可可视视化

52、化的的调调试试工工具具。AXDAXD本本身身是是一一个个软软件件,开开发发者者通通过过这这个个软软件件可可以以对对包包含含有有调调试试信信息息的的、正正在在运运行行的的ARMARM可可执执行行代代码码进进行行程程序序调调试试,如如变变量量的的查查看,断点的设置等。看,断点的设置等。5.3.1 ADS5.3.1 ADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境 3.3.实用工具实用工具 ADSADS提提供供一一组组实实用用工工具具以以辅辅助助ARMARM程程序序的的编编写写与与调试,主要有:调试,主要有: (1 1)Flash Flash downloade

53、rdownloader:该该工工具具用用于于把把二二进进制制映映象象文文件件从从宿宿主主机机下下载载到到ARMARM目目标标机机上上的的FlashFlash存存储储器中。器中。(2 2)fromELFfromELF:这这是是ArmArm映映象象文文件件转转换换工工具具,可可将将ELFELF格格式式的的文文件件转转换换为为各各种种格格式式的的输输出出文文件件,包包括括BINBIN格格式式映映像像文文件件等等。FromELFFromELF命命令令也也能能够够为为输输入入映映像文件产生文本信息,例如,代码和数据长度。像文件产生文本信息,例如,代码和数据长度。5.3.1 ADS5.3.1 ADS的组成

54、的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境 3.3.实用工具实用工具(3 3)armararmar:ARMARM库库函函数数生生成成器器,它它可可将将一一系系列列ELFELF格格式式的的目目标标文文件件以以库库函函数数的的形形式式集集合合在在一一起起。用用户户可可以以把把一一个个库库传传递递给给一一个个链链接接器器以以代代替替几几个个ELFELF文文件。件。 5.3.1 ADS5.3.1 ADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境 4.4.支持软件支持软件 ADSADS为为用用户户提提供供ARMulatorARMula

55、tor软软件件,使使用用户户可可以以在在软软件件仿仿真真的的环环境境下下调调试试用用户户应应用用程程序序。ARMulatorARMulator是是一一个个ARMARM指指令令集集仿仿真真器器,集集成成在在ARMARM的的调调试试器器AXDAXD中中,提提供供对对ARMARM处处理理器器的的指指令令集集仿仿真真,为为ARMARM和和ThumbThumb提提供供精精确确模模拟拟,使使用用户户可可以以在在硬硬件件尚尚未未做做好好的情况下,开发应用程序代码。的情况下,开发应用程序代码。5.3.1 ADS5.3.1 ADS的组成的组成第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5

56、.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用 Code Code WarriorWarrior提提供供一一个个简简单单通通用用的的图图形形化化用用户户界界面面,用用于于管管理理ARMARM软软件件开开发发项项目目。可可以以以以ARMARM和和ThumbThumb处处理理器器为为对对象象,利利用用Code Code WarriorWarrior开发开发C C、C+C+和和ARMARM汇编程序。汇编程序。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置

57、与使用的配置与使用1.1.创建项目工程创建项目工程 创创建建项项目目工工程程是是嵌嵌入入式式实实际际开开发发中中必必不不可可少少的的一一部部分分,工工程程将将所所有有的的源源码码文文件件组组织织在在一一起起,并并能能够够决决定定最最终终生生成成文文件件存存放放的的路路径径、输输出出的的格格式式等等。在在CodeWarriorCodeWarrior中中新新建建一一个个工工程程的的方方法法有有两两种种,可可以以在在工工具具栏栏中中单单击击“New”New”按按钮钮,也也可可以在以在“File”File”菜单栏中选择菜单栏中选择“New”New”菜单项。菜单项。第五章嵌入式开发平台组建5.3 ADS

58、5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用1.1.创建项目工程创建项目工程 在这个对话框中为用户提供了在这个对话框中为用户提供了7 7种可选择的工程类型:种可选择的工程类型:ARM ARM ExecutablExecutabl Image ImageARM Object LibraryARM Object LibraryEmpty ProjectEmpty ProjectMakefileMakefile Importer Wizard Importer WizardThumb ARM Executable Im

59、ageThumb ARM Executable ImageThumb Executable imageThumb Executable imageThumb Object LibraryThumb Object LibraryARM ARM ExecutablExecutabl Image Image:用于由用于由ARMARM指令代码指令代码生成一个生成一个ELFELF格式的可格式的可执行映像文件。执行映像文件。 ARM Object LibraryARM Object Library:用于由用于由ARMARM指令代码生指令代码生成一个成一个armararmar格式的目格式的目标文件库标文件库

60、 Empty ProjectEmpty Project:用用于创建一个不包含任于创建一个不包含任何库或源文件的空白何库或源文件的空白工程。工程。 MakefileMakefile Importer Importer WizardWizard:用用于于将将Visual Visual C C的的nmakenmake或或GNU GNU makemake文文件件转转入入到到CodeWarrior CodeWarrior IDEIDE工程文件。工程文件。Thumb Thumb ARM ARM Executable Executable ImageImage:用用于于由由ARMARM指指令令和和Thumb

61、Thumb指指令令的的混混合合代代码码生生成成一一个个可可执执行行的的ELFELF格格式式的的映映像文件。像文件。Thumb Executable Thumb Executable imageimage:用于由用于由ThumbThumb指指令创建一个可执行的令创建一个可执行的ELFELF格式的映像文件。格式的映像文件。 Thumb Object LibraryThumb Object Library:用于由用于由ThumbThumb指令的代码指令的代码生成一个生成一个armararmar格式的目格式的目标文件库。标文件库。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5

62、.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用1.1.创建项目工程创建项目工程 选选择择ARM ARM ExecutablExecutabl ImageImage,然然后后在在Project Project namename里里输输入入工工程程文文件件名名,在在LocationLocation项项中中单单击击SetSet按按 钮钮 , 选选 择择 项项 目目 工工 程程 存存 放放 位位 置置 , 如如D:D:ARMExamARMExam。最最后后单单击击“确确定定”按按钮钮,即即可可创创建建一一个个新新的的名名为为Exam1Exam1的的工工程

63、程,工工程程文文件件的的扩扩展展名名为为. .mcpmcp。 新新 工工 程程 创创 建建 以以 后后 , 接接 着着 会会 弹弹 出出 一一 个个Exam1.mcpExam1.mcp的的工工程程管管理理窗窗口口, , 包包含含3 3个个标标签签页页,分分别别为为FilesFiles、Link Link OrderOrder、TargetsTargets,默默认认显显示示第第一个标签页一个标签页FilesFiles,用于管理工程源文件。用于管理工程源文件。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior

64、的配置与使用的配置与使用1 1、创建项目工程、创建项目工程 工程文件只是一个项目管工程文件只是一个项目管理系统。一个嵌入式应用工程理系统。一个嵌入式应用工程通常由许多通常由许多C C、C+C+或或ARMARM汇编语汇编语言编写的源程序组成。源程序言编写的源程序组成。源程序的编写可以在的编写可以在WindowsWindows的记事本、的记事本、LinuxLinux的的vivi等多种文本编辑器中等多种文本编辑器中实现,也可在实现,也可在Code WarriorCode Warrior环环境中创建。境中创建。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2

65、Code WarriorCode Warrior的配置与使用的配置与使用1.1.创建项目工程创建项目工程 单击菜单命令单击菜单命令“File”|“New”File”|“New”,打开如图所示的对打开如图所示的对话框,单击标签页话框,单击标签页“File”File”,在,在FilenameFilename文本框中输文本框中输入要创建的源程序文入要创建的源程序文件名,单击确定按钮,件名,单击确定按钮,即可进入源程序编辑即可进入源程序编辑状态。状态。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使

66、用的配置与使用1.1.创建项目工程创建项目工程 Code WarriorCode Warrior提提供的程序编辑器如图供的程序编辑器如图所示。所示。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用1.1.创建项目工程创建项目工程 源程序文件编辑好后,需要添加到工程中。源程序文件编辑好后,需要添加到工程中。鼠标在工程文件管理器窗口中右击,从弹出的快鼠标在工程文件管理器窗口中右击,从弹出的快捷菜单中选择捷菜单中选择“Add Files”Add Files”,从而把源程序添从而把源程

67、序添加到工程中。当选中要添加的源文件时,会弹出加到工程中。当选中要添加的源文件时,会弹出一个对话框,询问用户把文件添加到何类目标中,一个对话框,询问用户把文件添加到何类目标中,一般选择一般选择DebugRelDebugRel。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用1.1.创建项目工程创建项目工程 三种选项的含义:三种选项的含义:DebugRelDebugRel:使用该选项,在生成目标的时候,会使用该选项,在生成目标的时候,会为每一个源文件生成调试信息;为每一个源文件生成

68、调试信息;DebugDebug:使用该选项,会为每一个源文件生成最使用该选项,会为每一个源文件生成最完全的调试信息;完全的调试信息;ReleaseRelease:使用该选项,编译时只产生可执行目使用该选项,编译时只产生可执行目标代码,不生成任何调试信息。标代码,不生成任何调试信息。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程 在在进进行行编编译译和和链链接接前前,首首先先需需要要进进行行环环境境配配置置,生生 成成 目目 标标 文文

69、 件件 。 单单 击击 “Edit”Edit”菜菜 单单 栏栏 下下 的的“DebugRelDebugRel Settings”Settings”菜菜 单单 项项 , 打打 开开DebugRelDebugRel设置对话框设置对话框 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程 其其中中左左边边部部分分是是可可设设置置的的模模块块,右右边边部部分分为为每每一模块可设置的项目,它包括如下一模块可设置的项目,它包括如下6 6大模块:大模块

70、:1 1)TargetTarget设置设置 ,默认,默认2 2)Language SettingsLanguage Settings设置设置 ,ARM920T ARM920T 3 3)LinkerLinker设置设置 4 4)EditorEditor设置,默认值设置,默认值 5 5)DebuggerDebugger设置,默认值设置,默认值AXD AXD 6 6)ARM FeaturesARM Features设置设置 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和

71、链接项目工程编译和链接项目工程在在LinkerLinker设设置置中中,标标签签页页OutputOutput中中的的LinktypeLinktype提提供供了了3 3种种链链接接方方式式。PartialPartial方方式式表表示示链链接接器器只只进进行行部部分分链链接接,经经过过部部分分链链接接生生成成的的目目标标文文件件,可可以以作作为为以以后后进进一一步步链链接接时时的的输输入入文文件件。SimpleSimple方方式式是是默默认认的的链链接接方方式式,也也是是使使用用最最多多的的链链接接方方式式,它它链链接接生生成成简简单单的的ELFELF格格式式的的目目标标文文件件,使使用用的的是是

72、 链链 接接 器器 选选 项项 中中 指指 定定 的的 地地 址址 映映 射射 方方 式式 。ScatteredScattered方方式式使使得得链链接接器器根根据据scatterscatter格格式式文文件件中中指指定定的的地地址址映映射射,生生成成复复杂杂的的ELFELF格格式式的的映映像像文件。文件。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程在在选选中中SimpleSimple方方式式后后,会会出出现现Simple Simp

73、le imageimage选选项项,其中包含三种可设置项目:其中包含三种可设置项目: RO RO BaseBase:这这个个文文本本框框设设置置使使包包含含有有RORO段段的的加加载载域域和和运运行行域域为为同同一一个个地地址址,默默认认是是0x80000x8000。用用户户要要根根据据自自己己硬硬件件的的实实际际SDRAMSDRAM的的地地址址空空间间来来修修改改这这个个地地址址,保保证证在在这这里里填填写写的的地地址址是是程程序序运运行行时时,SDRAMSDRAM地址空间所能覆盖的地址。地址空间所能覆盖的地址。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2

74、5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程RW RW BaseBase:这这个个文文本本框框设设置置了了包包含含RWRW和和ZIZI输输出出段段的的运运行行域域地地址址。如如果果选选中中splitsplit选选项项,链链接接器器生生成成的的映映像像文文件件将将包包含含两两个个加加载载域域和和两两个个运运行行域域,此此时时,在在RW RW BaseBase中中所所输输入入的的地地址址为为包包含含RWRW和和ZIZI输出段的域设置了加载域和运行域地址。输出段的域设置了加载域和运行域地址。RopiRopi:选选中中

75、这这个个设设置置将将告告诉诉链链接接器器,使使包包含含有有RORO输输出出段段的的运运行行域域位位置置无无关关。使使用用这这个个选选项项,链链接接器器将将检检查查各各段段之之间间的的重重定定址址是是否否有有效效,同同时时确确保保任任何何由由armlinkarmlink自自身身生生成成的的代代码码是是与与只只读读位位置置无无关的。关的。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程RwpiRwpi:选选中中该该选选项项将将会会告告诉诉链

76、链接接器器,使使包包含含RWRW和和ZIZI输输出出段段的的运运行行域域位位置置无无关关。该该选选项项要要求求RW RW BaseBase有有值值,如如果果没没有有给给它它指指定定数数值值的的话话,默默认认为为0 0值值。如如果果这这个个选选项项没没有有被被选选中中,域域就就标标识识为为绝绝对。每一个可写的输入段必须是读写位置无关的。对。每一个可写的输入段必须是读写位置无关的。Split Split ImageImage:选选择择这这个个选选项项把把包包含含RORO和和RWRW输输出出段段的的加加载载域域分分成成2 2个个加加载载域域:一一个个是是包包含含RORO输输出出段段的的域域,一一个个

77、是是包包含含RWRW输输出出段段的的域域。这这个个选选项项要要求求RW RW BaseBase有有值值,如如果果没没有有给给RW RW BaseBase选选项项设设置置,则默认值为则默认值为 RW Base 0RW Base 0。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程RelocatableRelocatable:选选择择这这个个选选项项将将保保留留映映像像文文件件的的重重定定址址偏偏移移量量。这这些些偏偏移移量量为为程程序序加

78、加载载器器提提供供了了有用信息。有用信息。在在OptionsOptions选选项项卡卡中中,需需注注意意的的是是Image Image entry entry pointpoint文文本本框框。该该文文本本框框用用来来指指定定映映像像文文件件的的初初始始入入口口点点地地址址值值,当当映映像像文文件件被被加加载载程程序序加加载载时时,加载程序会跳转到该地址去执行。加载程序会跳转到该地址去执行。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工

79、程在在LinkerLinker模模块块中中还还有有一一个个ARM ARM from from ELFELF选选项项,可可设设置置链链接接器器、编编译译器器或或汇汇编编器器的的输输出出代代码码格格式式转转换换。例例如如,将将ELFELF格格式式的的可可执执行行映映像像文文件件转转换换成成可可以以烧烧写写到到FlashFlash中中的的二二进进制制格格式式文文件件;在在TargetTarget设设置置中中选择了选择了Post-linkerPost-linker,可以使用反汇编选项。可以使用反汇编选项。在在Output Output formatformat下下拉拉列列表表中中,为为用用户户提提供供

80、了了多多种种可可以以转转换换的的目目标标格格式式,在在ARMARM开开发发中中,一一般般选选择择Plain Plain binarybinary,这这是是一一个个二二进进制制格格式式的的可可执执行行文文件件,可以被烧写到目标机的可以被烧写到目标机的FlashFlash中。中。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程 对对 于于 UP-NETARM2410-SUP-NETARM2410-S硬硬 件件 平平 台台 而而 言言 ,

81、在在SimpleSimple链链接接方方式式下下,RO RO BaseBase应应为为0x30008000, 0x30008000, 是是目目标标机机上上SDRAMSDRAM的的入入口口地地址址,RW RW BaseBase应应为为0x302000000x30200000,目目标标机机上上系系统统可可读读写写的的内内存存入入口口地地址址。也也就就是是说说,在在UP-NETARM2410-SUP-NETARM2410-S目目标标机机上上,0x300080000x300080000x302000000x30200000之之间间是是只只读读区区域域,存存放放程程序序代代码码段段,而而在在0x3020

82、00000x30200000开开始始的的区区域域是是程程序序的的数数据据段段。对对于于读读者者使使用用的的不不同同型型号号的的目目标标机机,应根据具体情况进行相应设置。应根据具体情况进行相应设置。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程 编译和链接的操作步骤为:编译和链接的操作步骤为:单单击击CodeWarrior CodeWarrior IDE IDE “Project”“Project”菜菜单单栏栏下下的的“make”mak

83、e”菜菜 单单 项项 , 或或 单单 击击 工工 程程 窗窗 口口 上上 方方 的的“Make”Make”按按钮钮,就就可可启启动动对对工工程程的的编编译译和和链链接接。整个编译链接的输出信息将显示窗口中。整个编译链接的输出信息将显示窗口中。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.2 5.3.2 Code WarriorCode Warrior的配置与使用的配置与使用2.2.编译和链接项目工程编译和链接项目工程 编编译译和和链链接接完完成成后后,在在工工程程Exam1Exam1所所在在的的目目录录下下,会会生生成成一一个个名名为为Exam1_dataExam

84、1_data的的目目录录,在在这这个个目目录录下下不不同同类类别别的的编编译译目目标标文文件件存存放放在在相相应应目目录录中中。使使用用DebugRelDebugRel目目标标,生生成成的的最最终终文文件件都都应应该该在在该该目目录录下下。进进入入DebugRelDebugRel目目录录后后,makemake生生成成的的含含可可调调试试信信息息的的映映像像文文件件Exam1.axfExam1.axf和和二二进进制制文文件件。映映像像文文件件用用于于调调试试,二二进进制制文文件件可可以以烧烧写写到到S3C2410XS3C2410X的的FlashFlash中运行。中运行。第五章嵌入式开发平台组建5

85、.3 ADS5.3 ADS开发环境开发环境5.3.3 5.3.3 AXDAXD的配置与使用的配置与使用 AXDAXD是是ADSADS系系统统中中独独立立于于CodeWarriorCodeWarrior的的调调试试软软件件,支支持持软软件件模模拟拟和和硬硬件件仿仿真真。AXDAXD能能够够装装载载映映像像文文件件到到目目标标内内存存,具具有有单单步步、全全速速和和断断点点等等调调试功能,可以观察变量、寄存器和内存数据等。试功能,可以观察变量、寄存器和内存数据等。 无无论论利利用用模模拟拟器器进进行行调调试试,还还是是借借助助仿仿真真器器进进行行调调试试,前前提提是是在在CodeWarriorCo

86、deWarrior环环境境中中已已经经编编写写、编编译译、链链接接生生成成了了含含有有调调试试信信息息的的可可执执行行ELFELF格格式的映象文件。式的映象文件。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 1.1.调试环境调试环境 启启动动调调试试环环境境的的方方法法常常用用三三种种:一一是是单单击击工工程程窗窗口口上上方方的的“Debug”Debug”按按钮钮,二二是是选选 择择 CodeWarriorCodeWarrior中中“Project”Project”菜菜单单栏栏下下的的“Debug”Debug”

87、菜菜单单项项,三三是是通通过过WindowsWindows的的开开始菜单实现。始菜单实现。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 2.2.模拟调试模拟调试 在在AXDAXD中中,利利用用系系统统提提供供的的ARMulatorARMulator模模拟拟器器,可可以以在在没没有有目目标标机机的的情情况况下下对对嵌嵌入入式式源源程程序序进进行行调调试。模拟调试操作步骤如下:试。模拟调试操作步骤如下:(1 1)配置模拟器)配置模拟器 在在AXDAXD窗窗口口中中,选选择择“options”|“Configure

88、options”|“Configure Target”Target”菜菜单单命命令令,弹弹出出“Choose Choose Target”Target”对对话话框框,在在该该对对话话框框中中选选择择“ARMUL”ARMUL”方方式式并并按按“OK”OK”按钮按钮 。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 2.2.模拟调试模拟调试(2 2)打开调试文件)打开调试文件 在在 AXDAXD窗窗 口口 上上 , 选选 择择 “File”|“Load File”|“Load image”image”菜菜单单项项,打

89、打开开Load Load ImageImage对对话话框框,找找到到要要调调试试装装载载的的. .axfaxf映映像像文文件件,单单击击“打打开开”按按钮钮,把把映映像像文文件件装装载载到到目目标标内内存存中中。在在所所打打开开的的映映像像文文件件中会有一个蓝色的箭头指示当前执行的位置。中会有一个蓝色的箭头指示当前执行的位置。(3 3)全速运行)全速运行 选选择择“Execute”Execute”菜菜单单栏栏下下的的“Go”Go”命命令令,将将全全速速运运行行调调试试程程序序。要要想想进进行行单单步步的的代代码码调调试试,可可在在“Execute”Execute”菜菜单单中中选选择择“Step

90、”Step”选选项项,或或按按下下F10F10快捷键,窗口中蓝色箭头会发生相应的移动。快捷键,窗口中蓝色箭头会发生相应的移动。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 2.2.模拟调试模拟调试(4 4)设置断点)设置断点 将将光光标标移移到到要要进进行行断断点点设设置置的的代代码码处处,在在“Execute”Execute”菜菜单单栏栏中中选选择择“Toggle Toggle Breakpoint”Breakpoint”命命令令或或按按F9F9键键,就就会会在在光光标标所所在在行行的的起起始始位位置置出出现

91、现一个红色实心圆点,表示该处已设为断点。一个红色实心圆点,表示该处已设为断点。(5 5)查看寄存器值)查看寄存器值 查查看看寄寄存存器器值值在在实实际际的的嵌嵌入入式式开开发发调调试试中中经经常常使使用用,方方法法为为从从“Processor Processor View”View”菜菜单单栏栏中中选选择择“Register”Register”选项。选项。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 5.3.3 AXDAXD的配置与使用的配置与使用 2 2、模拟调试、模拟调试(6 6)查看存储器值)查看存储器值从从“Processor Processor Vi

92、ew”View”菜菜单单栏栏中中选选择择“Memory”Memory”选选项项,可可以以打打开开存存储储器器窗窗口口,在在存存储储器器单单元元中中保保存存的的数据一目了然。数据一目了然。(7 7)查看变量值)查看变量值查查看看某某些些变变量量的的值值,鼠鼠标标选选中中变变量量,然然后后右右击击,在在弹弹出出的的对对话话框框中中选选择择WatchWatch,将将会会显显示示指指定定变变量量的的详详细信息细信息。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 3.3.在线调试在线调试 借借助助于于JTAGJTAG调

93、调试试器器,可可以以对对实实际际的的目目标标机机进进行行在在线调试。操作步骤如下:线调试。操作步骤如下:1 1)连接)连接JTAGJTAG调试器调试器 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 3.3.在线调试在线调试 2 2)安装仿真驱动)安装仿真驱动 H-JTAGH-JTAG是是一一款款简简单单易易用用的的调调试试代代理理软软件件,功功能能和和流行的流行的MULTI-ICEMULTI-ICE类似。类似。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 A

94、XD的配置与使用的配置与使用 3.3.在线调试在线调试 3 3)添加)添加JTAGJTAG硬件驱动程序硬件驱动程序 选选择择“控控制制面面板板”|“|“添添加加硬硬件件”向向导导按按钮钮,启启动动添添加加硬硬件件向向导导,根根据据向向导导提提示示单单击击“下下一一步步”,最最后后指指定定驱驱动动程程序序的的存存放放路路径径(LPTJtag.infLPTJtag.inf)(此此文文件件在在安安装装目目录录.UarmJtag2.0driver.UarmJtag2.0driver中中),单单击击“完成完成”按钮,即完成按钮,即完成JTAGJTAG驱动程序的安装。驱动程序的安装。第五章嵌入式开发平台组

95、建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 3.3.在线调试在线调试 4 4)配置)配置JTAG JTAG 第第一一步步,双双击击桌桌面面上上的的H-JTAGH-JTAG图标,启动图标,启动H-JTAGH-JTAG;第第 二二 步步 , 设设 置置 并并 口口 。 选选 择择“Seting”|“portSeting”|“port SetingSeting”;第第三三步步,设设置置JTAGJTAG引引脚脚。选选择择“SetingSeting ”|“JTAG ”|“JTAG SetingSeting”;。 第五章嵌入式开发平台组建5.

96、3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 3.3.在线调试在线调试 4 4)配置)配置JTAG JTAG 第第四四步步,配配置置目目标标机机的的一一些些参参数数。单单击击“Seting”|“TargetSeting”|“Target SetingSeting”;全全部部配配置置完完成成以以后后,连连接接好好宿宿主主机机和和目目标标机机后后上上电电,单单击击“Operation”|“Detect Operation”|“Detect Target”Target”菜菜单单命命令令,将将打打开开如如图所示窗口。图所示窗口。第五章嵌入式开发平

97、台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 3.3.在线调试在线调试5 5)配置调试代理配置调试代理进进 入入 AXDAXD环环 境境 , 选选 择择“options”“Configuoptions”“Configure re Target”Target”菜菜单单命命令令,在在 弹弹 出出 的的 窗窗 口口 中中 点点 击击“Add”Add”按按钮钮,然然后后会会看看到到要要求求选选择择DLLDLL文文件件的的对对话话框框。在在对对话话框框中中选选择择H-H-JTAGJTAG安安 装装 目目 录录 下下 的的 H-H-JTAG

98、.DLLJTAG.DLL,再再点点击击“OK”OK”按按钮钮,H-JTAGH-JTAG配配置置全全部部完完毕。毕。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.3 AXD5.3.3 AXD的配置与使用的配置与使用 3.3.在线调试在线调试 (6 6)在线调试)在线调试 与与模模拟拟调调试试相相似似, 装装载载映映像像文文件件,根根据据需需要要执执行行全全速速、单单步步、断断点点运运行行,查查看看寄寄存存器器、存存储储器器和和变变量量值值等等。此此时时所所进进行行的的所所有有操操作作,都都是是针针对对目目标标机机的的操操作。作。第五章嵌入式开发平台组建5.3 AD

99、S5.3 ADS开发环境开发环境5.3.4 5.3.4 DNWDNW的配置与使用的配置与使用 在在ADSADS开开发发环环境境的的体体系系架架构构中中,DNWDNW既既可可作作为为串串口口信信息息观观察察窗窗口口,又又可可作作为为宿宿主主机机上上的的USBUSB下下载载器器使使用用,而而且且无无需需安安装装,是是一一个个小小巧巧、方方便便的的从从宿宿主主机机连连接目标机的工具。接目标机的工具。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.4 DNW5.3.4 DNW的配置与使用的配置与使用 1.DNW1.DNW的配置的配置 先先双双击击DNW.exeDNW.exe

100、,打打开开DNWDNW窗窗口口,选选择择菜菜单单命命令令“Configuration”|“option”Configuration”|“option”,打打开开如如图图5-335-33所所示示的的配配置置参参数数窗窗口口, 按按图图所所示示设设置置串串口口参参数数和和USBUSB下下载载地址,最后单击地址,最后单击“OK”OK”按钮完成设置按钮完成设置。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.4 DNW5.3.4 DNW的配置与使用的配置与使用 2.2.安装安装USBUSB驱动驱动 将将USBUSB线线连连接接宿宿主主机机和和目目标标机机后后,宿宿主主机机中

101、中的的WindowsWindows会会提提示示发发现现新新硬硬件件,单单击击该该硬硬件件图图标标手手动动安安装装,并并将将安安装装路路径径指指向向驱驱动动程程序序,系系统统将将自自动动找找到到驱驱动文件并安装驱动。动文件并安装驱动。 成成功功安安装装后后,DNWDNW窗窗口口内内将将显显示示“USB USB host host is is connected. connected. Waiting Waiting a a download.”,download.”,而而标标题题栏栏中中将将显示显示USBUSB:OKOK。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.

102、3.4 DNW5.3.4 DNW的配置与使用的配置与使用 3.DNW3.DNW的使用的使用 在在基基于于ADSADS的的嵌嵌入入式式系系统统开开发发中中,DNWDNW主主要要用用途途有两种,即串口信息观察与有两种,即串口信息观察与USBUSB下载。下载。 第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.4 DNW5.3.4 DNW的配置与使用的配置与使用 3.DNW3.DNW的使用的使用(1 1)串口控制)串口控制 用串口线连接好目标机的用串口线连接好目标机的COM1COM1口和宿主机的口和宿主机的COM1COM1口,启动口,启动DNWDNW,单击菜单项单击菜单项“

103、Serial Serial Port”|“connect”Port”|“connect”,然后在然后在DNWDNW的标题栏中即可看的标题栏中即可看到到“COM1 115200bps”COM1 115200bps”。此时打开目标机电源,在此时打开目标机电源,在DNWDNW上即可看到目标机回显的启动信息。上即可看到目标机回显的启动信息。 如果目标如果目标机机FlashFlash中已经下载了中已经下载了vivivivi或或LinuxLinux操作系统,则可在操作系统,则可在DNWDNW中远程操作目标机。中远程操作目标机。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.4

104、DNW5.3.4 DNW的配置与使用的配置与使用 3.DNW3.DNW的使用的使用(2 2)程序下载)程序下载 借借助助USBUSB线线,可可将将已已经经编编译译好好的的目目标标文文件件.bin.bin下下载载到目标机的到目标机的SDRAMSDRAM中,操作步骤如下:中,操作步骤如下: 先先在在DNWDNW中中单单击击菜菜单单命命令令“USB USB Port”|“Transmit”Port”|“Transmit”,然然后后选选中中要要下下载载的的文文件件,最最后单击后单击“打开打开”按钮,即可进行目标程序的下载。按钮,即可进行目标程序的下载。第五章嵌入式开发平台组建5.3 ADS5.3 AD

105、S开发环境开发环境5.3.5 5.3.5 超级终端的配置与使用超级终端的配置与使用 WindowsWindows自自带带的的超超级级终终端端也也是是一一款款用用于于通通过过串串口口方式回显目标机显示信息的工具软件,配置步骤如下:方式回显目标机显示信息的工具软件,配置步骤如下:(1 1)在宿主机中,选择菜单命令)在宿主机中,选择菜单命令“开始开始”|“”|“程序程序”|“”|“附件附件”|“”|“通讯通讯”|”|“超级终端超级终端”,打开连接描述对话,打开连接描述对话框。框。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.5 5.3.5 超级终端的配置与使用超级终端的

106、配置与使用 (2 2)选选择择一一个个显显示示图图标标,并并在在名名称称文文本本框框中中输输入入连连接接名名称称,如如ARMARM,点点击击“确确定定”按按钮钮,将将打打开开“连连接接到到”对对话话框框,在在“连连接接时时使使用用”下下拉拉列列表表中中选选择择一一个个合适的合适的COMCOM口,确定后将打开口,确定后将打开COMCOM参数设置对话框。参数设置对话框。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.5 5.3.5 超级终端的配置与使用超级终端的配置与使用 (2 2)选选择择一一个个显显示示图图标标,并并在在名名称称文文本本框框中中输输入入连连接接名名称

107、称,如如ARMARM,点点击击“确确定定”按按钮钮,将将打打开开“连连接接到到”对对话话框框,在在“连连接接时时使使用用”下下拉拉列列表表中中选选择择一一个个合合适适的的COMCOM口口,确确定定后后将将打打开开COMCOM参参数数设设置置对对话话框框,如如图所示。图所示。第五章嵌入式开发平台组建5.3 ADS5.3 ADS开发环境开发环境5.3.5 5.3.5 超级终端的配置与使用超级终端的配置与使用 超超级级终终端端的的使使用用方方法法与与DNWDNW相相似似,双双击击保保存存的的快快捷捷图图标标“ARM”ARM”,使使用用串串口口线线将将目目标标机机与与宿宿主主机机连连接接,并并打打开开

108、目目标标机机电电源源的的情情况况下下,超超级级终终端端窗窗口口中中将将显显示示目目标标机机的的工工作作信信息息。此此时时可可在在超超级级终终端端窗窗口口下下方方便便地地远程操作目标机。远程操作目标机。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 基基于于ADSADS的的开开发发环环境境集集成成度度较较高高,全全图图形形操操作作界界面面,实实现现ARMARM汇汇编编语语言言和和C C语语言言的的编编程程方方便便、快快捷捷,但但对对目目标标机机的的实实时时调调试试不不够够直直接接。由由于于LinuxLinux源源代代码码全全部部公公开开,任任何何人人都都可可以以修修

109、改改并并在在GNUGNU(General General Public Public LicenseLicense)通通用用公公共共许许可可证证下下发发行行,因因此此,基基于于LinuxLinux的的开开发发环环境境在在开开发发以以LinuxLinux作作为为操操作作系系统统的的嵌嵌入入式式应应用用中中具具备备得得天天独独厚厚的的优优势势,因因而而得得到到许许多多开开发发者的认同。者的认同。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 基基于于LinuxLinux的的典典型型开开发发环环境境架架构构应应用用软软件件的的编编写写、编编译译和和链链接接在在虚虚拟拟机

110、机LinuxLinux系系统统中中进进行行。由由于于嵌嵌入入式式系系统统的的操操作作系系统统是是LinuxLinux,应应用用软软件件的的开开发发也也在在相相同同系统中,因而,处理问题的思路、方法最接近目标机。系统中,因而,处理问题的思路、方法最接近目标机。 5.4.1 5.4.1 环境架构环境架构第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 XmanagerXmanager是是一一款款通通信信路路由由工工具具软软件件,它它可可以以同同时时与与多多个个系系统统之之间间建建立立通通信信联联系系。借借助助于于XmanagerXmanager这这一一平平台台,一一方方

111、面面可可以以连连接接到到宿宿主主机机的的LinuxLinux,另另一方面也可以直接连接到目标机的一方面也可以直接连接到目标机的LinuxLinux。 XmanagerXmanager运运行行在在PCPC机机的的WindowsWindows操操作作系系统统中中,只只要要在在WindowsWindows中中开开出出两两个个窗窗口口,一一个个连连接接宿宿主主机机的的LinuxLinux,另另一一个个连连接接目目标标机机的的LinuxLinux,通通过过窗窗口口切切换就可以方便地在宿主机和目标机之间切换了换就可以方便地在宿主机和目标机之间切换了 。5.4.1 5.4.1 环境架构环境架构第五章嵌入式开

112、发平台组建5.4 Linux5.4 Linux开发环境开发环境 为为了了能能把把在在宿宿主主机机上上编编译译好好的的应应用用程程序序下下载载到到目目标标机机进进行行调调试试,同同时时避避免免反反复复烧烧写写目目标标机机FlashFlash,在在这这一一开开发发架架构构中中,通通过过网网络络线线把把宿宿主主机机与与目目标标机机相相连连,使使两两者者在在同同一一网网段段中中,进进而而通通过过网网络络配配置置,在在宿宿主主机机上上建建立立共共享享目目录录,使使目目标标机机可可以以共共享享宿宿主主机机上上编编译译好好的的目目标标程程序序。这这样样,在在目目标标机机上上调调试试程程序序时时,就就不不必必

113、把把宿宿主主机机上上的的程程序序下下载载到到目目标标机机上上,其其宿宿主主机机上上的的共共享享目目录录已已经经可可以以看看作作目目标标机机的的存存储储器了。器了。 5.4.1 5.4.1 环境架构环境架构第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 1.1.硬件连接硬件连接 将将宿宿主主机机和和目目标标机机通通过过网网线线和和串串口口线线相相连连。其其中中,串串口口线线用用于于实实现现XmanagerXmanager与与目目标标机机的的通通信信,网网线线用用于于实实现现虚虚拟拟机机的的LinuxLinux与与目目标标机机的的LinuxLinux之之间间的通信。的

114、通信。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 2.2.虚拟机的安装与配置虚拟机的安装与配置 VMwareVMware是是一一个个虚虚拟拟机机软软件件,它它可可以以在在一一台台PCPC机机上上同同时时运运行行两两个个或或更更多多操操作作系系统统。Windows+VMwareWindows+VMware组组合合对对于于实实际际开开发发嵌嵌入入式式LinuxLinux应应用用来来说说比比较较广广泛泛,因因为为在在VMwareVMware中中可可以以安安装装LinuxLinux系系统统,实实现现LinuxLinux系系

115、统统开开发发,几几乎乎和和在在LinuxLinux系系统统下下开开发发没没有有什什么么区区别别,并并且且其其最最大大好好处处是是在在LinuxLinux系系统统和和WindowsWindows系系统统之之间间切换非常方便。切换非常方便。 5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 2.2.虚拟机的安装与配置虚拟机的安装与配置 VMwareVMware安装和配置步骤如下:安装和配置步骤如下: (1 1)安装虚拟机系统)安装虚拟机系统双双击击VMwareVMware安安装装盘盘中中的的setup.exesetup.ex

116、e文文件件,按按系系统统提提示多次点击示多次点击“Next”Next”按钮,进行默认安装即可。按钮,进行默认安装即可。 (2 2)安装汉化环境)安装汉化环境初初始始安安装装的的VMwareVMware是是英英文文界界面面的的,如如果果需需要要汉汉化化,可可安安装装汉汉化化包包,操操作作步步骤骤为为:双双击击汉汉化化包包软软件件setup_tracky.exesetup_tracky.exe,按系统提示进行默认安装即可。按系统提示进行默认安装即可。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 2.2.虚拟机的安装与配置

117、虚拟机的安装与配置 VMwareVMware安装和配置步骤如下:安装和配置步骤如下: (3 3)新建虚拟机)新建虚拟机 同一个同一个VMwareVMware中可以运行多个操作系统,在安中可以运行多个操作系统,在安装装LinuxLinux之前,必须首先新建一个用于运行之前,必须首先新建一个用于运行LinuxLinux的的虚拟机,操作步骤如下:虚拟机,操作步骤如下:先选择先选择“开始开始”|“|“程序程序”|“|“VMware”|“VNwareVMware”|“VNware Workstation”Workstation”菜单命令,启动菜单命令,启动VwwareVwware。然后选择然后选择“文件

118、文件”|“|“新建新建”|“|“虚拟机虚拟机”,打开,打开“新建虚拟新建虚拟机向导机向导”对话框,点击对话框,点击“下一步下一步”按钮,选择按钮,选择“典典型型”方式,再点击方式,再点击“下一步下一步”按钮,进入按钮,进入“选择一选择一个客户机操作系统个客户机操作系统”界面。界面。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 2.2.虚拟机的安装与配置虚拟机的安装与配置 VMwareVMware安装和配置步骤如下:安装和配置步骤如下: (3 3)新建虚拟机)新建虚拟机 此处选择此处选择LinuxLinux操作系统,并

119、确定版本为操作系统,并确定版本为Red Red Hat LinuxHat Linux。点击点击“下一步下一步”按钮后,进一步设定按钮后,进一步设定创建的位置,比如在创建的位置,比如在D:RHLD:RHL,默认使用桥接网络连接方默认使用桥接网络连接方式,完成式,完成LinuxLinux虚拟机的虚拟机的新建。新建。 5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 2.2.虚拟机的安装与配置虚拟机的安装与配置 VMwareVMware安装和配置步骤如下:安装和配置步骤如下: (4 4)配置虚拟机)配置虚拟机 默默认认安安装装

120、的的虚虚拟拟机机可可以以重重新新配配置置,比比如如添添加加串串口口,设设置置共共享享文文件件夹夹,改改变变光光驱驱使使用用方方式式等等。实实现现这些配置的操作步骤如下:这些配置的操作步骤如下:在在VMwareVMware主主窗窗口口中中,选选择择“虚虚拟拟机机”菜菜单单栏栏下下的的“设设置置”命命令令,打打开开“虚虚拟拟机机设设置置”对对话话框框。在在“硬硬件件”标标签签页页中中点点击击“添添加加”按按钮钮,可可添添加加新新硬硬件件如如串串口口。在在“选选项项”标标签签页页中中,可可配配置置数数,如如设设置置虚虚拟机的共享文件夹等,根据具体需求进行设置。拟机的共享文件夹等,根据具体需求进行设置

121、。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 3.Linux3.Linux的安装与配置的安装与配置 LinuxLinux操操作作系系统统有有多多种种版版本本,嵌嵌入入式式系系统统开开发发中中一一般般使使用用Red Red Hat Hat LinuxLinux。Red Red Hat Hat LinuxLinux原原版版安安装装程程序序可可以以在在很很多多网网站站上上下下载载,有有光光盘盘安安装装版版和和ISOISO镜像安装版两种。镜像安装版两种。 5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组

122、建5.4 Linux5.4 Linux开发环境开发环境 3.Linux3.Linux的安装与配置的安装与配置 操作步骤如下:操作步骤如下: (1 1)设置虚拟机光驱工作方式)设置虚拟机光驱工作方式 根根据据安安装装程程序序的的版版本本形形式式,对对虚虚拟拟机机光光驱驱进进行行设设置置。如如果果安安装装盘盘是是可可执执行行文文件件,则则默默认认物物理理光光驱驱;如如果果安安装装盘盘是是ISOISO镜镜像像文文件件,则则设设置置虚虚拟拟光光驱驱连连接接方式为方式为“使用使用ISOISO镜像镜像”。 (2 2)安装)安装LinuxLinux 启启动动虚虚拟拟机机,将将安安装装光光盘盘插插入入光光驱驱

123、,依依次次按按照照提示完成安装。提示完成安装。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 3.Linux3.Linux的安装与配置的安装与配置 操作步骤如下:操作步骤如下: (3 3)配置串口)配置串口 系系统统安安装装好好以以后后,需需要要配配置置好好开开发发环环境境才才能能与与目目标标机机进进行行通通信信。利利用用MinicomMinicom进进行行配配置置,操操作作步步骤如下:骤如下:先先选选择择工工具具栏栏上上的的“终终端端仿仿真真器器”,打打开开ShellShell窗窗口口,在在ShellShell命命令

124、令提提示示符符下下输输入入MinicomMinicom命命令令,弹弹出出MinicomMinicom配配置置菜菜单单,选选择择串串口口,设设置置波波特特率率为为115200115200,8 8N1N1,设设置置Hardware Hardware Flow Flow ControlControl模模式式为为NoNo。完完成成设设置置后后,按按EnterEnter键键返返回回上上一一层层菜菜单单,再再保存设置。保存设置。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 3.Linux3.Linux的安装与配置的安装与配置 操

125、作步骤如下:操作步骤如下: (4 4)配置网络服务)配置网络服务 按按第第四四章章第第四四节节的的操操作作步步骤骤,完完成成SambaSamba和和NFSNFS网络服务的配置网络服务的配置。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 4 4. .XmanagerXmanager的安装与配置的安装与配置 XmanagerXmanager的的安安装装程程序序是是一一个个自自解解压压可可执执行行文文件件,其安装与配置的操作步骤如下其安装与配置的操作步骤如下: (1 1)安装)安装双双击击xme20.exexme20.ex

126、e图图标标,打打开开安安装装向向导导窗窗口口,按按默默认认方式安装即可。方式安装即可。 5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 4 4. .XmanagerXmanager的安装与配置的安装与配置 (2 2)配置虚拟机连接)配置虚拟机连接 在在宿宿主主机机的的WindowsWindows桌桌面面上上,选选择择“开开始始”|“|“程程序序”|“|“XmanagerXmanager Enterprise”|“XshellEnterprise”|“Xshell”菜菜单单命命令令,打打开开XshellXshell主主窗

127、窗口口,在在XshellXshell窗窗口口中中,选选择择“File”|“New”File”|“New”菜菜单单命命令令,新新建建一一个个虚虚拟拟机机连连接。接。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 4 4. .XmanagerXmanager的安装与配置的安装与配置 (2 2)配置虚拟机连接)配置虚拟机连接其中,主要选项设置如下:其中,主要选项设置如下:NameName:标示到虚拟机标示到虚拟机LinuxLinux的名称,如的名称,如VMwareVMware。 HostHost:虚拟机中虚拟机中LinuxL

128、inux网卡的网卡的IPIP地址。地址。 User NameUser Name:登录虚拟机中登录虚拟机中LinuxLinux的用户名,如的用户名,如rootroot。 PasswordPassword:登录用户的密码。登录用户的密码。 其余可取默认值。其余可取默认值。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 4 4. .XmanagerXmanager的安装与配置的安装与配置 (3 3)配置目标机连接)配置目标机连接 类类似似LinuxLinux连连接接的的配配置置方方法法,在在新新建建连连接接的的对对话话框框中

129、中,选选择择连连接接方方式式“Method”Method”为为“SERIAL”SERIAL”,并并点点击击“Setup”Setup”按按钮钮,从从打打开开的的对对话话框框中中配配置置串串行行口口的的波波特率为特率为115200115200,8 8N1N1,其余配置与串行口配置相同。其余配置与串行口配置相同。 (4 4)测试连接)测试连接 配置完成后,可以测试连接状况,操作步骤如下:配置完成后,可以测试连接状况,操作步骤如下: 打打开开目目标标机机电电源源,启启动动宿宿主主机机上上的的LinuxLinux虚虚拟拟机机,打打 开开 XshellXshell窗窗 口口 , 选选 择择 VMwareV

130、Mware连连 接接 项项 , 点点 击击“Connect”Connect”按按钮钮,若若能能出出现现如如图图所所示示的的信信息息,则则说说明明XManagerXManager与与LinuxLinux虚拟机连接正常。虚拟机连接正常。5.4.2 5.4.2 安装与配置安装与配置 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 4 4. .XmanagerXmanager的安装与配置的安装与配置 5.4.2 5.4.2 安装与配置安装与配置 在在XmanagerXmanager管理器窗口管理器窗口中,选择目标机连接项,点中,选择目标机连接项,点击击“Connect”C

131、onnect”按钮,若能出按钮,若能出现如图现如图5-495-49所示的信息,则所示的信息,则说明说明XManagerXManager与目标机连接与目标机连接正常。至此,正常。至此,XmanagerXmanager的安的安装与配置完成。装与配置完成。 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 交交叉叉编编译译就就是是在在一一个个平平台台上上生生成成可可以以在在另另一一个个平平台台上上执执行行的的代代码码。在在嵌嵌入入式式LinuxLinux应应用用系系统统开开发发中中,就就是是在在宿宿主主机机上上

132、编编译译可可在在目目标标机机上上运运行行的的代代码码。交交叉叉编编译译环环境境是是一一个个由由编编译译器器、连连接接器器和和解解释释器器组组成成的的综综合合环环境。境。 建建立立交交叉叉编编译译环环境境的的方方法法很很多多,不不同同的的体体系系结结构构,不不同同的的操操作作内内容容,甚甚至至不不同同的的内内核核版版本本,都都会会用用到到不不同的交叉编译器。同的交叉编译器。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 CrosstoolCrosstool交交叉叉编编译译器器,是是由由一一组组程程序序组组

133、成成,包包括括针针对对目目标标系系统统的的编编译译器器gccgcc、目目标标系系统统的的二二进进制制工工具具binutilsbinutils、目目标标系系统统的的标标准准c c库库glibcglibc和和目目标标系系统统的的LinuxLinux内内核核头头文文件件等等,它它不不仅仅可可以以编编译译LinuxLinux操操作作系系统统下下运运行行的的应应用用程程序序、编编译译LinuxLinux本本身身,还还可可以以作作交交叉叉编编译,编译运行于其他译,编译运行于其他CPUCPU上的程序。上的程序。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.

134、3 建立交叉编译工具链建立交叉编译工具链 1.1.下载资源文件下载资源文件 CrosstoolCrosstool是是一一组组脚脚本本工工具具集集,下下载载后后,先先在在/home/home文文件件夹夹下下建建一一个个交交叉叉编编译译工工具具目目录录/home/downloads/home/downloads,将将这这组组工工具具包包文文件件拷拷在在该该目目录录中中。然然后后打打开开“终终端端”程程 序序 , 进进 入入 /home/downloads/home/downloads目目 录录 , 在在 其其 中中 解解 压压crosstool-0.42.tar.gzcrosstool-0.42.

135、tar.gz,命令如下:命令如下:# #cdcd /home /home# #mkdirmkdir downloads downloads# #cdcd downloads downloads#tar #tar xvzfxvzf crosstool-0.42.tar.gz crosstool-0.42.tar.gz第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 2.2.建立脚本文件建立脚本文件 在在crosstool-0.42crosstool-0.42文文件件夹夹中中,可可以以看看到到有有很很多多的的

136、. .shsh脚脚本本和和. .datdat配配置置文文件件,这这些些都都是是对对应应不不同同CPUCPU的的交交叉叉编编译译脚脚本本文文件件。找找到到针针对对S3c2410S3c2410的的脚脚本本文文件件demo-demo-arm9tdi.sharm9tdi.sh,在,在vivi中将其打开:中将其打开:set -exset -exTARBALLS_DIR=$HOME/downloads #TARBALLS_DIR=$HOME/downloads #定义工具链源码存放目录定义工具链源码存放目录RESULT_TOP=/opt/RESULT_TOP=/opt/crosstoolcrosstool

137、 # #定义工具链安装目录定义工具链安装目录export TARBALLS_DIR RESULT_TOPexport TARBALLS_DIR RESULT_TOP第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 2.2.建立脚本文件建立脚本文件 在在crosstool-0.42crosstool-0.42文文件件夹夹中中,可可以以看看到到有有很很多多的的. .shsh脚脚本本和和. .datdat配配置置文文件件,这这些些都都是是对对应应不不同同CPUCPU的的交交叉叉编编译译脚脚本本文文件件。找找到到

138、针针对对S3c2410S3c2410的的脚脚本本文文件件demo-demo-arm9tdi.sharm9tdi.sh,在,在vivi中将其打开:中将其打开:set -exset -exTARBALLS_DIR=$HOME/downloads #TARBALLS_DIR=$HOME/downloads #定义工具链源码存放目录定义工具链源码存放目录RESULT_TOP=/opt/RESULT_TOP=/opt/crosstoolcrosstool # #定义工具链安装目录定义工具链安装目录export TARBALLS_DIR RESULT_TOPexport TARBALLS_DIR RESU

139、LT_TOP检检查查工工具具链链源源码码存存放放目目录录和和工工具具链链安安装装目目录录的的定定义义与与用户实际存放是否一致。若存在差别,可修改保存。用户实际存放是否一致。若存在差别,可修改保存。 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 3.3.建立配置文件建立配置文件 在在demo-arm9tdi.shdemo-arm9tdi.sh脚脚本本文文件件中中,注注明明了了需需要要用用arm9tdmi.datarm9tdmi.dat和和gcc-3.4.6-blibc-2.3.2.datgcc-3.4.

140、6-blibc-2.3.2.dat两两个个文文件件,这两个文件是作为这两个文件是作为crosstoolcrosstool的编译配置文件。的编译配置文件。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 3.3.建立配置文件建立配置文件 arm9tdmi.datarm9tdmi.dat主主要要用用于于定定义义配配置置文文件件,定定义义生生成成编编译工具链的名称,定义编译选项等。文件内容如下:译工具链的名称,定义编译选项等。文件内容如下:KERNELCONFIG=KERNELCONFIG=pwd/arm.co

141、nfigpwd/arm.configTARGET=arm-9tdmi-linux-gnuTARGET=arm-9tdmi-linux-gnuGCC_EXTRA_CONFIG=-with-GCC_EXTRA_CONFIG=-with-cpucpu=arm9tdmi- =arm9tdmi- enable-enable-cxxcxx-flags=-flags=-mcpumcpu=arm9tdmi=arm9tdmiTARGET_CFLAGS=-OTARGET_CFLAGS=-O第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交

142、叉编译工具链 3.3.建立配置文件建立配置文件 gcc-3.4.6-blibc-2.3.2.datgcc-3.4.6-blibc-2.3.2.dat文文件件主主要要用用于于定定义义编编译译过过程程中中所所需需要要的的库库及及它它定定义义的的版版本本。该该文文件件内内容容如如下:下:BINUTILS_DIR=binutils-2.15BINUTILS_DIR=binutils-2.15GCC_DIR=gcc-3.3.6GCC_DIR=gcc-3.3.6GLIBC_DIR=glibc-2.3.2GLIBC_DIR=glibc-2.3.2GLIBCTHREADS_FILENAME=glibc-lin

143、uxthreads-2.3.2GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2LINUX_DIR=linux-2.6.12LINUX_DIR=linux-2.6.12LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0 文文件件中中所所列列出出的的这这些些文文件件名名和和版版本本与与实实际际情情况况要要一一致致,确确保保这这些些文文件件存存放放在在/home/downloads/home/

144、downloads下下,并并且且没没有解压。有解压。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 4.4.执行脚本文件执行脚本文件 当当crosstoolcrosstool脚脚本本文文件件、配配置置文文件件和和源源文文件件都都准准备备好好以以后后,可可以以运运行行demo-arm9tdi.shdemo-arm9tdi.sh来来编编译译交交叉叉编编译译工工具。具。打开一个终端窗口,进入打开一个终端窗口,进入/home/downloads/crosstool-0.42/home/downloads/cro

145、sstool-0.42目录,输入以下命目录,输入以下命令:令: $./demo-arm9tdi.sh$./demo-arm9tdi.sh经经过过较较长长时时间间的的编编译译以以后后,会会在在/ /mnt/crosstoolmnt/crosstool目目录录下生成新的交叉编译工具。下生成新的交叉编译工具。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 4.4.执行脚本文件执行脚本文件编译后的交叉编译工具:编译后的交叉编译工具: arm-linux-addr2linearm-linux-addr2linea

146、rm-arm-linux-glinux-g+arm-arm-linuxlinux-ld-ldarm-arm-linuxlinux-size-sizearm-arm-linux-arlinux-ararm-arm-linux-gcclinux-gccarm-arm-linuxlinux-nm-nmarm-arm-linuxlinux-strings-stringsarm-arm-linuxlinux-as-asarm-linux-gcc-3.4.6arm-linux-gcc-3.4.6arm-arm-linux-objcopylinux-objcopy arm-arm-linuxlinux-st

147、rip -strip arm-arm-linux-clinux-c+arm-arm-linux-gccbuglinux-gccbugarm-arm-linux-objdumplinux-objdumpFix-embedded-pathsFix-embedded-pathsarm-arm-linux-c+filtlinux-c+filtarm-arm-linux-gcovlinux-gcovarm-arm-linux-ranliblinux-ranlibarm-arm-linux-cpplinux-cpp arm-arm-linux-gproflinux-gprof arm-arm-linux-

148、readelflinux-readelf第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 5.5.添加环境变量添加环境变量最最后后需需要要将将生生成成的的交交叉叉编编译译工工具具链链路路径径添添加加到到环环境境变变量量PATHPATH中中去去,添添加加方方法法是是在在系系统统/etc/etc/bashrcbashrc文文件件的的最最后添加下面一行:后添加下面一行:Export PATH=/opt/Export PATH=/opt/crosstoolcrosstool/ / arm-linux-tools/

149、gcc-3.4.6-blibc-2.3.2/arm-arm-linux-tools/gcc-3.4.6-blibc-2.3.2/arm-linux/bin:$PATHlinux/bin:$PATH设设置置完完环环境境变变量量,也也就就意意味味着着交交叉叉编编译译工工具具链链构构建建完完毕。毕。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 6.6.测试交叉编译工具链测试交叉编译工具链交交叉叉编编译译工工具具链链建建立立完完成成后后,可可以以通通过过编编写写一一个个简简单单的程序进行测试。程序如下:的程序

150、进行测试。程序如下:#include #include intint main(void) main(void) printf(helloprintf(hello worldn); worldn);return 0;return 0; 在在vivi中输入以上程序,并保存在中输入以上程序,并保存在hello.chello.c中。中。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 6 6、测试交叉编译工具链、测试交叉编译工具链输入以下命令进行编译:输入以下命令进行编译:# #arm-arm-linuxlin

151、ux- -gccgcc-3.4.6 o hello hello.c-3.4.6 o hello hello.c通过通过filefile命令可以查看文件的类型:命令可以查看文件的类型:# # file hellofile hellohello: hello: ELF ELF 32-bit 32-bit LSB LSB executable, executable, ARM, ARM, version version 1 1 (ARMARM),for ,for GNU/Linux2.6.8,GNU/Linux2.6.8,dynamically linked (uses shareddynamica

152、lly linked (uses shared libs libs), not stripped ), not stripped 当当显显示示以以上上信信息息时时,表表明明交交叉叉工工具具链链已已经经安安装装成成功功,并且工作正常。并且工作正常。 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.3 5.4.3 建立交叉编译工具链建立交叉编译工具链 6.6.测试交叉编译工具链测试交叉编译工具链 建建立立交交叉叉编编译译工工具具链链是是个个比比较较复复杂杂的的过过程程,一一旦旦建建立立以以后后,即即保保存存相相对对稳稳定定。如如果果目目标标机机是是购购买买的的

153、商商品品实实验验箱箱或或是是开开发发板板,一一般般都都有有已已经经编编译译好好的的交交叉叉工工具具链链,我我们们只只要要将将其其安安装装到到宿宿主主机机的的LinuxLinux相相应应目目录录中中就就可使用,而不必从头自己编译。可使用,而不必从头自己编译。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 1.GCC1.GCC编译器的使用编译器的使用 在在 LinuxLinux下下 编编 译译 程程 序序 一一 般般 都都 用用 GCCGCC( GNU GNU C C CompileCompile)开开发发工工具具

154、。GCCGCC是是一一个个功功能能强强大大的的ANSICANSIC兼兼容容编译器,后面可带许多选项,用于多种编译方式。编译器,后面可带许多选项,用于多种编译方式。GCCGCC语法格式如下:语法格式如下:# # gccgcc options filename. options filename. 其其中中的的optionoption是是以以“-”-”开开始始的的各各种种选选项项,filenamefilename是是相相关关的的文文件件名名。在在使使用用gccgcc的的时时候候,必必须须要要给给出出必必要要的的选选项项和和文文件件名名。gccgcc的的整整个个编编译译过过程程分分别别是是:预预处处

155、理理、编译、汇编和链接。编译、汇编和链接。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 1.GCC1.GCC编译器的使用编译器的使用gccgcc编译器几个最常用的选项:编译器几个最常用的选项:-o-o:表示要求编译器生成指定文件名的可执行文件;表示要求编译器生成指定文件名的可执行文件;-c-c:表表示示只只要要求求编编译译器器进进行行编编译译,而而不不要要进进行行链链接接,生生成成以以源源文文件件的的文文件件名名命名但把其后缀由命名但把其后缀由.c.c或或.cc.cc变成变成.o.o的目标文件;的目标文件;-

156、g-g:要求编译器在编译的时候提供以后对程序进行调试的信息;要求编译器在编译的时候提供以后对程序进行调试的信息;-E-E:表示编译器对源文件只进行预处理就停止,而不做编译、汇编和链接;表示编译器对源文件只进行预处理就停止,而不做编译、汇编和链接;-S-S:表示编译器只进行编译,而不做汇编和链接;表示编译器只进行编译,而不做汇编和链接;-O-O:是是编编译译器器对对程程序序提提供供的的编编译译优优化化选选项项,在在编编译译的的时时候候使使用用该该选选项项,可可以以使生成的可执行文件的执行效率提高;使生成的可执行文件的执行效率提高;-Wall-Wall:指定产生全部的警告信息。指定产生全部的警告信

157、息。 注注意意,用用于于编编译译ARMARM嵌嵌入入式式应应用用程程序序的的交交叉叉编编译译器器的的文文件件名名一一般般都都在在gccgcc前面冠以前面冠以arm-arm-linuxlinux- -,如以上介绍的如以上介绍的arm-linux-gcc-3.4.6arm-linux-gcc-3.4.6。 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 1.GCC1.GCC编译器的使用编译器的使用例如,执行以下编译:例如,执行以下编译:$ $ gccgcc -o hello hello.c -o hello hel

158、lo.c gccgcc编编译译器器就就会会生生成成一一个个hellohello的的可可执执行行文文件件。在在hello.chello.c的的当当前前目目录录下下执执行行./hello./hello就就可可以以看看到到程程序序的的输输出出结结果果,在在屏屏幕幕上上打打印印出出“hello hello world”world”的的字字符符串串来。来。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 1.GCC1.GCC编译器的使用编译器的使用gccgcc编编译译器器生生成成的的目目标标文文件件默默认认格格式式为为el

159、felf(executive executive linked linked filefile)格格式式,这这是是LinuxLinux系系统统所所采采用用的的可可执执行行链链接接文文件件的的通通用用文文件件格格式式。elfelf格格式式由由若若干干个个段段(sectionsection)组组成成,如如果果没没有有特特别别指指明明,由由标标准准c c源源代代码生成的目标文件中包含以下段:码生成的目标文件中包含以下段:.text.text(正文段)正文段): :包含程序的指令代码;包含程序的指令代码;.data.data(数数据据段段):包包含含固固定定的的数数据据,如如常常量量,字字符符串串等;

160、等;. .bssbss(未未初初始始化化数数据据段段):包包含含未未初初始始化化的的变变量量和和数数组等。组等。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 2.Makefile2.Makefile文件的编写文件的编写 MakefileMakefile是是一一个个数数据据库库文文件件,其其中中描描述述了了目目标标文文件件之之间间的的依依赖赖关关系系,以以及及指指定定编编译译过过程程中中使使用用的的工工具具。一一个个工工程程中中的的源源文文件件不不计计其其数数,按按其其类类型型、功功能能、模模块块分分别别放放在

161、在若若干干个个目目录录中中。MakefileMakefile定定义义了了一一系系列列的的规规则则用用来来指指定定哪哪些些文文件件需需要要先先编编译译,哪哪些些文文件件需需要要后后编编译译,哪哪些些文文件件需需要要重重新新编编译译,甚甚至至于于进进行行更更复复杂杂的的功功能能操操作作。MakefileMakefile就就像像一一个个ShellShell脚脚本本一一样样,其其中中也也可可以以执执行行操操作作系系统统的的命命令令。MakefileMakefile带带来来的的好好处处就就是是“自自动动化化编编译译”,一一旦旦写写好好,只只需需要要一一个个makemake命命令令,整整个个工工程程完完全

162、全自自动动编编译译,极极大大地地提提高高了了软软件件开开发发的的效效率。率。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 2.Makefile2.Makefile文件的编写文件的编写 MakefileMakefile的的作作用用是是根根据据配配置置的的情情况况,构构造造出出需需要要编编译译的的源源文文件件列列表表,然然后后分分别别编编译译,并并把把目目标标代代码码链链接接到到一一起起,最最终终形形成成可可执执行行的的二二进进制制文文件件。MakefileMakefile中一般包含三个方面的内容:中一般包含三个

163、方面的内容: 指指明明需需要要由由makemake工工具具创创建建的的项项目目,通通常常是是目目标标(targettarget)文件和可执行文件。文件和可执行文件。 指明需要创建的项目依赖于哪些文件。指明需要创建的项目依赖于哪些文件。 指明创建每个项目时需要运行的命令。指明创建每个项目时需要运行的命令。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 2.Makefile2.Makefile文件的编写文件的编写 MakefileMakefile文件的编写规则如下:文件的编写规则如下: (1 1)“:”表示文件之间

164、的依赖关系。表示文件之间的依赖关系。 (2 2)“#”#”开头的行是注释行。开头的行是注释行。 (3 3)引用变量前加)引用变量前加“$”$”符号。符号。 (4 4)命令行前以)命令行前以TabTab键开始。键开始。 (5 5)可用以下几个常用变量表示特定含义:)可用以下几个常用变量表示特定含义: $:完整的目标文件,包括扩展名。:完整的目标文件,包括扩展名。 $*$*:目标文件去掉后缀的部分。:目标文件去掉后缀的部分。 $:所有的依赖文件。:所有的依赖文件。 $:比目标文件更新的依赖文件。:比目标文件更新的依赖文件。 $?$?:表示被修改的文件。:表示被修改的文件。第五章嵌入式开发平台组建5

165、.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 2.Makefile2.Makefile文件的编写文件的编写实实例例:编编写写一一个个MakefileMakefile文文件件,将将main.cmain.c、file1.cfile1.c、file2.cfile2.c、 file1.hfile1.h、 file2.hfile2.h编编 译译 成成 可可 执执 行行 文文 件件test.exetest.exe。实现以上要求的实现以上要求的MakefileMakefile文件如下:文件如下:# #这是一个简单的这是一个简单的MakefileMa

166、kefile文件实例文件实例CC= arm-linux-gcc-3.4.6CC= arm-linux-gcc-3.4.6EXEC=testEXEC=testOBJS=main.o file1.o file2.oOBJS=main.o file1.o file2.o$(EXEC) : $(OBJS)$(EXEC) : $(OBJS)$(CC) -o $(EXEC) $(OBJS)$(CC) -o $(EXEC) $(OBJS)$(OBJS) : %.o %.c$(OBJS) : %.o %.c$(CC) c $(CC) c $clean:clean:-rm $(EXEC) $(OBJS)-rm

167、$(EXEC) $(OBJS)第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 2.Makefile2.Makefile文件的编写文件的编写以上以上MakefileMakefile文件的理解如下:文件的理解如下:第第1 1行行是是一一个个注注释释行行,第第2 2到到4 4行行用用来来定定义义变变量量,其其中中定定义义了了编编译译器器为为arm-linux-gcc-3.4.6arm-linux-gcc-3.4.6,可可执执行行文文件件为为testtest,目目标标文文件件有有main.omain.o、file1.o

168、file1.o和和file2.ofile2.o。第第5 5行行表表示示可可执执行行文文件件依依赖赖于于目目标标文文件件。第第6 6行行是是命命令令行行,值值得得注注意意的的是是,命命令令行行前前必必须须以以tabtab键键开始,否则系统不能执行命令。该行等价于开始,否则系统不能执行命令。该行等价于arm-linux-gcc-3.4.6 arm-linux-gcc-3.4.6 o o test.exe test.exe main.o main.o file1.o file1.o file2.ofile2.o第第7 7行行表表示示目目标标文文件件依依赖赖于于具具体体的的源源文文件件。第第8 8行行

169、表表示示当当有有文文件件更更新新时时执执行行编编译译。第第1010到到1212行行建建立立了了一一个个执执行行make make cleanclean的的清清除项,实现的功能是删除可执行文件和目标文件。除项,实现的功能是删除可执行文件和目标文件。 第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 3 3. .makemake命令的使用命令的使用makemake是是一一个个命命令令工工具具,用用于于解解释释并并执执行行MakefileMakefile编编写写的的指令。指令。makemake命令的格式如下:命令的格式

170、如下:make make 选项选项 makemake执行步骤如下:执行步骤如下:(1 1)自动寻找当前目录下的)自动寻找当前目录下的MakefileMakefile文件,并读入所有的文件,并读入所有的MakefileMakefile。(2 2)读入读入MakefileMakefile文件中被文件中被includeinclude的其他的其他MakefileMakefile。(3 3)初始化文件中的变量。初始化文件中的变量。(4 4)推导隐含规则,并分析所有规则。)推导隐含规则,并分析所有规则。(5 5)为所有的目标文件创建依赖关系链。)为所有的目标文件创建依赖关系链。(6 6)根据依赖关系,决定

171、哪些目标要重新编译。)根据依赖关系,决定哪些目标要重新编译。(7 7)执行编译命令。)执行编译命令。第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 3 3. .makemake命令的使用命令的使用makemake常用命令行选项如表所示:常用命令行选项如表所示:命令行选项命令行选项含义含义-C DIR在读取在读取Makefile之前改变到指定的目录之前改变到指定的目录DIR-f FILE以指定的以指定的FILE文件作为文件作为Makefile-h显示所有的显示所有的Make选项选项-i忽略所有的命令执行错误忽略所

172、有的命令执行错误-I DIR当包含其他当包含其他Makefile文件时,可利用该选项指定搜索目录文件时,可利用该选项指定搜索目录-n只打印要执行的命令,但不执行这些命令只打印要执行的命令,但不执行这些命令-p显示显示make变量数据库和隐含规则变量数据库和隐含规则-s在执行命令时不显示命令在执行命令时不显示命令-w在处理在处理Makefile之前和之后,显示工作目录之前和之后,显示工作目录-W FILE假定文件假定文件FILE已经被修改已经被修改第五章嵌入式开发平台组建5.4 Linux5.4 Linux开发环境开发环境 5.4.4 5.4.4 编译工具的使用编译工具的使用 3 3. .mak

173、emake命令的使用命令的使用 如如果果在在包包含含以以上上MakefileMakefile文文件件的的目目录录下下执执行行makemake命命令令,将将进进行行源源代代码码的的编编译译,编编译译的的顺顺序序和和逻逻辑辑由由MakefileMakefile文文件件决决定定,编编译译后后将将生生成成一一个个文文件件名名为为testtest的可执行文件。的可执行文件。 在在实实际际的的嵌嵌入入式式开开发发工工作作中中,MakefileMakefile文文件件会会比比较较庞庞大大,相相对对比比较较复复杂杂,但但万万变变不不离离其其宗宗,它它的的实实现现方方式和目的都是相同的。式和目的都是相同的。第五

174、章嵌入式开发平台组建1 1、嵌入式系统的开发模型如何?、嵌入式系统的开发模型如何?2 2、嵌入式硬件开发平台的组建有哪些途径?、嵌入式硬件开发平台的组建有哪些途径?3 3、基于、基于ADSADS的嵌入式软件开发环境由哪些工具组成?的嵌入式软件开发环境由哪些工具组成?各部分的作用如何?各部分的作用如何?4 4、基于、基于LinuxLinux的嵌入式软件开发环境由哪些工具组成的嵌入式软件开发环境由哪些工具组成?各部分的作用如何?各部分的作用如何?5 5、嵌入式系统的调试方法有哪些?有何区别?、嵌入式系统的调试方法有哪些?有何区别?6 6、GCCGCC编译器的功能如何?怎样使用?编译器的功能如何?怎

175、样使用?7 7、MakefileMakefile文件的功能如何?编写规则有哪些?文件的功能如何?编写规则有哪些?8 8、试编写一个实现、试编写一个实现Hello WorldHello World简单显示功能的简单显示功能的MakefileMakefile文件。文件。9 9、makemake命令的功能如何?执行步骤怎样?命令的功能如何?执行步骤怎样?1010、简述在、简述在ADSADS环境下实现嵌入式应用程序编写、编译环境下实现嵌入式应用程序编写、编译和调试的一般步骤。和调试的一般步骤。1111、简述在、简述在LinuxLinux环境下实现嵌入式应用程序编写、编环境下实现嵌入式应用程序编写、编译和调试的一般步骤。译和调试的一般步骤。思考与练习思考与练习第五章嵌入式开发平台组建

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号