STM32F407探索者如何将外部SRAM作为运行内存

2019-07-20 02:15发布

这几天再网上一直再找关于407的外部SRAM内存设置的相关文章,这里和大家分享一下。本人亲测能够正常使用。欢迎各位大牛指导说明:首先要明白一点,开发板硬件上电复位前,我们是无法完成STM32对外部SRAM的配置,只能上电后进行配置了
才可以使用。也就是说,只有正常的硬件复位序列完成后,我们可以在Reset_Handler(复位中断服务程序)中完成对
SRAM的配置,但是在这之前,局部变量和函数调用用到的Stack栈空间,我们都得使用STM32内部SRAM,明白了这
点,开始说下配置(堆栈的初始化是由函数_ _main完成的,这个函数被MDK封装起来了,最终跳转到用户main函数)。
======================================================================
第一步:修改启动代码,固定的分配0x400字节做为栈使用。特别注意,修改栈顶指针固定在0x2000_0400位置。
不要让编译器去自动配置。





第二步:在函数SystemInit_ExtMemCtl中初始化外部SRAM



第三步:配置外部SRAM的起始地址和大小:




第四步:添加全局的宏定义
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
whj467467274672
1楼-- · 2019-07-21 16:26
我用探索者按照这个方法编译通不过。
..OBJSRAM.axf: Error: L6971E: system_stm32f4xx.o(.data) type RW incompatible with main.o(.ARM.__AT_0x68000000) type ZI in er RW_RAM1.
leiyitan
2楼-- · 2019-07-21 20:39
 精彩回答 2  元偷偷看……
拿着扁担去跳水
3楼-- · 2019-07-21 22:35
学习了!!

一周热门 更多>