原创 arm不能boot的一种可能

2007-7-25 22:53 2684 5 5 分类: MCU/ 嵌入式
今天调试D平台时,download程序后,一直不能boot。
在排除问题工程中有如下体会:
1、全编译的时候一定要先clear所有的*.o文件。不然有些code改动不能同步到产生的可执行文件中去。
2、定义全局非const的大数组时,一定要考虑定义为全局或非const的必要性。因为这个数组在boot过程中是要download到RAM中去运行的。必然会占用RAM空间。这会是导致RAM空间不够而成为不能boot的一个原因。
3、不需要开机后download到RAM的数组,建议定义为const。这样可以将这个数组保存在norflash内,而不占RAM空间。
4、因为D平台编译和连接时没有检查RAM空间是否越界。所以建议在编译完成后,检查《*.map》文件(这个文件和*.cla放在同一个目录下)内的最后显示的RAM是不是已经被越界。如果越界,那么download'到手机后必然会引起不能boot的问题。
5、download时,不建议编译文件。如果要同时进行,建议把*.cla拷到别的文件夹。因为编译link的时候会清除*.cla文件。
6、不建议同时编译两个vobs,因为这样编译会导致有一些*.o文件找不到。至少F平台是这样的。



文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条