ADS 使用例程前言: ADS 是一个开发ARM 很好的环境,同样周立功单片机(www.zlgmcu.com)推出的EasyARM2104 实验套件也是学习ARM 相当超值的入门工具。由于配套实验书上对于如何做第一个实验方面给出的指导具体步骤不够清晰,新手一般都要摸索一阵子,所以本人写了如下一个ADS 的使用例程,演示一个最简单的程序的运行范例。另外,ADS 是一个功能很强大的ARM 开发软件,本人的水平也依然停留在初学的层次上,很多深层次的使用问题,设置参数问题需要大家一起仔细阅读英文的pdf 使用说明,这里只是希望这篇文档能起到抛砖引玉的作用,把大家领进门。花了3 天时间写出的本文,肯定存在不少错误,加上本人也是新手,所以如果发现文中有错误希望大家指出。我的e-mail:masashinakayama@sina.com.cn 注意:本例程要用程序控制周立功EasyARM2104 上的LED1,完成该LED1 亮暗闪烁。首先我们假设ADS 已经安装完毕(因为涉及版权问题,周公的配套光盘不含ADS 软件。请初学者各显神通,获得该软件)。本例程使用的是ADS1.2 。EesyJTAG 驱动已经安装。没安装的请仔细阅读周公配套光盘easyarm_drive eadme.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.s 异常向量入口及异常向量与c 语言代码的接口,初始化堆栈,一般不改Init.s lpc210x初始化代码,一般不需要改动Target.c 和Target.h 包括异常处理程序和目标板初始化程序,用户根据程序的需要修改Config.h 用户配置文件,用户根据需要修改LPC2106.h 定义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) 扩充最小代码框架 |