stm32f4使用iap在外部sdram中运行程序

2019-07-20 12:42发布

原子哥的iap例程都是在内部ram中跑的,我现在已经移植成功,并添加了xmodem协议来保证正确率。不过我的是f429,外扩了32M的sdram,现在想通过iap将程序下载到sdram中执行。但一运行就死机,不知道是什么原因。下载的bin文件是直接修改的例程,精简到只保留一个led灯的闪烁,去除了一切初始化,也就是说,在启动文件里注释了SystemInit这个函数,直接进入main函数。main中只有led初始化和 SCB->VTOR = SRAM_BASE | 0x1000,led灯的闪烁延迟也是用的循环。当用iap下载到内部ram里面正常执行,但下载到外部sdram就不执行了。不知道有没有人在外部sram下成功的,那个是静态的,我自己猜测可能是sdram需要定时刷新,而新的app没有接管iap对sdram所做的初始化,但之前用arm9时也是用的sdram,为什么uboot就可以做跳转? 求解惑啊,如果弄不出来,sdram在iap中只能用来建个大缓存数组了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。