freertos 内部机制——任务的创建

创建任务函数的四个参数

        1、任务函数地址

        2、用户定义任务名

        3、栈的大小

        4、任务函数参数

        5、任务优先级

        6、TCB结构体(里面定义有创建任务的组成成分)

TCB结构体

与创建任务函数相比,TCB结构体中少了任务函数地址和函数参数。那么他们不在内存里会在哪里呢。在上节知道函数被切换时会保留现场(即保存cpu的r0-r15到栈中),现在,在任务创建后,任务函数处于暂停态,任务函数地址和函数参数分别存储在pc和r0寄存器中,使函数恢复。

那栈空间是如何分配大小的和从哪分配的

        这里直接给出结果。

        栈空间是定义了一个17*1024的数组,用来分配栈

        而根据实验栈空间大小是估计分配的(通过观察任务中定义的变量和任务执行深度(即子函数))

                        定义变量会占据栈空间

                        在栈中会存贮LR寄存器的值用来返回也会占用空间,LR为函数结束后下一句代码的地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值