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中只能用来建个大缓存数组了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
wangxipeng
1楼-- · 2019-07-20 14:39
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-20 15:57
SDRAM里面跑啊?高大上哦,你运行之前,得初始化SDRAM吧,而且要SDRAM控制器一直有效工作,否则怎么跑?
wangxipeng
3楼-- · 2019-07-20 16:23
回复【2楼】正点原子:
---------------------------------
是的,我也是这么理解的,不过不能完整初始化,完整初始化的话sdram会由于一段时间的未刷新而丢失数据,但我又不清楚该初始化哪一段
wangxipeng
4楼-- · 2019-07-20 17:52
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-20 18:26
回复【5楼】wangxipeng:
---------------------------------
谢谢分享
kings9527110
6楼-- · 2019-07-20 22:11
 精彩回答 2  元偷偷看……

一周热门 更多>