做ARM裸机C与程序时的注意事项
以前在KeilC51里面,在建立完工程之后,Keil会提示是否加入startup.a51的文件,这个文件用来初始化51芯片的各个硬件资源。如果不加,往往程序会运行出错。
对于ARM裸机,也一样,只不过RVDS编译器不会给你提供初始化的文件,都要自己写。一般工程文件为汇编和C的混合。因为现在的学习还不够深入,所以目前也只清楚一些简单的程序设计框架。
例如,一般在工程文件中加一个init.s的汇编文件。里面仅有一句用于跳转的汇编语句。假如你的C语言的入口函数为main,那么这句语句就是: BL main
init.s的写法,一般为如下;
AREA init , CODE ,READONLY
GLOBAL start
IMPORT main
ENTRY
start
BL main
End
写好“引导”汇编程序及C语言程序后,还要进行设置。在Edit菜单下的 Debug setting 或者 Release setting(关键看你设置的是调试还生成)的
link选项中选择RealView Linker
这些设置完成之后,还必须设置入口点,RealView Linker里面可以看到下面的命令行,加入
--entry=start 就可以了,现在编译链接后,在Axd里面就可以通过Jtag调试了。
如果start在汇编中不是设置的global,那么链接的时候,链接器会警告无法找到入口。
也可以不用加汇编作“引导”,但是在设置的时候,你要清楚C转为汇编后,你要用的段在哪里,入口函数在哪里。
ARM裸机C与程序注意事 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)