FreeRTOS学习(二) ——任务的栈空间

FreeRTOS 中的xtaskcreate()函数用于创建任务,其第三个参数usStackDepth定义了任务栈的大小。该值指示内核分配多少个字的空间,而非字节数。例如,对于32位系统,设置为100将分配400字节的栈空间。configMINIMAL_STACK_SIZE常量则用于设定空闲任务的栈大小。确定任务所需的栈空间通常需要实验和验证,以确保既不浪费也不不足。

任务栈空间

xtaskcreate() 的第三个参数 usStackDepth ,当任务创建时,内核会为每个

任务分配属于任务自己的唯一状态,usStackDepth值告诉内核为它分配多大的栈空间

这个值指定的栈空间可以保存多少个字,而不是多少个字节。比如,如果是32位宽的栈空间,传入的值是100,那么将会分配400个字节的栈空间。

configMINIMAL_STACK_SIZE 来决定空闲任务用的栈空间大小。

在FreeRTOS 为微控制器架构提供的demo应用程序中,赋予此常量的值,是对所有任务的最小建议值。

没有任何简单的方法可以决定一个任务到底需要多大的栈空间,计算出来虽然是可能的,但大多数用户会先简单地赋予一个自认为合理的值,然后利用FreeRTOS 提供的特性来确证分配的空间既不欠缺,也不浪费。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值