




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ADS集成环境下应用程序开发过程1.实验目的1.1理解启动代码功能硬件初始化,引导C代码特征通常用汇编语言编写,程序复位运行入口点,代码量非常小程序流程、设置中断、异常入口、关中断、硬件寄存器初始化(GPIO配置、总线配置、PLL时钟)、初始化栈指针、数据区初始化、C入口函数调用BL Main1.2掌握ADS集成环境下应用程序开发过程、JTAG 仿真器的应用、应用程序功能、硬件驱动、应用、应用程序特征、通常用C语言或者嵌入式汇编语言编写、程序较复杂,代码量较大2.实验内容2.1安装ADS、安装ADS、安装ARM License、编译2.2用ADS创建工程、配置ADS、添加文件、编写程序、C或汇编程序2.3编译、配置编译、汇编和连接参数、编写连接脚本文件、编写连接脚本文件2.4调试、连接调试器、下载程序、运行、调试3.实验过程3.1ADS1.2开发环境的创建3.1.1ADS1.2概述由于嵌入式控制器收其本身资源的限制,其应用程序不能再其自身上开发。因此开发其应用程序,还需要一台PC机,我们可以把这台PC称为“宿主机”。在“宿主机”上开发需要安装有集成开发环境。ADS就是ARM的集成开发环境。ADS全称为ARM Development Suit,是ARM公司推出的新一代ARM集成开发工具。它主要包括编译器、链接器、调试器、C和C+库等,是ARM公司推出的新一代ARM集成开发工具。其最新版本是ADS1.2,该版本支持包括Windows和Linux在内的多种操作环境。ADS1.2的组成如下。1. 编译器ADS提供多种编译器,以支持ARM和Thumb(在ARM体系中数据和指令采用16位字长)指令的便宜,主要有armcc:是ARM C编译器tcc:是Thumb C编译器armcpp:是ARM C+编译器tcpp:是Thumb C+编译器arm asm:是ARM和Thumb的汇编语言编译器2. 链接器armlink是ARM链接器。该命令既可以将编译得到的一个或多个多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件链接成一个目标文件,以供进一步链接。3. 符号调试器armsd是ARM和Thumb的符号调试器,能进行源码级的程序调试。用户可以在用C或汇编语言编写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。4. FromELF将ELF格式的文件转换为各种格式的输出文件,包括bin(二进制)格式映像文件,Motorola 32为S格式映像文件、Intel 32位格式映像文件和Verilog 十六进制文件。FromELF命令也能够为输入映像文件产生文本信息,例如代码和数据长度。5. armarArmar是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。用户可以把一个库传递给一个链接器以代替几个ELF文件。6. CodeWarriorCodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarriorIDE为ARM和Thumb处理器开发用C、C+或者ARM汇编语言编写的程序代码。一般来说我们会使用CodeWarrior集成开发环境来开发我们的C语言程序。7. 调试器ADS中含有3个调试器,即AXD、Armsd和ADW/ADU。在ARM体系中,可以选择多种调试方式,如Multi-ICE(Multi-processor In-Circuit Emulator)、ARMulator或Angel。(1)Multi-ICE是一个独立的产品,是ARM公司自己的JTAG在线仿真器,而不是由ADS提供的。(2)ARMulator是一个ARM指令仿真器,集成在ARM的调试器AXD中,提供对ARM处理器的指令集成的仿真,为ARM和Thumb提供精确的模拟。用户可以再硬件尚未做好的情况下开发程序代码,利用模拟器方式进行调试。(3)Angel是ARM公司常驻在目标机Flash中的监控程序,只需通过RS232C串口与PC主机相连,就可以对基于ARM架构处理器的目标机进行监控器方式的调试。8. C和C+库ADS提供了ANSI C库函数和C+库函数,支持被编译的C和C+代码。用户可以把C库中的与目标相关的函数作为自己应用程序的一部分。重新进行代码的实现。3.1.2 ADS1.2的安装在YLE2440W用户光盘(V1.6)实用工具的目录下有一个嵌入式系统开发ADS12破解版.zip的文件,解压后运行SETUP.EXE。根据安装向导一步一步完成ADS 集成开发环境的安装。需要注意的是,如图3-1所示,选择Intall License。图3-1如图3-2所示,选择Linseed File To Be Installed。单机Browse,选择 CRACK 目录下的license.dat 文件即可安装许可证。图3-2 安装并注册成功后,CodeWarrior集成开发环境就可以使用了。如图3-3所示。图3-33.2ADS集成开发环境的使用3.2.1 建立一个新工程点击Windows 操作系统的【开始】-【程序】-【ARM Developer Suite v1.2】-【CodeWarriorfor ARM Developer Suite】启动Metrowerks CodeWarrior,运行后的界面如图3-4所示。图3-4选择【File】-【New】,出现如图3-5所示对话框。图3-5ADS为用户提供了7个模板,分别是:、ARM Executable Image:用于由ARM指令的代码生成一个ELF格式的可执行映像文件;、ARM Object Library:用于由ARM指令的代码生成一个armar格式的目标文件库;、Empty Project:用于创建一个不包含任何库或者源文件的工程;、Makefile Importer Wizard:用于将VC的nmake或者GNU make文件转入到Code Warrior IDE工程文件;Thumb ARM Executable Image:用于由ARM指令和Thumb指令的混合代码生成一个可执行的ELF格式的映像文件;Thumb ARM Executable Image:用于由Thumb指令创建一个可执行的ELF格式的映像文件;Thumb Object Library:用于由Thumb指令的代码生成一个armar格式的目标文件库。一般情况下均选择“ARM Executable Image”,然后在“Project name:”栏输入工程的名称,在“Location:”栏指定路径,在本例中工程名为Expe1_LED ,存储路径为E:ADSProject。设置好后点击确定。这时候会出以工程名命名的.mcp对话框,如图3-6所示。图3-6有三个标签页,风别为Files,Link Order,Targets。默认的是第一个Files。在该标签页下,在空白处点击鼠标右键,选中“Add Files”可以把用到的源程序添加到工程中。也可以选择新建一个文件编辑源码。下面我们分别介绍这两种方法。首先我们说下添加源程序到工程中。如图3-6,在Files标签选项卡下单击鼠标右键,选中“Add Files”要使用ADS新建一个文件编辑源码可以有两种方法,第一种是直接点击工具栏上按钮,在弹出的对话框中输入源码,也可以在菜单栏上点击【文件】-【新建】,然后选择File选项卡,如图3-8所示。在“File Name”中输入文件的名字,点击确定。也可以勾上Add to project前面的复选按钮,然后在Targets中勾上DebugRel,这样源码就添加到工程中了。如果不勾上Add to project前面的复选按钮,那么编辑好源码后,需要按照前面添加源码的方法把添加源码到工程中去了。在弹出的对话框中输入程序源码(见附录一),注意:ARM汇编语言程序源代码中允许有空行,可以在汇编程序中加上一个空白行,来增加程序的可阅读性。此外需要注意的是:指令,指示符,伪指令前必须加空格或者Tab制表符,这就是说指令,指示符,伪指令不可以从行的最左边开始书写,即不能顶格书写。在ARM汇编语言程序中,所有标号必须在一行的最左边的位置开始书写,标号的后面不要加“:”。指令,指示符,寄存器名可以用小写字母也可以用大写字母来表示,但不能大小写字母相杂。当一行写不下时,可以用反斜线作为这一行最后的符号,然后另起一行接下去写,这样汇编器会将这两行代码看作一行代码。需要注意的是,如果在被引号括住的字符串中使用反斜线,则反斜线不能起到续行的作用。每行的长度限制一般在128255个字符串之间。分号;除非在字符串常量中出现,否则它的出现就表示着注释的开始,此注释直至行尾结束。可以将注释单独列为一行。所有注释被汇编器忽略。编辑好源码并保存添加到工程后还不能编译和链接,还需要进行一些配置。在如图3-6所示的对话框上面有一些按钮和选项卡,我们把鼠标移到上面的时候会出现一些提示,如图所示 DebugRel Settings 工程设置,如地址设置、输出文件设置、编译选项等,其中DebugRel 为当前的生成目标(target system)。 Synchronize Modification Dates 同步修改日期,检查工程中每个文件的修改日期,若发现有更新(如使用其它编辑器编辑源文件),则在Touch 栏标记“”。 Make 编译连接(快捷键为F7)。 Debug 启动AXD 进行调试(快捷键为F5)。 Run 启动AXD 进行调试,并直接运行程序。 Project Inspector 工程检查,查看和配置工程中源文件的信息选择菜单栏【Edit】-【DebugRel Setting】出现如图所示的对话框1.Target设置选项Target Name文本框显示了当前的目标设置Linker选项供用户选择要使用的链接器。在这里默认选择的是ARM Linker,使用该链接器,将使用armlink链接编译器和汇编器生成的工程中的文件相应的目标文件。在这个设置中海油两个可选项,None表示不适用任何链接器,如果使用None,则工程中的所有文件都不会被编译或汇编器处理。ARM Librarian表示将编译或汇编得到的目标文件转换为ARM库文件。对于本例,使用默认的链接器ARM Linker。Pre-linker:目前CodeWarriorIDE不支持该选项Post-Linker:选择在链接完成后,还要对输出文件进行的操作。我们一般希望生成一个可以烧写到Flash中去的二进制代码,所以在这里选择ARM fromELF,表示在链接生成映像文件后,再调用FromELF命令将含有调试信息的ELF格式的映像文件转换成其他格式的文件。设置好后如图所示2.Language Settings设置选项我们实验采用的汇编语言编写,因此要使用到汇编器。选择Language Settings下选择ARM Assembler。如图所示在Target选项卡下Architecture or Processor的下拉菜单中选择ARM920T(CPU的类型)。在Floating Point选择No floating point。Byte Order中选择Little Endi。Initial State中选择ARM。如果使用C语言编写程序,也需要在Architecture or Processor的下拉菜单中选择ARM920T。设置好后如图所示3.Linker 设置单击ARM Linker,在Output选项卡中设定程序的代码段地址,以及数据的地址。在RO Base文本框中填写程序代码存放的起始地址,RW Base文本框中填写程序数据存放的起始地址。注意:RW Base地址必须是SDRAM的地址。如图所示在Option选项卡中,Image entry point文本框填写程序代码的入口地址,其他保持不变,如果是在SDRAM中运行,则可以再0x300000000x33ffffff中选值,这是64M SDRAM的地址,但是这里用的是起始地址,所以必须把用户的程序空间给留出来,并且还要留出足够的程序使用的数据空间,所以必须把用户的程序空间给流出来。并且还要留出足够的程序使用的数据空间,而且还必须是4字节对齐的地址(ARM状态)。通常入口点Image entry point为0x30000000,RO_base也为0x30000000。如图所示在Layout选项卡中,在Place at beginning of image选项组里要填写项目的入口程序的目标文件名,例如,在本例中整个工程项目的入口程序是asm_led.s,那么应该在Object/Symbol文本框中填写其目标文件名asm_led.o,在Section文本框中填写程序入口的起始段标号。它的作用是通知编译器,整个项目的开始运行,是从该段开始的。单击ARM fromELF选项卡,在Output file name文本框中设置输出文件名*.bin,前缀名可以自己取,在Output format下拉列表中选择Plain binary,这是设置要下载到flash中的二进制文件。如图所示。到这里,设置就基本上完成了,可以对工程进行编译和链接了。可以点击CodeWarrior IDE的菜单栏【Project】-【make】菜单,也可以直接在.mcp对话框上点击按钮编译工程。在Errors & Warnings对话框中警告和错误都为03.2.2 使用AXD进行代码仿真、调试项目建立并加入相应的文件后,“目标机”和“宿主机”通过JTAG仿真器进行连接,然后用AXD进行代码仿真、调试。首先将使用并口电缆将计算机并口和JTAG 仿真小板连接起来,并把JTAG仿真小板和开发板的JTAG接口用20芯排线连接到SDT插座上。并按动将JTAG小板上的红色按钮,调制Wiggler。(注:以下操作均在windowsXP下操作)在YLE2440W用户光盘(V1.6)实用工具目录下,解压Arm Debug,复制Arm Debug文件夹GIVEIO.SYS拷贝到C:WINDOWSsystem32drivers目录下。运行Arm Debug文件夹下“安装驱动.exe”就会弹出一个界面窗口,先点击“remove”,再点击上面的“INSTALL”按键,出现提示信息“service is partially installed”.然后在点击下面的“INSTALL”按键,出现下面提示信息,如下图所示,说明安装成功。安装好后,重启下开发板。运行Arm Debug文件夹下ARM9.exe,选择Wiggler,如果安装成功,并且连线正确,装会检测到ARM920T,如下图如示:不要关闭ARM9调试代理,在Codewarrior IDE环境下,点击.mcp对话框上面的Debug按钮,显示如图所示对话框。点击菜单栏【Options】-【Configure Target】,弹出Choose Target对话框,如图所示,选择Configure。出现如图所示Remote_A connection对话框。点击Select按钮,如图所示,选择ARM Ethernet driver,点击OK。在图选择Configure,出现如图所示对话框,输入IP地址127.0.0.1,点击OK设置好后在Remote_A connection对话框点击OK,再在Choose Target对话框点击OK,出现如图所示对话框。点击是如果目标系统正确链接了,会看到程序下载的进度条显示。进度消息框消失后,显示当前执行代码视窗,蓝色指针指向第一条执行的语句。如图所示。当工程编译连接通过后,也可以通过【开始】菜单启动AXD。点击【File】选择【Load Image】加载ELF 格式的可执行文件,即*.axf 文件。说明:当工程编译连接通过后,在“工程名工程名_Data当前的生成目标”目录下就会生成一个*.axf 调试文件。比如工程Expe1_LED,当前的生成目标Debug,编译连接通过后,则在Expe1_LEDExpe1_LED_DataDebugRel 目录下生成Expe1_LED.axf 文件。加载调试文件(即*.axf 文件),用户就可以操作AXD运行调试工具条中的工具按钮实现程序运行调试。AXD运行调试工具条如图1.13 所示,调试观察窗口工具条如图1.14所示,文件操作工具条如图1.15 所示。运行调试工具条 全速运行(Go) 停止运行(Stop) 单步运行(Step In),与Step 命令不同之处在于对函数调用语句,Step In 命令将进入该函数。 单步运行(Step),每次执行一条语句,这时函数调用将被作为一条语句执行。 单步运行(Step Out),执行完当前被调用的函数,停止在函数调用的下一条语句 运行到光标(Run To Cursor),运行程序直到当前光标所在行时停止。 设置断点(Toggle BreakPoint) 打开寄存器窗口(Processor Registers) 打开观察窗口(Processor Watch) 打开变量观察窗口(Context Variable) 打开存储器观察窗口(Memory) 打开反汇编窗口(Disassembly) 加载调试文件(Load Image) 重新加载文件(Reload Current Image)。由于AXD 没有复位命令,所以通常使用Reload 实现复位(直接更改PC寄存器为零也能实现复位)。在AXD 中点击GO 图标,则程序开始全速运行,我们可以看到实验板上D8D14不停的闪烁着。4.ARM汇编与C语言混合编程实例此程序实现开发板上的LED灯实现流水灯的功能,先要新建一个工程名为asm_c,然后新建源文件init.s和main.c,输入代码(源码见附录2),如下所示:按照前面调试的方法,调试程序。附录一实验一源码及其说明 图1图2图3图4在开发板关盘YLE2440W用户光盘(V1.6)原理图原理图_PDF格式目录下YLE24xx_DEV_V2.0.pdf文件中我们可以找到如图1所示的LED连接图。然后我们可以在YLE2440-CORE-V1.0.pdf文件中找到这几个LED灯所连接的IO口,如图2所示,因此我们可以知道这四个LED灯连接在MCU的F口上。因此我们需要知道这几个口的地址。打开YLE2440W用户光盘(V1.6)芯片资料目录下um_s3c2440a_rev10.pdf文件,在第九章I/O PORTS中我们可以找到F口对应的地址,如图3,图4所示。了解了LED灯的连接之后,设计程序的思路就出来了,流程图如图5所示图5具体算法如下:;定义端口E 寄存器预定义rGPFCON EQU 0x56000050rGPFDAT EQU 0x56000054rGPFUP EQU 0x56000058AREA Init,CODE,READONLY ;该伪指令定义了一个代码段,段名为Init,属性只读ENTRY ;程序的入口点标识ResetEntry;下面这三条语句,主要是用来设置I/O 口GPF7 为输出属性ldr r0,=rGPFCON ;将寄存器rPCONE 的地址存放到寄存器r0 中ldr r1,=0x5500str r1,r0 ;将r1 中的数据存放到寄存器rPCONE 中;下面这三条语句,主要是禁止GPF 端口的上拉电阻ldr r0,=rGPFUPldr r1,=0xffstr r1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商务代理服务协议及合作条款
- 2024年水生植物类资金申请报告代可行性研究报告
- 缺血脑血管病事件双抗
- 2025深圳房屋租赁合同协议
- 新零售背景下2025年私域流量运营客户关系维护策略报告
- 中国雄黄矿行业市场调查报告
- 2025年健康管理服务平台运营模式创新与优化报告
- 运动品牌数字化营销策略与社交媒体互动体验报告
- 砼路面施工方案
- 包装装璜其他印刷品行业深度研究分析报告(2024-2030版)
- 控制计划CP模板
- 银行不良贷款责任认定及问责管理工作实施细则
- 科技工作管理办法
- 北师大版八年级数学上册单元测试题附答案全套
- 出生缺陷定义及分类和预防要求
- 乌鸡散-圣济总录卷八-方剂加减变化汇总
- 华南理工大学发酵工厂设计管道设计与布置
- 全站仪基本功能使用手册
- 新版无水三氯化铝安全技术说明书
- 常用H型钢、工字钢、角钢、槽钢规格表
- 观音神课三十二卦
评论
0/150
提交评论