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

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

《第五章 嵌入式开发平台组建.ppt》由会员分享,可在线阅读,更多相关《第五章 嵌入式开发平台组建.ppt(134页珍藏版)》请在三一办公上搜索。

1、第五章嵌入式开发平台组建,第五章 嵌入式开发平台组建,第五章嵌入式开发平台组建,学习目标,1、了解嵌入式系统开发平台的基本知识2、熟悉嵌入式系统程序调试的常用方法3、掌握ADS嵌入式开发平台的组建方法4、掌握Linux嵌入式开发平台的组建方法,第五章嵌入式开发平台组建,5.1 开发平台简介,嵌入式系统的开发通常采用宿主机-目标机模式,使用交叉编译的方法,开发模型如图:,5.1.1 开发模型,宿主机就是常用的PC机,嵌入式开发环境通常建立在宿主机上。宿主机的操作系统一般是通用的Windows或Linux系统。,目标机就是嵌入式应用系统,形态和结构各异,它运行嵌入式操作系统,与主机通过串口、以太网

2、口、JTAG调试口、USB口或其他方式通信,下载运行在宿主机中编译好的代码。,第五章嵌入式开发平台组建,5.1 开发平台简介,开发环境建立在宿主机上,用户所有的开发工作大都在宿主机开发环境中进行,包括程序编辑、编译、链接等。生成的可执行目标代码通过串口或以太网口下载到目标机,在目标机执行时,可以把执行结果回显到宿主机上,宿主机还可以通过开发环境提供的调试工具对代码进行调试。,5.1.1 开发模型,第五章嵌入式开发平台组建,5.1 开发平台简介,RTOS(Real Time Operation System,实时操作系统)是嵌入式应用软件的运行基础,它与硬件平台息息相关。随着应用系统越来越复杂,

3、需要管理的资源越来越多,没有操作系统对其调度是不行的。操作系统向应用软件提供访问资源的BSP(Board Support Package,板级支持包),这样就可以屏蔽部分硬件,使开发者不必关注过多的硬件细节,减小开发难度。同时,通过RTOS,还可以提高应用软件在不同硬件平台间的代码复用率。,5.1.1 开发模型,第五章嵌入式开发平台组建,5.1 开发平台简介,在嵌入式应用软件开发中,目前大部分使用C语言作为编程语言。与一般C语言编译器不同的是,嵌入式C语言编译器通常都经过优化,以提高编译效率。另外,由于嵌入式处理器速度的提高和存储空间的增加,一些嵌入式平台也开始采用C+作为编程语言。,5.1.

4、1 开发模型,第五章嵌入式开发平台组建,5.1 开发平台简介,在嵌入式系统开发环境中,交叉调试工具是必需的。交叉调试工具用于在宿主机上调试目标机上运行的程序。调试时,在目标机上运行一个代理,以接收主机发送过来的命令和代码,并且解释执行。通过调试器,开发者可以设定程序运行的起止位置和断点,同时可以查看和设置变量、寄存器及内存中的值,设置程序运行的条件,使开发者感到如同在目标机上调试程序一样方便。,5.1.1 开发模型,第五章嵌入式开发平台组建,5.1 开发平台简介,嵌入式系统是硬件和软件的综合体,开发嵌入式系统首先需要建立一个嵌入式硬件平台。嵌入式硬件平台的构建常用以下三种方案:1、购置实验箱

5、2、购置开发板 3、自制电路板,5.1.硬件开发平台,第五章嵌入式开发平台组建,5.1 开发平台简介,设计ARM硬件系统,一般遵从以下原则:(1)采用新型的和适合应用场合的ARM,可极大地提高系统的程序执行效率,缩短系统反应时间,满足适时性要求。(2)采用低功耗贴片封装元器件,可以有效地降低功耗,减小电路板面积,提高电路本身的抗干扰能力,从而提高系统的稳定性和可靠性。(3)采用通用型平台硬件电路设计,可以根据需要增删部件而生产不同型号的产品。(4)在硬件电路设计中将富余的端口都做成插座形式的接口。(5)通过选择CPU芯片,将逻辑接口芯片尽量集成在片内,可以简化系统设计。,5.1.硬件开发平台,

6、第五章嵌入式开发平台组建,5.1 开发平台简介,嵌入式软件开发环境依赖于嵌入式软件系统架构。嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通信协议、数据库、浏览器和应用程序等。其中,嵌入式操作系统是用来支持嵌入式应用的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动、通信协议、图形用户界面等。,5.1.3 软件开发环境,第五章嵌入式开发平台组建,5.1 开发平台简介,目前流行的嵌入式操作系统主要有Linux、WindowsCE、VxWorks、ucOS等,由于Linux的源代码开放、内核可裁剪、支持多任务和安全可靠等诸多优点,使得它已成为一款应用广泛的操作系统。,5.1

7、.3 软件开发环境,第五章嵌入式开发平台组建,5.1 开发平台简介,1、ADS开发环境 ADS(ARM Developer Suite,ARM开发环境)在没有硬件平台的情况下,可以提供软件模拟的方法进行软件开发,即ARMulate模式,在PC机上模拟调试。经模拟调试以后,当目标机硬件研制成功时,再利用ARM提供的JTAG端口将目标程序下载到目标机进行实时调试。,5.1.3 软件开发环境,第五章嵌入式开发平台组建,5.1 开发平台简介,2、Linux交叉编译环境 对于以Linux作为操作系统的嵌入式系统开发,可以借助于PC机的丰富资源和强大功能,在PC机的Linux环境下进行应用程序的编写和交叉

8、编译,把生成的目标程序通过串口和网口下载到目标机进行调试。这种开发模式的特点是,在开发过程的始终,宿主机和目标机都在一个强大的Linux网络之中。,5.1.3 软件开发环境,第五章嵌入式开发平台组建,5.1 开发平台简介,嵌入式系统的调试方式有多种,常见的有模拟器方式、监控器方式、仿真器方式和在线调试器方式四种。,5.1.4 嵌入式系统的调试方式,第五章嵌入式开发平台组建,5.1 开发平台简介,1、模拟器方式 调试工具和待调试的应用软件都在宿主机上运行,通过软件手段模拟目标机的行为,达到程序调试的目的,此为模拟器方式。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,进行

9、语法和逻辑上的调试。模拟器软件独立于微处理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和测试工具。但值得注意的是,模拟器的功能毕竟是以一种处理器模拟另一种处理器的行为,在指令执行时间、中断响应、定时器处理等方面,有时会存在很大的差别。另外,它也无法实现嵌入式系统在实际运行中的真实状况。ADS中的ARMulator模拟器就属于此种工具,它可以模拟开发各种ARM嵌入式处理器,具有指令和定时等模拟功能。,5.1.4 嵌入式系统的调试方式,第五章嵌入式开发平台组建,5.1 开发平台简介,2、监控器方式 宿主机和目标机通过某种接口(通常是串口)连接,宿主机上提供调试界面,被调试程序下载

10、到目标机上运行,这种调试方式属于监控器方式。监控程序是一段运行于目标机上的可执行程序,主要负责监控目标机上被调试程序的运行情况,并在宿主机的控制下,及时反馈目标机的运行信息,与宿主机端的调试器一起完成对应用程序的调试。监控器方式操作简单易行,功能强大,不需要专门的调试硬件,适用面宽,已广泛应用于多种嵌入式系统的开发之中。但监控器调试主要用于调试目标机应用程序,不适宜调试目标机操作系统。,5.1.4 嵌入式系统的调试方式,第五章嵌入式开发平台组建,5.1 开发平台简介,2、监控器方式 ARM公司的Angel是可以常驻在目标机Flash中的监控程序,只需通过串行口与宿机相连,就可以在宿主机上对基于

11、ARM架构处理器的目标机进行监控式开发和调试。,5.1.4 嵌入式系统的调试方式,第五章嵌入式开发平台组建,5.1 开发平台简介,3、仿真器方式 仿真器(In-Circuit Emulator,ICE)是一种完全仿造调试目标CPU设计的仪器,目标系统对用户来说是完全透明的、可控的。仿真器与目标机通过仿真头连接,与主机有串口、并口、以太网口或USB口等连接方式。仿真器可以真正地运行所有的目标CPU动作,并且可以在其使用的内存中设置非常多的硬件中断点,实时查看所有需要的数据,从而给调试过程带来很多便利。由于仿真器自成体系,调试时可以连接目标机,也可以不接目标机。,5.1.4 嵌入式系统的调试方式,

12、第五章嵌入式开发平台组建,5.1 开发平台简介,3、仿真器方式 使用ICE同使用一般的目标硬件一样,只是在ICE上完成调试后,需要把调试好的程序重新下载到目标系统上而已。由于ICE价格昂贵,而且每种CPU都需要一种与之对应的ICE,使得开发成本较高。,5.1.4 嵌入式系统的调试方式,第五章嵌入式开发平台组建,5.1 开发平台简介,4、在线调试器方式 使用ICD(In-Circuit Debugger,在线调试器)和目标机的调试端口连接,发送调试命令和接收调试信息,可以完成必要的调试功能。一般情况下,在以ARM为CPU的目标机上采用JTAG边界扫描口进行调试。使用合适的开发工具可以利用这些接口

13、。例如,ARM目标机,可以将JTAG调试器接在目标机的JTAG口上,宿主机通过JTAG口与ARM处理器核进行通信。由于JTAG调试的目标程序是在目标机上执行,因此,这种方式更接近于目标硬件。该方式是目前采用较多的一种调试方式。,5.1.4 嵌入式系统的调试方式,第五章嵌入式开发平台组建,5.1 开发平台简介,由于嵌入式系统中微处理器的多样性,嵌入式系统的可移植性显得更加重要,所以,有些嵌入式操作系统的内核明确分成两层,其上层一般称为内核,而低层则称为硬件抽象层或硬件适配层,更通俗地称为BSP(Board Support Package,板级支持包)。BSP是操作系统与目标硬件的中间接口,是软件

14、包中具有平台依赖性的一部分。,5.1.5 板级支持包,第五章嵌入式开发平台组建,5.1 开发平台简介,BSP将实时操作系统和目标应用环境的硬件连接在一起,充分利用硬件设备的特性,其功能主要包含以下两项:1、在系统启动时,对硬件进行初始化2、为驱动程序提供访问硬件的手段 开发一个性能稳定可靠、可移植性好、可配置性好、规范化的BSP将大大提高嵌入式操作系统各方面的性能。在目标环境改变的情况下,嵌入式操作系统的BSP只需要在原有基础上稍作调整,就可以适应新的目标环境,这无疑将显著缩短开发周期,提高开发效率。,5.1.5 板级支持包,比如对设备的中断,对CPU、寄存器和内存的分配等进行操作。这个工作是

15、比较系统化的,要根据CPU的启动、操作系统的初始化和系统的工作流程等多方面要求来决定。,驱动程序经常要访问设备的寄存器,通过对设备的寄存器进行操作而达到控制设备的目的。如果目标系统采用统一编址的方式,开发者在驱动程序中用C语言的函数就可访问。但是,如果目标系统采用独立编址方式,那么C语言就不能直接访问设备中的寄存器,只有用汇编语言编写的函数才能对外围设备寄存器的访问。BSP就是为上层的驱动程序提供访问硬件设备寄存器的函数包。,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,嵌入式系统开发离不开具体的硬件平台。基于ARM2410S嵌入式微处理器,平台由微处理器核心板、主

16、板及LCD三部分组成,具有丰富的接口资源和良好的可扩展性,为嵌入式系统设计提供了一种参考方案。虽然如此,其开发理念和开发方法在其他硬件平台上也是相似的,只是地址分配、接口方式和存储处理稍有区别而已。在掌握一般开发方法的基础上,其开发技术可以方便地用于其他任何一种平台。,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,UP-NETARM2410-S开发平台基于ARM2410S嵌入式微处理器,采用核心板加主板的结构方式,主工作频率202M,可移植Linux、WindowsCE、VxWorks和ucOS等操作系统,支持QT/E等嵌入式图形界面,包括完整的驱动程序。,5.2.

17、1 系统概述,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.1 系统概述,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.1 系统概述,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.2 核心板结构,UP-NETARM2410-S开发平台核心板资源主要有:(1)CPU:ARM920T结构芯片,工作频率202MHz,SAMSUNG公司的S3c2410X(2)FLASH:64MB NAND型,型号为SAMSUNG的K9F1208(3)RAM:64MB SDRAM,型号为HY57V561620AT

18、H(4)200管脚精密插座,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.2 核心板结构,由于ARM2410S微处理器位于核心板中,通过200引脚的插座引出CPU的接口线,电路板布线比较复杂,所以采用6层印刷电路板布线。,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.3 主板结构,UP-NETARM2410-S开发平台主板资源主要有:(1)USB口:包括一个USB Device接口和4个USB Host接口。前者直接来自处理器,后者是处理器的Host接口经过由AT43301构成的USB HUB电路扩展出来的4个Host接口

19、。(2)JTAG调试口:20针标准口,14针简易口。(3)AUDIO口:44.1KHz音频,采用UDA1341芯片构成,可放音和录音,通过IIS总线连接到处理器,具有功放电路驱动喇叭,板载MIC和音频IO插座。,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.3 主板结构,UP-NETARM2410-S开发平台主板资源主要有:(4)鼠标、键盘和IC卡接口:通过一片ATMEGA8单片机作为控制器,驱动PS2接口、IC卡接口和板载KEYPAD。ATMEGA8单片机通过IIC总线和ARM处理器连接。(5)AD口:3个电位器控制输入,8个通道经过跳线设置可全部作为外部

20、模拟电压输入,同时在板上设模拟电压输入专用接口,由S3C2410芯片管脚引出。(6)DC/STEP电机:直流电机信号来自PWM输出,步进电机信号来自EXIO扩展,EXIO扩展电路由74HC573构成,分配专用地址段,和IDE接口在同一BANK。,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.3 主板结构,UP-NETARM2410-S开发平台主板资源主要有:(7)IDE卡接口:IDE接口直接出自扩展总线,由软件完成驱动控制。(8)CF卡接口:PCMCIA模式的CF卡接口。(9)SD卡插座:直接来自s3c2410的SD控制器。(10)PCMCIA插座:PCMC

21、IA接口挂在扩展总线上,通过EPM3128A100 CPLD和HC245芯片等实现总线隔离和控制,并需要配置专用的电源控制芯片TPS2211。(11)IrDA/RS485:利用UART2实现,分别经过TFDU4100收发器和MAX485芯片完成。要作IrDA实验,必须将UART2设置到IrDA电路上,而不能同时作RS485实验。,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.3 主板结构,UP-NETARM2410-S开发平台主板资源主要有:(12)CAN总线:由控制器MCP2510和驱动器TJA1050构成。(13)DA电路:设置两个10位DAC端口,采用

22、MAX504 接SPI总线,输出两路模拟电压(预留一路)。(14)串口:包括两个RS232接口,处理器的UART0和UART1经过MAX3232芯片电压转换后用DB9插座输出。(15)以太网卡接口:包括两个相同的网卡电路,芯片型号AX88796,10M/100M自适应(预留一个)。,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.3 主板结构,UP-NETARM2410-S开发平台主板资源主要有:(16)168Pin的扩展插座:该插座和计算机的内存条插座规格一致,用户可以据此设计合适的扩展板。扩展槽上包含扩展总线的所有信号,可复用的系统资源以及开发平台尚未使用

23、的空置资源。(17)显示接口:采用8寸16bit TFT LCD显示器,640480分辨率,型号是LQ080V3DG01。S3C2410处理器内含LCD控制器,这使得LCD部分的电路非常简单,LCD控制器的信号线经过驱动电路后即可连接LCD模块。(18)触摸屏:采用2410 CPU AD单元的接口方案,可实现触摸屏功能。,第五章嵌入式开发平台组建,5.2 UP-NETARM2410-S开发平台,5.2.4 地址空间分配,UP-NETARM2410-S拥有64MB NAND FLASH和64MB SDRAM,其地址空间分配如表所示,第五章嵌入式开发平台组建,5.3 ADS开发环境,ADS全称为A

24、RM Developer Suite,是ARM公司推出的新一代ARM集成开发工具,可以完成ARM应用软件的编辑、编译和链接等工作,支持包括Windows和Linux在内的多种操作系统。,第五章嵌入式开发平台组建,5.3 ADS开发环境,ADS由三部分组成:命令行工具集成开发环境实用程序和支持软件,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,1.命令行工具 命令行工具通过命令方式实现嵌入式应用程序的编译与调试,也可以将许多编译命令编写在一个脚本文件中,通过运行脚本文件自动完成编译工作。命令行工具可分为三个部分:编译器、链接器和符号调试器。,5.3.1 ADS的组成

25、,第五章嵌入式开发平台组建,5.3 ADS开发环境,1.命令行工具1)编译器 ADS提供多种编译器,以支持ARM 和Thumb指令的编译,主要有:Armcc:ARM C编译器,用于将用ANSI C编写的程序编译成32位ARM指令代码。Tcc:Thumb C编译器。Armcpp:ARM C+编译器。Tcpp:Thumb C+编译器。Armasm:ARM和Thumb的汇编语言编译器。,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,1.命令行工具2)链接器 armlink是ARM链接器。该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个

26、可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,1.命令行工具3)符号调试器 armsd是ARM和Thumb的符号调试器。借助armsd,可以进行源码级的程序调试,也可以进行单步调试、设置断点、查看变量和内存单元的内容。,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,2.GUI集成开发环境 GUI开发环境包含CodeWarrior和AXD两部分,前者是集成开发工具,后者是可视化调试工具。CodeWarrior集成开发环境为管理和开发应用项目提供了良好的图形用户界

27、面,使用CodeWarrior可以为ARM和Thumb处理器开发用C、C+或者汇编语言编写的程序代码。在整个开发周期中,开发者无需离开CodeWarrior,就能编写和编译基于ARM的嵌入式程序。,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,2.GUI集成开发环境 AXD(ARM eXtended Debugger,ARM扩展调试器),是可视化的调试工具。AXD本身是一个软件,开发者通过这个软件可以对包含有调试信息的、正在运行的ARM可执行代码进行程序调试,如变量的查看,断点的设置等。,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,

28、3.实用工具 ADS提供一组实用工具以辅助ARM程序的编写与调试,主要有:(1)Flash downloader:该工具用于把二进制映象文件从宿主机下载到ARM目标机上的Flash存储器中。(2)fromELF:这是Arm映象文件转换工具,可将ELF格式的文件转换为各种格式的输出文件,包括BIN格式映像文件等。FromELF命令也能够为输入映像文件产生文本信息,例如,代码和数据长度。,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,3.实用工具(3)armar:ARM库函数生成器,它可将一系列ELF格式的目标文件以库函数的形式集合在一起。用户可以把一个库传递给一个链

29、接器以代替几个ELF文件。,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,4.支持软件 ADS为用户提供ARMulator软件,使用户可以在软件仿真的环境下调试用户应用程序。ARMulator是一个ARM指令集仿真器,集成在ARM的调试器AXD中,提供对ARM处理器的指令集仿真,为ARM和Thumb提供精确模拟,使用户可以在硬件尚未做好的情况下,开发应用程序代码。,5.3.1 ADS的组成,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用 Code Warrior提供一个简单通用的图形化用户界面,用于管理ARM软件

30、开发项目。可以以ARM和Thumb处理器为对象,利用Code Warrior开发C、C+和ARM汇编程序。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用1.创建项目工程 创建项目工程是嵌入式实际开发中必不可少的一部分,工程将所有的源码文件组织在一起,并能够决定最终生成文件存放的路径、输出的格式等。在CodeWarrior中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单栏中选择“New”菜单项。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用1.创建项目

31、工程,在这个对话框中为用户提供了7种可选择的工程类型:ARM Executabl ImageARM Object LibraryEmpty ProjectMakefile Importer WizardThumb ARM Executable ImageThumb Executable imageThumb Object Library,ARM Executabl Image:用于由ARM指令代码生成一个ELF格式的可执行映像文件。,ARM Object Library:用于由ARM指令代码生成一个armar格式的目标文件库,Empty Project:用于创建一个不包含任何库或源文件的空白工

32、程。,Makefile Importer Wizard:用于将Visual C的nmake或GNU make文件转入到CodeWarrior IDE工程文件。,Thumb ARM Executable Image:用于由ARM指令和Thumb指令的混合代码生成一个可执行的ELF格式的映像文件。,Thumb Executable image:用于由Thumb指令创建一个可执行的ELF格式的映像文件。,Thumb Object Library:用于由Thumb指令的代码生成一个armar格式的目标文件库。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置

33、与使用1.创建项目工程 选择ARM Executabl Image,然后在Project name里输入工程文件名,在Location项中单击Set按钮,选择项目工程存放位置,如D:ARMExam。最后单击“确定”按钮,即可创建一个新的名为Exam1的工程,工程文件的扩展名为.mcp。新工程创建以后,接着会弹出一个Exam1.mcp的工程管理窗口,包含3个标签页,分别为Files、Link Order、Targets,默认显示第一个标签页Files,用于管理工程源文件。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用1、创建项目工程,工程文件

34、只是一个项目管理系统。一个嵌入式应用工程通常由许多C、C+或ARM汇编语言编写的源程序组成。源程序的编写可以在Windows的记事本、Linux的vi等多种文本编辑器中实现,也可在Code Warrior环境中创建。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用1.创建项目工程,单击菜单命令“File”|“New”,打开如图所示的对话框,单击标签页“File”,在Filename文本框中输入要创建的源程序文件名,单击确定按钮,即可进入源程序编辑状态。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配

35、置与使用1.创建项目工程,Code Warrior提供的程序编辑器如图所示。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用1.创建项目工程,源程序文件编辑好后,需要添加到工程中。鼠标在工程文件管理器窗口中右击,从弹出的快捷菜单中选择“Add Files”,从而把源程序添加到工程中。当选中要添加的源文件时,会弹出一个对话框,询问用户把文件添加到何类目标中,一般选择DebugRel。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用1.创建项目工程,三种选项的含义:DebugRel:使用该选项,

36、在生成目标的时候,会为每一个源文件生成调试信息;Debug:使用该选项,会为每一个源文件生成最完全的调试信息;Release:使用该选项,编译时只产生可执行目标代码,不生成任何调试信息。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,在进行编译和链接前,首先需要进行环境配置,生成目标文件。单击“Edit”菜单栏下的“DebugRel Settings”菜单项,打开DebugRel设置对话框,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,其中左边

37、部分是可设置的模块,右边部分为每一模块可设置的项目,它包括如下6大模块:1)Target设置,默认2)Language Settings设置,ARM920T 3)Linker设置 4)Editor设置,默认值 5)Debugger设置,默认值AXD 6)ARM Features设置,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,在Linker设置中,标签页Output中的Linktype提供了3种链接方式。Partial方式表示链接器只进行部分链接,经过部分链接生成的目标文件,可以作为以后进一步链接时的输入文件。Sim

38、ple方式是默认的链接方式,也是使用最多的链接方式,它链接生成简单的ELF格式的目标文件,使用的是链接器选项中指定的地址映射方式。Scattered方式使得链接器根据scatter格式文件中指定的地址映射,生成复杂的ELF格式的映像文件。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,在选中Simple方式后,会出现Simple image选项,其中包含三种可设置项目:RO Base:这个文本框设置使包含有RO段的加载域和运行域为同一个地址,默认是0 x8000。用户要根据自己硬件的实际SDRAM的地址空间来修改这个地

39、址,保证在这里填写的地址是程序运行时,SDRAM地址空间所能覆盖的地址。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,RW Base:这个文本框设置了包含RW和ZI输出段的运行域地址。如果选中split选项,链接器生成的映像文件将包含两个加载域和两个运行域,此时,在RW Base中所输入的地址为包含RW和ZI输出段的域设置了加载域和运行域地址。Ropi:选中这个设置将告诉链接器,使包含有RO输出段的运行域位置无关。使用这个选项,链接器将检查各段之间的重定址是否有效,同时确保任何由armlink自身生成的代码是与只读位

40、置无关的。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,Rwpi:选中该选项将会告诉链接器,使包含RW和ZI输出段的运行域位置无关。该选项要求RW Base有值,如果没有给它指定数值的话,默认为0值。如果这个选项没有被选中,域就标识为绝对。每一个可写的输入段必须是读写位置无关的。Split Image:选择这个选项把包含RO和RW输出段的加载域分成2个加载域:一个是包含RO输出段的域,一个是包含RW输出段的域。这个选项要求RW Base有值,如果没有给RW Base选项设置,则默认值为RW Base 0。,第五章嵌入

41、式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,Relocatable:选择这个选项将保留映像文件的重定址偏移量。这些偏移量为程序加载器提供了有用信息。在Options选项卡中,需注意的是Image entry point文本框。该文本框用来指定映像文件的初始入口点地址值,当映像文件被加载程序加载时,加载程序会跳转到该地址去执行。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,在Linker模块中还有一个ARM from ELF选项,可设置链接器、编译器或

42、汇编器的输出代码格式转换。例如,将ELF格式的可执行映像文件转换成可以烧写到Flash中的二进制格式文件;在Target设置中选择了Post-linker,可以使用反汇编选项。在Output format下拉列表中,为用户提供了多种可以转换的目标格式,在ARM开发中,一般选择Plain binary,这是一个二进制格式的可执行文件,可以被烧写到目标机的Flash中。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,对于UP-NETARM2410-S硬件平台而言,在Simple链接方式下,RO Base应为0 x30008

43、000,是目标机上SDRAM的入口地址,RW Base应为0 x30200000,目标机上系统可读写的内存入口地址。也就是说,在UP-NETARM2410-S目标机上,0 x300080000 x30200000之间是只读区域,存放程序代码段,而在0 x30200000开始的区域是程序的数据段。对于读者使用的不同型号的目标机,应根据具体情况进行相应设置。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,编译和链接的操作步骤为:单击CodeWarrior IDE“Project”菜单栏下的“make”菜单项,或单击工程窗口

44、上方的“Make”按钮,就可启动对工程的编译和链接。整个编译链接的输出信息将显示窗口中。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.2 Code Warrior的配置与使用2.编译和链接项目工程,编译和链接完成后,在工程Exam1所在的目录下,会生成一个名为Exam1_data的目录,在这个目录下不同类别的编译目标文件存放在相应目录中。使用DebugRel目标,生成的最终文件都应该在该目录下。进入DebugRel目录后,make生成的含可调试信息的映像文件Exam1.axf和二进制文件。映像文件用于调试,二进制文件可以烧写到S3C2410X的Flash中运行。,第五章嵌入式开发

45、平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,AXD是ADS系统中独立于CodeWarrior的调试软件,支持软件模拟和硬件仿真。AXD能够装载映像文件到目标内存,具有单步、全速和断点等调试功能,可以观察变量、寄存器和内存数据等。无论利用模拟器进行调试,还是借助仿真器进行调试,前提是在CodeWarrior环境中已经编写、编译、链接生成了含有调试信息的可执行ELF格式的映象文件。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,1.调试环境 启动调试环境的方法常用三种:一是单击工程窗口上方的“Debug”按钮,二是选择CodeWarrior

46、中“Project”菜单栏下的“Debug”菜单项,三是通过Windows的开始菜单实现。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,2.模拟调试 在AXD中,利用系统提供的ARMulator模拟器,可以在没有目标机的情况下对嵌入式源程序进行调试。模拟调试操作步骤如下:(1)配置模拟器 在AXD窗口中,选择“options”|“Configure Target”菜单命令,弹出“Choose Target”对话框,在该对话框中选择“ARMUL”方式并按“OK”按钮。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,2.模拟

47、调试(2)打开调试文件 在AXD窗口上,选择“File”|“Load image”菜单项,打开Load Image对话框,找到要调试装载的.axf映像文件,单击“打开”按钮,把映像文件装载到目标内存中。在所打开的映像文件中会有一个蓝色的箭头指示当前执行的位置。(3)全速运行 选择“Execute”菜单栏下的“Go”命令,将全速运行调试程序。要想进行单步的代码调试,可在“Execute”菜单中选择“Step”选项,或按下F10快捷键,窗口中蓝色箭头会发生相应的移动。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,2.模拟调试(4)设置断点 将光标移到要进行断点

48、设置的代码处,在“Execute”菜单栏中选择“Toggle Breakpoint”命令或按F9键,就会在光标所在行的起始位置出现一个红色实心圆点,表示该处已设为断点。(5)查看寄存器值 查看寄存器值在实际的嵌入式开发调试中经常使用,方法为从“Processor View”菜单栏中选择“Register”选项。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,2、模拟调试(6)查看存储器值从“Processor View”菜单栏中选择“Memory”选项,可以打开存储器窗口,在存储器单元中保存的数据一目了然。(7)查看变量值查看某些变量的值,鼠标选中变量,然后

49、右击,在弹出的对话框中选择Watch,将会显示指定变量的详细信息。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,3.在线调试 借助于JTAG调试器,可以对实际的目标机进行在线调试。操作步骤如下:1)连接JTAG调试器,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,3.在线调试 2)安装仿真驱动 H-JTAG是一款简单易用的调试代理软件,功能和流行的MULTI-ICE类似。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,3.在线调试 3)添加JTAG硬件驱动程序 选择“控制面板”|“添加

50、硬件”向导按钮,启动添加硬件向导,根据向导提示单击“下一步”,最后指定驱动程序的存放路径(LPTJtag.inf)(此文件在安装目录.UarmJtag2.0driver中),单击“完成”按钮,即完成JTAG驱动程序的安装。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.3 AXD的配置与使用,3.在线调试 4)配置JTAG 第一步,双击桌面上的H-JTAG图标,启动H-JTAG;第二步,设置并口。选择“Seting”|“port Seting”;第三步,设置JTAG引脚。选择“Seting”|“JTAG Seting”;。,第五章嵌入式开发平台组建,5.3 ADS开发环境,5.3.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号