今天在调试一款BSP,CPU是Atom N450,实际也没有什么,就拿着公版BSP直接改就可以,因为要求是5.5,所以就直接那pcPentium4来调试,除了网卡驱动,主要就是修改config.h文件了,存储介质是CF,就直接用ATA就可以了,首先编译出bootrom,测试OK,然后就编译Image,结果无法进入系统,没有办法就一点一点调试,结果发现,如果把LOCAL_MEM_AUTOSIZE宏undef,就ok了,因为默认是define的,后来不明白,就查阅文档,5.5的BSP文档对宏结束很简单,"运行时动态你存大小",整的我也比较运行,就拿6.9的文档还可以,解释还比较多,发现使用LOCAL_MEM_AUTOSIZE最主要的函数就是sysLib.c里面的sysPhyMemTop()函数,看看代码主要就是动态计算内存size的大小,我在看BSP配置文件,发现我实际define了LOCAL_MEM_SIZE,时间两个宏应该不冲突,不过我原来发现,如果不定义CPU的架构,使用BSP的sysCPUProbe()自动检测CPU架构,也会导致无法进入系统,使用一般大家都在Makefile里面指定CPU的架构,总之东西是出来,但是还是不太明朗,有待再学习呀,也有人说因为是Atom的处理器,LOCAL_MEM_AUTOSIZE宏提供的功能可以有点弱,可能不支持,这样很飘了,不太清楚?
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。