Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1048804
  • 博文数量: 178
  • 博客积分: 10222
  • 博客等级: 上将
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-03 11:27
个人简介

有所追求

文章分类

全部博文(178)

文章存档

2012年(1)

2011年(5)

2010年(3)

2009年(78)

2008年(91)

我的朋友

分类:

2008-12-01 12:43:23

 

(接上期)

  其具体步骤如下:

1  MDK中新建工程

  打开MDK,在主菜单中选择Project(New…(uVision Project,并给新工程命名为New_MDK.uv2,单击保存按钮,见图2


MDK中新建工程

  在MDK自动弹出的器件选择窗口(Select Device for Target)中选择该工程所对应的处理器型号“LPC2294”,并单击确定按钮,见图3。当MDK提示用户是否自动添加启动代码时,选择

2  添加源文件,并设置工程属性

  将Legacy_ADS.mcp工程中所有的源文件都添加到新的New_MDK.uv2工程中来,见图4

  单击工程属性快捷键,打开工程属性设置窗口,并选择C/C++标签页,设置编译器属性。用户可以根据以前ADS工程的编译属性设置,也可以根据当前具体需求重新设置编译属性。在本例中,将ADS遗留工程的编译属性“?O1?g+”修改为“?O1?g ?W”后,拷贝到Misc Controls文本框中,见图5。这是因为由于编译器版本的变化,其对应的编译选项也有所变化。

  注意: W选项可以抑止所有的warning


MDK中选择合适的处理器

ADS工程的遗留源代码全部添加到新工程中

编译选项的设置

  对ADS工程中的链接选项作适当修改如下,使其复合POSIX格式。

??--info totals--entry 0x00000000?--scatter .\src\Scatterload.scf --info sizes

  选择Linker标签,将修改过的链接选项拷贝至MDK工程属性的Linker属性中,并单击确定按钮,见图6

链接选项的设置

3  Build工程并适当修改代码

  当所有的工程属性都设置好之后,单击“Build all target file”快捷键,对整个工程进行编译、链接。在MDK窗口的build输出一栏中,我们会发现系统出现了一个链接错误L6238E(见图7)。这是由于MDK中新版本编译、链接工具与ADS的老版本build工具采用不同的ABI造成的(详见2.3小节)。

  为此我们打开该工程中的汇编文件startup.s,在该程序第55行添加PRESERVE8指令,如下所示:

  CODE32
  PRESERVE8
  AREAvectors,CODE,READONLY

4  重新编译链接该工程

  代码修改完毕之后,单击“Build all target file”快捷键,对该工程进行二次编译、链接。MDK将成功生成New_MDK.axf文件,并显示其代码尺寸信息为:

  Program Size: Code=1576RO-data=64 RW-data=0 ZI-data=1128

  这些信息同样可以从链接生成的New_MDK.map文件中得到。

5  代码调试与固化

  与其他ARM开发工具相比较,MDK拥有非常出色的仿真功能,可以帮助用户在纯软件平台上进行较为精确的调试。用户可以在工程属性设置窗口选择Simulator调试(见图8),或者通过硬件调试工具(uLink)进行调试。


链接错误L6238E


选择uVision Simulator作为调试平台

  当选择Simulator调试时,单击debug快捷键,打开Simulator调试窗口,见图9。为了验证该程序在LPC2294硬件平台上是否能够正确执行,通过GPIO口驱动LED进行循环闪烁,用户可以单击Peripherals>GPIO>Port2,将GPIO端口2的仿真界面打开,见图9


9  RVDMK调试环境

  单击运行快捷键,可以看到在GPIO端口2的仿真调试窗口中,IO口的输出在不停地循环变化。

  当程序通过了仿真调试之后,用户就可以通过MDK的硬件调试工具uLink将最终代码固化在非易失性的存储器中了。uLink的设置如图10和图11所示。

10  设置使用uLink调试


11  选择MDK默认的LPC2294 Flash烧写代码

总结

  作为ARM新推出的微控制器开发工具,MDK集成了优秀的ARM编译、链接工具RVCT,拥有出色的仿真调试功能,集成了代码固化工具Flash Programming Utilities,支持ARM7ARM9以及CortexM3等多种ARM内核,是ARM微控制器开发的首选。
阅读(2400) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~