OpenEdv-开源电子网

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

关于FreeRTOS内存问题,编译的内存使用量与计算的数值不同

[复制链接]

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2018-9-10
在线时间
16 小时
发表于 2019-8-29 17:41:02 | 显示全部楼层 |阅读模式
最近使用keil编译FreeRTOS,stm32f103cbt6 sram 20k.编译中提示如下;图片
我设置的keil堆栈分别是//-----------------------------------------------------------------------------
Stack_Size                EQU     0x1000

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp

Heap_Size      EQU     0x1000
//-------------------------------------------------------------------------------
freeRTOS 申请的堆如下
#define configTOTAL_HEAP_SIZE                    ((size_t)4 * 1024)
//-------------------------------------------------------------------------------
编译后占用的内存为
Program Size: Code=28436 RO-data=844 RW-data=1780 ZI-data=17692  
计算内存=0x1000 + 0x1000 +  ((size_t)4 * 1024);远小于17692,差值去哪里了?






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

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2019-8-29 20:29:27 | 显示全部楼层
你需要知道这些细节吗?
研究你工程下的map文件内容就知道了
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2018-9-10
在线时间
16 小时
 楼主| 发表于 2019-8-30 08:52:13 | 显示全部楼层
是的,想看看内存到底被怎么使用的,有例子说明吗?FreeRTOS的内存应用分析?
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2018-9-10
在线时间
16 小时
 楼主| 发表于 2019-9-2 11:05:04 | 显示全部楼层
能帮忙看看,下图的内存申请的问题吗?STM32内存为20KB,实际申请也就是4kB,但是,MAP中却提示申请了16KB,
2.png
回复 支持 反对

使用道具 举报

0

主题

71

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
金钱
357
注册时间
2017-10-10
在线时间
130 小时
发表于 2020-9-29 13:33:48 | 显示全部楼层
你如果说的是任务栈大小的设置的话,四倍是正确的,因为freeRTOS任务栈单位是字(word),不是字节(byte),一个字等于4个字节32BIT
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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