栈区不够用,能否使用sdram作为栈区!!!

2019-07-20 01:36发布

    用得stm32f429  ,把emwin开起来,然后文件系统也加进去,现在是栈区不够用  ,外部有片32Msdram,能否把堆栈设定到sdram中去!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
zmingwang
1楼-- · 2019-07-20 02:50
可以的,有两个办法:
1.在工程选项的target页下,将IRAM1的地址设置为SDRAM地址,比如0xC0000000,然后将中断向量表的第一项,也就是默认栈地址设置为一个内部RAM地址,比如0x20000400.在调用__main之前把FMC初始化了,然后重新把主堆栈修改为__initial_sp,此后栈就是在SDRAM中了.
2.修改分散加载文件,新建一个名为STACK的段,将段地址指定为SDRAM的地址,然后与方法一类似,先将默认栈设定为内部RAM,在__main之前初始化FMC,再设置MSP为__initial_sp,完成.
2459878559
2楼-- · 2019-07-20 03:40
zmingwang 发表于 2016-5-24 22:35
可以的,有两个办法:
1.在工程选项的target页下,将IRAM1的地址设置为SDRAM地址,比如0xC0000000,然后将中断 ...

修改栈地址是否是直接给R15赋值还是修改0x20000000处的数据!
zmingwang
3楼-- · 2019-07-20 09:25
 精彩回答 2  元偷偷看……
2459878559
4楼-- · 2019-07-20 12:10
 精彩回答 2  元偷偷看……
2459878559
5楼-- · 2019-07-20 15:54
zmingwang 发表于 2016-5-24 22:52
1.中断向量表的最开始4字节是主栈地址,直接写为一个内部RAM地址,比如0x20000400.
2.FMC初始化完成后,需要 ...

1.png 2.png   在systeminit 里对sdram进行了初始化 ,但是这样程序没有运行!!!

zmingwang
6楼-- · 2019-07-20 16:11
 精彩回答 2  元偷偷看……

一周热门 更多>