刚从44B0转以LPC2478,程序大了点,内部RAM放不下,不想每次烧flash。接照原来44B0的经验,先初始化好SDRAM,再用仿真器load程序到sdram中调试。
SDRAM使用是正常的,sdram的初始化程序是参考nxp网站上的例程序,跑过例程中的测试程序。后来做lcd时,显存也是开在sdram中的,也是正常的。
但奇怪load程序到sdram后,查看sdram,要么是全0,要么是全F,程序压根没进去。
用keil和RVDS2.2都试过了。keil下用的如下ini文件:
//先复位arm
RESET
//加载一个小初始程序初始化程序到内部ram
LOAD d:\LPC2478\ArmCode\BootOnly\BootOnly.axf INCREMENTAL
//指向内部ram的复位中断
PC = 0x40000000;
//执行到初始化完sdram
g, EndOfBoot
//加载当前应用程序,启动部分在内部ram,主体在sdram
LOAD %L INCREMENTAL
//指向内部ram的复位中断
PC = 0x40000000;
//运行到main
g, main
RVDS是手工两次加载的,思路同上。
做过这方面的请指点一下,是LPC24xx不支持直接加载到sdram,还是我哪有疏忽?先谢谢了。
难道是内核不同?44B0是ARM720T,有MMU,而LPC24xx是ARM7TDMI,没有MMU。但也不应该呀,我这程序也不算太大,也没有用os。难道大家做os+gui也一遍遍烧flash,那不烦死? |