ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
12
返回列表 发新帖

[STM32F1] UCOSIII 任务管理

[复制链接]
楼主: dingbo95
 楼主 | 2018-6-14 10:23 | 显示全部楼层
UCOSIII任务堆栈
任务堆栈是任务的重要部分,堆栈是在RAM中按照“先进先出(FIFO)”的原则组织的一块连续的存储空间。为了满足任务切换和响应中断时保存CPU寄存器中的内容及任务调用其它函数时的需要,每个任务都应该有自己的堆栈。
 楼主 | 2018-6-14 10:24 | 显示全部楼层
本帖最后由 dingbo95 于 2018-6-14 10:38 编辑

任务堆栈创建#define START_STK_SIZE                 512        //堆栈大小
CPU_STK START_TASK_STK[START_STK_SIZE];        //定义一个数组来作为任务堆栈


 楼主 | 2018-6-14 10:38 | 显示全部楼层
任务堆栈的大小
CPU_STK为CPU_INT32U类型,也就是unsigned int类型,为4字节的,那么任务堆栈START_TASK_STK的大小就为:512 X 4=2048字节!
 楼主 | 2018-6-14 10:39 | 显示全部楼层
任务堆栈初始化
任务如何才能切换回上一个任务并且还能接着从上次被中断的地方开始运行?恢复现场即可,现场就是CPU的内部各个寄存器。因此在创建一个新任务时,必须把系统启动这个任务时所需的CPU各个寄存器初始值事先存放在任务堆栈中。这样当任务获得CPU使用权时,就把任务堆栈的内容复制到CPU的各个寄存器,从而可以任务顺利地启动并运行。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

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