原创 (转帖)在mini2440上使用RealView MDK 3.5 教程

2011-8-15 15:18 2387 6 6 分类: MCU/ 嵌入式

转自:http://hi.baidu.com/deep_pro/blog/item/093678c205d728120ff47712.html(深度专业)


本来ADS1.2好好的,最近惊闻ARM把Keil给收购了(05年的事了,又惊闻Keil以前只有20来个员工),推出了RealView MDK 。

可是我买的两块开发板用户手册都是基于ADS1.2做示例的,只好抛弃ADS,第一次总是会有那么一点痛。
好久没有写有意义的东西了,今天就做个教程,演示下如何使用MDK 3.5生成一个能在mini2440上运行的
bin文件。


首先去下载MDK3.5 http://t: normal; ">8056c7d5585c5cef50da4b65.jpg

选择cpu ,s3c2440A           

541696ed01440affb21cb162.jpg


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

25c6df4f6dcc761daec3ab6f.jpg

然后FILE->NEW,添加一个叫testled.s的文件,其中的代码后面打包附送。
然后再把这个testled.s添加到当前工程里来

86588d3d77ded8c53c6d977c.jpg

接下来就是很详细的配置了,需要根据具体硬件来设置,这里是mini2440
右击 target1 -> options for Target 'target 1'

首先是target选项卡
977a603e7c5db2d1838b1353.jpg

然后是Linker选项卡

1cfa0d0976b51da9d0581b5e.jpg

然后是debug选项卡 ,这里需要注意的是,要想正常使用模拟器调试这段代码,需要一个初始化文件,此ini文件设置.afx文件下载到目标的位置,以及调试前的寄存器、内存的初始化等操作。它是由调试函数及
调试命令组成的调试脚本文件。我在网上找了一个Ext_RAM.ini,后面附上。
b565433d19a2502bbba16729.jpg

最后,就是要用MDk生成bin文件,这个简单,在user选项卡里设置编译后的动作
fromelf.exe --bin -o @p.bin @p.axf
fromelf.exe不用加物理路径,因为安装程序早就把MDK的程序目录加到环境变量里了。
@p变量代表的是当前工程名testled ,这些东西需要根据实际的目录和文件名进行调整。

89aaf43826bc680fb9998f3f.jpg

然后就可以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开始的
6b7f3b11394ef7eda6ef3f14.jpg

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

完整工程及初始化文件下载
http://download.csdn.net/source/1644273

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条