Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Kernel
STM32双SRAM堆内存使用方法(经验)
发布于 2019-08-24 13:55:17 浏览:5121
订阅该版
* 本帖最后由 bevis 于 2019-8-24 13:57 编辑 * STM32系列有一些型号是把SRAM区分成2部分,SRAM1(0x200000)和SRAM2(0x100000). 现在教大家如何把这两段不连续的内存合并在一起无差别使用。首先进入RTT源码,bsp/stm32 选择你的芯片型号bsp。 在board文件夹下,修改board.h文件,将原先宏定义 HEAP_BEGIN 的值改成 &Image$$RW_IRAM1$$ZI$$Limit , 然后在下面上面SRAM1定义格式定义SRAM2的参数(不同芯片型号SRAM2有所不同) [attach]10314[/attach] 然后在本目录下修改 链接文件 board\linker_scripts\link.sct, 新增SRAM1和 SRAM2的信息 [attach]10315[/attach] 在menuconfig 上配置 堆内存, 一定要重新scons构建工程,因为内存算法文件从mem_pool变成了mem_head了。 [attach]10316[/attach][attach]10316[/attach] 最后在工程源码上添加堆内存初始化(至此全部完成, 使用free命令即可查看内存分配情况,函数调用使用extern long list_memheap(void)来查看 ) 以下有个遗留问题,当主内存一次性分配大内存后,再二次分配大内存,主内存在不足够时会寻找SRAM2,此时已然可以分配成功而不报错,我觉得底层应该是失败的。 希望开发者能看一下,这个是不是BUG。谢谢 ![44444444.png](https://oss-club.rt-thread.org/uploads/201908/24/135748zktv3jz47zj23st2.png) ![333.png](https://oss-club.rt-thread.org/uploads/201908/24/135550v11tizqiscas13a3.png) ![222.png](https://oss-club.rt-thread.org/uploads/201908/24/135547oj8m9wclghwdkmo6.png) ![111.png](https://oss-club.rt-thread.org/uploads/201908/24/135114xqsz1mm11xmsva1q.png) ![555.png](https://oss-club.rt-thread.org/uploads/201908/24/135051yj9aokxow8aa3kua.png)
查看更多
9
个回答
默认排序
按发布时间排序
bevis
2019-08-24
这家伙很懒,什么也没写!
[i=s] 本帖最后由 bevis 于 2019-8-24 17:17 编辑 [/i] 出现的问题总结: 当SRAM1 分配完60K后剩余24K, SRAM2剩余30K。此时再分配50K,已经没有连续内存了,但是依然没有提示错误(内存粘连黑科技??),没提示错误也就算了。list_memheap查出来的,SRAM2并没有显示内存占用。顺便附带正确操作的截图(只能一点一点的分)
alficfte
2019-08-25
这家伙很懒,什么也没写!
sram2 32中用于全局变量、bss等,sram1 96k用作堆,bs设计是相当合理,好奇你为什么要这么用
bevis
2019-08-26
这家伙很懒,什么也没写!
>sram2 32中用于全局变量、bss等,sram1 96k用作堆,bs设计是相当合理,好奇你为什么要这么用 ... --- 自己定义的全局变量还是会跑到SRAM1, 在RTT的内存管理算法上,启动文件的head和stack参数,好像并没有使用
KiraVerSace
2019-11-22
这家伙很懒,什么也没写!
>sram2 32中用于全局变量、bss等,sram1 96k用作堆,bs设计是相当合理,好奇你为什么要这么用 ... --- 请问全局变量使用sram2 这个需要再什么地方配置吗 还是编译器自动识别
alficfte
2019-11-23
这家伙很懒,什么也没写!
>请问全局变量使用sram2 这个需要再什么地方配置吗 还是编译器自动识别 --- rt-thread/bsp/stm32/stm32l476-st-nucleo/board/linker_scripts/link.lds
KiraVerSace
2019-11-26
这家伙很懒,什么也没写!
>rt-thread/bsp/stm32/stm32l476-st-nucleo/board/linker_scripts/link.lds --- 谢谢你的解答,lds是gcc的编译器修改,现在如果我要修改keil的sct文件应该如何呢,我看同样的bsp下,sct文件仅仅描述了iram2 ,并未指定iram1,ram2仅仅32k ,96k都给我的程序来用是不是有点浪费,此处我应该如何权衡?[attach]12422[/attach]
alficfte
2019-12-10
这家伙很懒,什么也没写!
>谢谢你的解答,lds是gcc的编译器修改,现在如果我要修改keil的sct文件应该如何呢,我看同样的bsp下,sct ... --- 抱歉 好久不上线 链接文件描述的SRAM2是给编译器识别的 没有定义SRAM1 编译器就不会给变量分配到SRAM1上 但SRAM1 可以初始化为堆 使用RTT的内存管理来操作 根据内存管理优缺点与实际需求来决定吧
Mr_黃
2021-01-04
这家伙很懒,什么也没写!
请问 RT-Thread Studio 在哪找到这个文件或者在哪里设置
hongsenlin
2022-12-08
这家伙很懒,什么也没写!
大佬,先拿60K再拿50K内存分配有没有问题最终有结论了吗? 这边用的stm32l4芯片,rtthread_nano,用到了SRAM1,SRAM2,SRAM3,外部SRAM,因为启动就死机,经过各种测试,现在被迫去掉SRAM2,SRAM3,只留SRAM1和外部SRAM,显示的SRAM1剩余是负数,你敢信? ![微信图片_20221208134626.png](https://oss-club.rt-thread.org/uploads/20221208/ae3005a760d26384daac4f92963d7cee.png)
撰写答案
登录
注册新账号
关注者
0
被浏览
5.1k
关于作者
bevis
这家伙很懒,什么也没写!
提问
79
回答
266
被采纳
0
关注TA
发私信
相关问题
1
请教cpu使用率分析
2
选择FreeRTOS, 还是RT-Thread。
3
thread heap stack overflow ?
4
rtt消息队列delay问题
5
释放被删除线程的内存地方在哪里啊
6
请教:各线程结束后,释放其中的内存的连续性问题
7
STM32F103中断关于信号量、邮箱问题
8
RTT中的线程栈大小如何控制
9
关于线程由执行态变为挂起态的代码实现,,,
10
rt_malloc(rt_size_t size)内存分配函数最小分配尺寸问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
CherryUSB的bootuf2配置
2
在用clangd开发RTT吗,快来试试如何简单获得清晰干净的工作区
3
GD32F450 片内 flash驱动适配
4
STM32H7R7运行CherryUSB
5
RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
6
次点赞
YZRD
2
篇文章
5
次点赞
lizimu
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部