硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6413|回复: 5
收起左侧

[FreeRTOS] FreeRTOS中 configTOTAL_HEAP_SIZE 这个参数是必须配置的吗?

[复制链接]

65

主题

432

回帖

632

积分

金牌会员

积分
632
发表于 2018-9-25 22:31:33 | 显示全部楼层 |阅读模式
在FreeRTOS中,用xTaskCreate()函数创建任务,相对于xTaskCreateStatic()函数,这个应该是动态创建任务的方式,那么问题如下:
1 - 如果用 xTaskCreateStatic() 函数创建任务,是不是就不需要配置 configTOTAL_HEAP_SIZE 这个常数了?也就是说,这个创建任务的方式
     是不是和uC/OS-II中创建任务的方式是一样的,在创建任务的时候,直接在内存中分配了静态的任务栈空间,而不使用动态内存管理的方式了?
2 - 在uC/OS-II中,没有类似FreeRTOS中 configTOTAL_HEAP_SIZE 这样的大的堆需要配置,而是在任务创建的时候,直接申请了静态的任务栈
     所以就不存在FreeRTOS那样动态的内存管理,也就没有了malloc()和free()这样的内存管理函数,也就不存在由于频繁的内存管理产生的内存碎片
    那么是不是说运行同样长的时间后,uC/OS-II的内存比FreeRTOS下的内存更干净整洁?这个印象来源于手机和电脑,运行时间长了之后,就会变卡
    变慢,甚至花屏,然后重启手机或者电脑之后,新开机的系统运行的就嗖嗖的,因为这时候没有大量破碎的内存碎片。。。。
3 - 基于以上印象,相当觉得FreeRTOS的动态内存管理方式并不适合单片机这样内存拮据的场合使用,因为会产生大量碎片而产生内存浪费和不可预知的内存问题,
    相对来讲,uC/OS-II的内存管理方式简单、原始,用多少就先申请多少,账面上明明白白
当然了,这两种系统的应用我都有产品一直在运行,也没发现什么问题,但心里总有这样的印象,欢迎大家批评指正
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2018-9-26 09:31:43 | 显示全部楼层
1、是的。
2、是的,对于安全关键的项目,推荐这种静态分配方式。
3、是的,基于此,FreeRTOS推出的静态的创建方式。

回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
 楼主| 发表于 2018-9-26 10:52:16 | 显示全部楼层
那就算屁了,以后我都用静态创建的方式吧,那么静态的话这个 configTOTAL_HEAP_SIZE 是不是配置成0就可以了,还是需要修改什么宏?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2018-9-26 10:54:12 | 显示全部楼层
taobaofarmer 发表于 2018-9-26 10:52
那就算屁了,以后我都用静态创建的方式吧,那么静态的话这个 configTOTAL_HEAP_SIZE 是不是配置成0就可以了 ...

动态也没关系的,只要你的程序里面不是动态的创建和删除任务和任务通信组件即可,我一般上电后很少动态的,不断的创建和删除。
回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
 楼主| 发表于 2018-9-26 23:11:46 | 显示全部楼层
因为一直是做工业产品的,花里胡哨的功能不是最重要的,最重要的是产品要连续运行N年之后还在稳定如初的运行,所以对RTOS的稳定性要求还是很高的,虽然现在我都有基于uC/OS-II和FreeRTOS的产品在运行,但是心里的感觉是不同的,FreeRTOS呢,是RTOS中的新贵,有很多新技术在里面,比如动态内存管理,但偏偏这个动态内存管理,让我觉得不太踏实,uC/OS-II呢,是RTOS界的老前辈,在各种新型RTOS的狂轰滥炸下已经尽显疲态了,但是呢,廉颇已老尚能饭,跑起来还是老当益壮恪尽职守,而且经典的代码,全静态内存管理方式,经过国际认证,产品不再升级,这点很重要,目前留给我们的uC/OS-II,是简单、经典、稳定集于一身的老牌儿RTOS,相i对于动态内存管理方式,静态内存管理方式是更保守、消耗资源的方法,但是有一个优点,就是稳定,基于以上的分析,我认为uC/OS-II应该是更适合我的,是不是我真的老了,跟不上新技术的发展了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2018-9-27 00:18:56 | 显示全部楼层
taobaofarmer 发表于 2018-9-26 23:11
因为一直是做工业产品的,花里胡哨的功能不是最重要的,最重要的是产品要连续运行N年之后还在稳定如初的运 ...

没问题,够用就行。很多新东西我也只是了解一下,实际中也不怎么用。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 16:01 , Processed in 0.264658 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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