今天调试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条评论)
登录后参与讨论