stm32f207外部SRAM编译报错

2019-07-14 13:43发布

STM32接了512K外部SRAM。可以MDK编译器不认这块内存,因为当我定义一块大的ZI区内存时,编译老报错,提示存储空间不够,(内部SRAM已经用完), 如:
uint8_t test[1024*30];

请问是MDK设置问题吗?如何让编译器识别外部SRAM,此时外部SRAM初始化放在哪里?
是否只能通过指定地址来访问?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
东少2016
1楼-- · 2019-07-15 05:51
需要使用MDK界面进行设置,才可以使用外部RAM。
MDK设置后,可以生成一个scatter file, 编译器使用scatter file去进行编译,生成.out文件,指定代码段和数据段存放的位置,存储域和执行域的位置。
楼主也可以自己写一个scatter file,指定代码存放的位置, 全局变量和代码的存储位置。
具体可参考arm编译器手册的分散加载模块
补充一点,楼主最好手动对zi域清零,对外部存储器清零,已免代码跑飞了
zsqzsqzs
2楼-- · 2019-07-15 06:22
回复第 5 楼 于2013-09-27 16:26:15发表:
这个问题你试试下面的方法吧:
1、MDK里面设置好这个

2--找到 main(). 右键点击出来 otpin for file "main.c"后,做如下设置:

第一项选择内部的IRAM1,后面的数据选择  你的外扩RAM1。
再设置的过程中,要记得把外扩的内存初始化,最好放到systeminit()这个函数中。
 
 

 求助,我怎么找不到otpin for file "main.c",在哪里啊~

一周热门 更多>