μC/OS-II任务栈浅析

这篇博客探讨了μC/OS-II操作系统中任务栈的实现和管理。任务栈用于存储函数参数、局部变量和任务上下文切换时的状态。通过OSTaskCreate函数创建任务时指定栈顶位置,栈由OS_STK类型定义,通常使用数组实现。文章还讨论了栈的增长方向、处理器的字节序以及如何为任务声明栈空间。最后,给出了一个在LPC2131上的任务栈应用示例。
摘要由CSDN通过智能技术生成

和Linux采用进程单元一样,μC/OS-II采用的是任务的方式,而当任务运行被 加载到内存单元时,将占用的内存区域分为代码段、初始化数据段、未初始化数据段、堆、栈五个区域。而其中,栈段是用来存放函数的参数值、局部变量的值和任 务进行上下文切换时存储当前的任务。

栈在实现上是一段连续的内存空间,μC/OS-II采用数组来实现,当一个任务被创建时,需要为该任务创建相应的栈段,并指定该任务的栈顶位置

  1. INT8U  OSTaskCreate (void (*task)(void *p_arg), void *p_arg, OS_STK *ptos, INT8U prio)  


第三个参数便是其指定的栈顶位置。而OS_STK便是任务栈空间的数据类型,它的定义如下:

  1. typedef unsigned short OS_STK;  

由此可见,其类型实际上就是短整型。

如何为任务声明一段空间作为任务的栈呢?

  1. #define TaskStkLengh    64          //定义用户任务堆栈长度  
  2.    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值