ADS新手使用教程.doc_第1页
ADS新手使用教程.doc_第2页
ADS新手使用教程.doc_第3页
ADS新手使用教程.doc_第4页
ADS新手使用教程.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ADS 使用例程前言:ADS 是一个开发 ARM 很好的环境,同样周立功单片机()推出的 EasyARM2104 实验套件也是学习 ARM 相当超值的入门工具。由于配套实验书上对于如何做第一个实验方面给出的指导具体步骤不够清晰,新手一般都要摸索一阵子,所以本人写了如下一个 ADS 的使用例程,演示一个最简单的程序的运行范例。另外,ADS 是一个功能很强大的 ARM 开发软件,本人的水平也依然停留在初学的层次上,很多深层次的使用问题,设置参数问题需要大家一起仔细阅读英文的 pdf 使用说明,这里只是希望这篇文档能起到抛砖引玉的作用,把大家领进门。花了 3 天时间写出的本文,肯定存在不少错误,加上本人也是新手,所以如果发现文中有错误希望大家指出。我的 e-mail:注意:本例程要用程序控制周立功 EasyARM2104 上的 LED1,完成该 LED1 亮暗闪烁。首先我们假设 ADS 已经安装完毕(因为涉及版权问题,周公的配套光盘不含 ADS 软件。请初学者各显神通,获得该软件)。本例程使用的是 ADS1.2 。EesyJTAG 驱动已经安装。没安装的请仔细阅读周公配套光盘 easyarm_drivereadme.txt 安装过程。EasyARM 实验板上 JP8 LED1 跳线已经短接。其余跳线设置正确。(1) 建立一个新的项目运行 ADS 的 CodeWarrior IDE,点击 File-New,弹出 New 对话框(如图 1)图 1 ADS 新建工程对话框选择要建立的项目模板,初学者建议选择 ARM Executable Image,建立一个 ARM 指令的项目。ARM Executable Image由 ARM 指令代码生成 ELF 格式的映像文件Thumb ARM Interworking Image 由 ARM 指令和 Thumb 指令混合代码生成 ELF 格式的映像文件Thumb Execuable Image由 Thumb 指令代码生成的 ELF 格式的映像文件其余选项请参考 ADS 使用手册在 Location 项中设置项目的存放目录,并在 Project name 项中输入新建项目的名称(本例取名 ex_led),然后确定。生成窗口如图 2,可以看到只有刚建成空 mcp 项目文件。(2) 在 Windows 窗口中复制周立功光盘上的实验程序启动代码下的所有文件到刚才新建的项目目录下,本例为 e:My Documentsex_led,完成后目录情况见图 3。这几个文件说明如下:Vectors.sInit.sTarget.c 和 Target.hConfig.hLPC2106.h异常向量入口及异常向量与 c 语言代码的接口,初始化堆栈,一般不改lpc210x 初始化代码,一般不需要改动包括异常处理程序和目标板初始化程序,用户根据程序的需要修改用户配置文件,用户根据需要修改定义 lpc2104/lpc2105/lpc2106 的特殊寄存器及固件程序,不改注意:没有 LPC2104.h 这个文件,因为 LPC210X 系列寄存器都一样,只有 FLASH 和 RAM 大小不同,所以统一都使用 LPC2106.h图 2 生成的空项目图 3 复制完成后的 ex_led 文件目录(3) 给该项目添加源文件刚才只是简单的把几个周立功提供的启动文件物理拷贝到相应目录,并没有在 ex_led.mcp 项目文件中反映出来,所以还要在该 mcp 项目中添加一下。选择 Project-Add Files,弹出以对话框,再选择 Vectors.s,Init.s,Target.c 三个文件(按住 Ctrl 点击,同时选中)。后面的对话框的也按默认选择。这里,我们仅选择如上三个文件加入项目中。其余的几个.h 头文件因为是被上面三个文件包括进去(include)的,所以我们不必添加入项目。注:config.h 由用户主文件包括的(后面可知,用户自己新建文件为 ex_led.c)。图 4 添加文件选择窗口(4) 新建并添加用户主文件为什么要添件用户主文件呢?因为上述步骤我们仅添加了几个启动文件,这是不够的,打开这些文件观察可以看到,并没用 main()函数的定义。main()函数是程序执行的主体,根据我们的目标和需求,我们必须自己新建,所以还必须加入一个文件。选择 File-New 菜单中的 File 选项卡,新建一个文件:在 File name 栏中填写文件名称,例如,ex_led.c。(注意:扩展名为 c,表示 C 语言源文件。扩展名为 s,表示汇编语言源文件)勾中 Add to Project,表示将该文件添加到该项目中。后面的 Target 复选框内也全部打勾。如图 5。选择确认。完成后界面如图 6。(5) 在 ex_led.c 文件中自己编写 c 语言代码。可以参考周立功光盘上实验程序目录下的一些程序,并在此基础上修改而来。或者也可以自己编写,自己编写最简单框架如图 7图 5 在项目中添加用户源文件图 6 ex_led.c 生成结果,这是一个空白文件图 7 什么都不干的用户最小代码(6) 扩充最小代码框架,编写完整程序对于不明白如何编程控制 LED1 的同学,请参考周立功书中的程序。下面给出 ex_led.c 的完整程序,见图 8。图 8 完整的 LED1 控制程序(7) 相关设置同 PC 机上的程序不同,PC 机上写的 C+等程序只要编译就行了,不用去管放哪里的问题,所有这些都是 VC 环境自己解决的。但是 LPC2104 不一样,程序存放哪里,数据存放哪里必须自己设置一下。进行 JTAG 仿真时,使用的存储空间是目标机上的 RAM 空间,LPC2104 具有 16K 的 SRAM,其地址为 0x400000000x40003FFFF。在生产最终产品时,程序放在 0x00000000 开始的 Flash 中,SRAM 中存放的是运行生成数据,程序入口在 0x00000000 处。但是请注意:在一般在 JTAG 仿真调试时,通常将用户程序和数据空间都放到 SRAM 中去运行。程序存放地址在 0x40000000 往后,通常运行数据存放地址在 0x40003000 往后。程序入口为 0x40000000。这么做的好处是:不用每次都下载到 Flash 中,缩短时间,而且 Flash 的寿命是有限的(不过几百次至少没问题)。方便修改,方便调试。不足之处在于:可用的程序和数据空间都缩小了,可以计算,上面的设置后实际可用程序空间为 12K,数据空间为 4K。用 JTAG 调试,请按如下设置:选择菜单 Edit-DebugRel Settings,弹出的对话框中,先确认 Target Settings 窗口如图 9 所示。图 9 项目设置窗口点击左边 Linker 下的 ARM Linker 项,在 Output 页中,RO Base 项中写入程序段的起始地址,RW Base项中写入数据段的起始地址,点击 Apply 生效,如图 10。在 Options 页中的 Image entry point 项中填入调试入口地址,如 0x40000000,这将会覆盖程序代码中的 ENTRY 入口声明,如图 11。在 Layout 页中的 Placeat beginning of image 项中设置哪一段代码存放在程序空间的开始处,在 Objetc/Symbol 处写入包含要设置的段的文件的“文件名.o”,在 Sction 处写入代码段段名,如图 12。图 10图 11项目连接设置窗口项目连接设置窗口图 12项目连接设置窗口另外,ARM 核是支持大小端存储方式的,所以要进行正确的配置(使用 LPC210X 系列时,一定要选择小端模式,确保如图 13 所示)图 13小端模式设置(8) 编译选择菜单 Project-Make,或按 F7 键将对工程进行变异。若编译出错,会有相应的出错提示,双击出错提示行信息,编辑窗即会使用光标指出当前出错的源代码行。第一次编译肯定通不过,具体原因和修改请看附录 2。最后修改完毕后正确通过的窗口如图 14。图 14编译连接无误的输出窗口当编译通过时,选择菜单 Project-Debug,或者 F5 键,即可打开 AXD,进入调试状态。注意:假如不进入 AXD 而是跳出一个对话框,据周公那边传说,是由于操作系统兼容问题引起的,EasyJTAG 仿真器在 98 下运行稳定,在 2000/XP 下会经常出现这个问题。请参考本文档附录 1,或者周立功实验指导书后常见问题 2。(9) AXD 调试AXD 是 ADS 软件中的调试工具。上步编译通过并打开 AXD 后,正确的界面应如图 15 所示。界面中打开的窗口是文件 Vectors.s,左边蓝色的小箭头指向中断向量表的开始处。当选择 Execute-Go 或者按 F5时,弹出包含 main 函数的 ex_led.c 的窗口,如图 16。继续选择 Execute-Go 或者按 F5 将进入全速执行状态。假如执行结果并非预期,请用菜单 Execute 中的其它功能如单步,暂停,断点等,调试程序。注意,AXD 环境中只能进行调试,不能进行源文件的修改。假如想要修改,必须在 CodeWarrior 中修改,重新编译,重新打开 AXD 或者在原来 AXD 上 Reload Image 文件。图 15正确进入 AXD 的界面图 16调入包含 main 函数的 ex_led.c 后的窗口附录 1。进入 AXD 出现问题出现窗口如图 17 所示,点确定,后面的文件选择窗口点取消。出现图 18 界面。图 17图 18编译后不能进入 AXD 出现的情况什么也没载入的 AXD 界面选择 Options-Configure Target,出现图 19 界面图 19选择 Target 窗口图 20选择 EasyJTAG 并确定后的窗口选择 EasyJTAG 并确定后,出现的致命 AXD 错误框,如图 20。在 Connect mode 中选择 ATTACH 项,OK。然后选择 Restart,出现如图 21 所示 AXD 界面,注意,此时 Image 文件并未载入。图 21进入的 AXD 界面选择 File-Load Image 将会出来一个文件对话框,在 ex_ledex_led_DataDebugRel 目录下找一个 axf文件 ex_led.axf,如图 22,选中并打开。好了,至此问题已经解决,下面请参照正文第 9 节,继续调试。图 22找到并选中 ex_led.axf 文件附录 2。编译出错的解决按正文第 8 步,会出现一个窗口,里面表示编译出现很多错误。如图 23。图 23编译出现很多错误可以看到有 17 个错误之多,不过不用紧张,都是由于第一个错误引起的,我们双击第一个错误,可以看到,打开了 config.h 文件,如图 24,红色箭头表示可能出现错误的地方。图 24编译器指出了错误的大概地方错误原因找到了,原来是那句 #include 的问题,后面包括头文件的路径不对,所以我们要把路径修改一下。因为我们的 LPC2106.h 文件不在那个地方,所以只要修改为”LPC2104.h”即可,指向项目的默认目录。如图 25。图 25修改完后的程序关闭该文件,存盘。按 F7 重新编译。全部通过。后面的 16 个错误也不见了。因为后面很多错误都是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论