您的位置:首页 > 其它

转载_使用RealView MDK 3.5 教程(在mini2440上)

2013-02-21 16:07 120 查看
本来ADS1.2好好的,最近惊闻ARM把Keil给收购了(05年的事了,又惊闻Keil以前只有20来个员工),推出了RealView MDK 。

可是我买的两块开发板用户手册都是基于ADS1.2做示例的,只好抛弃ADS,第一次总是会有那么一点痛。

好久没有写有意义的东西了,今天就做个教程,演示下如何使用MDK 3.5生成一个能在mini2440上运行的

bin文件。

首先去下载MDK3.5 http://www.realview.com.cn/ 评估版 安装。

然后在一个叫testled 的文件夹下建一个叫testled的u Vision工程



选择cpu ,s3c2440A



因为只是一个小例子,就不需要添加什么启动代码了,选择否



然后FILE->NEW,添加一个叫testled.s的文件,其中的代码后面打包附送。

然后再把这个testled.s添加到当前工程里来



接下来就是很详细的配置了,需要根据具体硬件来设置,这里是mini2440

右击 target1 -> options for Target 'target 1'

首先是target选项卡



然后是Linker选项卡



然后是debug选项卡 ,这里需要注意的是,要想正常使用模拟器调试这段代码,需要一个初始化文件,此ini文件设置.afx文件下载到目标的位置,以及调试前的寄存器、内存的初始化等操作。它是由调试函数及

调试命令组成的调试脚本文件。我在网上找了一个Ext_RAM.ini,后面附上。



最后,就是要用MDk生成bin文件,这个简单,在user选项卡里设置编译后的动作

fromelf.exe --bin -o @p.bin @p.axf

fromelf.exe不用加物理路径,因为安装程序早就把MDK的程序目录加到环境变量里了。

@p变量代表的是当前工程名testled ,这些东西需要根据实际的目录和文件名进行调整。



然后就可以F7 make,ctrl+f5调试了

make常见的错误有

No section matches selector - no section to be FIRST/LAST.

这是因为默认的sct文件里 *.o (RESET, +First)

要求以RESET段作为程序入口点,你可以修改sct文件,也可以把代码的入口段名改为RESET

如AREA RESET,CODE,.....

还有一个警告warning: L6314W: No section matches pattern *(InRoot$$Sections).

是因为没有调用__main,如果__main所做的工作,如堆栈设置,RW,ZI区的拷贝,库函数的初始化等等用户全部都已经完成,那么这个警告是可以忽略不计的,在分散加载文件中去掉InRoot$$Sections就可以去掉该警告,但是如果用户没有实现上述操作,那么调用C函数是不能保证正确运行的。这个例子是纯汇编,

不用理会它。

因为有初始化文件,调试时就是从0x30000000开始的



将生成的bin文件下载到mini2440执行(vivi选项D),一切正常,很好。

完整工程及初始化文件下载

http://download.csdn.net/source/1644273
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: