OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2660|回复: 0

关于外部SRAM的使用

[复制链接]

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2014-2-25
在线时间
17 小时
发表于 2018-5-7 15:03:44 | 显示全部楼层 |阅读模式
本帖最后由 shao15232 于 2018-5-7 15:14 编辑


  之前在原子的论坛上面发了帖子,希望得到大神的指点,关于内存管理部分的使用情况。今天就自己的实验说一下个人心得,有错误之处欢迎指正拍砖,谢谢!


  关于STM32F103ZET6内存的使用,当我们使用EMWIN的时候,才会发现IRAM的内存在跑GUI_Demo的时候很吃力,大部分情况下就跑不起来了,就出现下面的样子:


..\OBJ\STemWin_UCOSIII.axf: Error: L6406E: No space in execution regions with .ANY selector matching os_var.o(.bss).
..\OBJ\STemWin_UCOSIII.axf: Error: L6406E: No space in execution regions with .ANY selector matching os_cfg_app.o(.bss).
..\OBJ\STemWin_UCOSIII.axf: Error: L6406E: No space in execution regions with .ANY selector matching os_var.o(.bss).
..\OBJ\STemWin_UCOSIII.axf: Error: L6406E: No space in execution regions with .ANY selector matching os_var.o(.bss).
..\OBJ\STemWin_UCOSIII.axf: Error: L6406E: No space in execution regions with .ANY selector matching os_var.o(.bss).
..\OBJ\STemWin_UCOSIII.axf: Error: L6406E: No space in execution regions with .ANY selector matching os_var.o(.bss).
..\OBJ\STemWin_UCOSIII.axf: Error: L6406E: No space in execution regions with .ANY selector matching os_var.o(.bss).
..\OBJ\STemWin_UCOSIII.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_alloc.o(.bss).
........

这些是内存不足的提示。
这个时候我用的还是原子的MALLOC内存分配来做的.
关于内存分配这里顺便提一下,原子教程里面的内存分配我用的时候感觉就是,我们的单片机在跑完code后,SRAM剩下空闲的部分才能被管理,系统跑起来占用的部分是没法管理的,只能自动分配。

然后我就把MALLOC的文件去掉,直接使用系统自带的外扩SRAM,还不知道怎么附图,只能在最底下一起放上来。
使用的时候先设置一下system_stm32f10x.c文件中第122行,设置 #define DATA_IN_ExtSRAM     1

启用系统自带的外部SRAM宏

启用系统自带的外部SRAM宏
修改完这里之后还要修改一下startup文件:
修改启动文件中的中的第39行,把__initial_sp 修改成 __initial_sp  EQU 0x20000000 + Stack_Size。

startup文件修改

startup文件修改

然后修改Options for Target  RAM1  Start:0x68000000  Size: 0x100000 (1M)
2.png
这个时候外部SRAM已经配置好了,注意这里不用去写什么FSMC和Init外部SRAM,因为上面启用外部SRAM宏的时候已经启用了外部SRAM。

最后个人感觉:
当你需要使用的 USER_SRAM > 64KB的时候,内部SRAM会报错,内存不足,需要启用外部SRAM,这个时候去查一下.map档案。结论是内部SRAM的使用率为0。  USER_SRAM会全部加载到外部SRAM使用。附图也在下面,大家自行参考一下。写的不好,望指正。
内外SRAM使用情况.png




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-5 12:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表