关于FreeRTOS动态方法创建任务后RAM占用情况

2019-07-21 01:04发布

FreeRTOS创建任务方法有两种,静态方法和动态方法,静态方法需要用户自己分配堆栈空间给每个任务,动态方法则根据内存管理文件动态分配堆栈空间。现在有一个疑问:用静态方法时可以发现,堆栈空间大小的设定会在程序编译后影响芯片RAM的使用率(和UCOS一样,这个很好理解,毕竟堆栈开辟在RAM),但是问题是当我用动态的方法来创建任务,无论我设定多大的任务堆栈,对芯片RAM的使用都没有影响(至少编译结果是这样的),这是为什么呢?而我实际测试出来,该任务使用了304*4byte的堆栈空间。
如下图所示:
微信图片_20180912175745.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
275891381
1楼-- · 2019-07-21 06:05
本帖最后由 275891381 于 2018-9-12 18:34 编辑
陈皮皮 发表于 2018-9-12 18:22
FreeRTOSConfig.h   malloc.h

#define configTOTAL_HEAP_SIZE                                        ((size_t)(20*1024))     //系统所有总的堆大小
freertos用了20k不知道你的是103的啥有多大内存,还有你的malloc.h并没有上传不知道malloc占了多少,还是就没用malloc
说实话,对这样的大部分人基本都没兴趣回复,你的代码又不是机密,有啥不能上传的
275891381
2楼-- · 2019-07-21 07:01
至少上传 FreeRTOSConfig.h   malloc.h这两个文件吧
陈皮皮
3楼-- · 2019-07-21 09:01
 精彩回答 2  元偷偷看……
陈皮皮
4楼-- · 2019-07-21 09:05
275891381 发表于 2018-9-12 18:07
至少上传 FreeRTOSConfig.h   malloc.h这两个文件吧
相关配置文件.rar (9.07 KB, 下载次数: 25) 2018-9-12 18:23 上传 点击文件名下载附件
FreeRTOSConfig.h   malloc.h
陈皮皮
5楼-- · 2019-07-21 14:33
275891381 发表于 2018-9-12 18:33
#define configTOTAL_HEAP_SIZE                                        ((size_t)(20*1024))     //系 ...

谢谢你的解答,正如你所说这就是出现这种状况的原因,之前一直用的Ucos,FreeRTOS是刚接触。至于内存管理用的就是上传的heap_4,里面就是内存分配管理的方法。还有就是确实不是什么很机密的代码,但是也是项目中的一部分,也面临着年底上线,没离职也不好上传在论坛上,请见谅。谢谢你的解答
mhsdsa
6楼-- · 2019-07-21 16:00
 精彩回答 2  元偷偷看……

一周热门 更多>