uC/OS_Ⅱ笔记
来源:互联网 发布:我要投诉淘宝小二 编辑:程序博客网 时间:2024/05/16 17:46
任务:
任务程序代码(保存任务属性),任务堆栈(保存任务工作环境),任务控制块(代码的执行部分)。
用户任务,系统任务
任务的五种状态:睡眠状态,就绪状态,运行状态,等待状态,中断服务状态
超循环结构:无限循环结构,并且在这个循环中可以响应中断
us_os_Ⅱ任务代码结构:带有临界段的无限次循环
us_os_Ⅱ系统任务:空闲任务(OSTaskIdle()),统计任务(OSTaskStat())(使用需初始化,置1)
us_os_Ⅱ采用按优先级抢占式规则:最多创建64个任务,最低优先级是在OS_CFG.H定义了常数OS_LOWEST_PRIO,最低优先级自动赋给空闲任务。若有统计任务,系统自动将OS_LOWEST_PRIO - 1 赋给统计任务。
任务堆栈:在存储器中按数据后进先出的原则组织的连续存储空间。为了满足任务切换和响应中断,每个任务都应配有自己的堆栈。
任务堆栈的创建
OS_CPU.H中定义数据类型OS_STK
typedef unsigned int OS_STK;
栈区需定义OS_STK数组
#define TASK_STK_SIZE 512
OS_STK TaskStk[TASK_STK_SIZE];
例:
INT8U OSTaskCreate(
void (* task)(void * pd), //指向任务指针
void * pdata, //传递给任务参数
OS_STK * ptos, //任务堆栈栈顶指针
INT8U prio //指定任务优先级别的参数
);
增长方向:向下的堆栈vs向上的堆栈(OS_STK_GROWTH选择开关)
任务堆栈的初始化
CPU获得使用权,就是将堆栈的内容复制到CPU各寄存器,从而可使任务顺利地启动并运行。
任务堆栈初始化就是把任务初始数据存放到任务堆栈的工作。OSTaskStkInit()
- uC/OS_Ⅱ笔记
- uC/OS_Ⅱ笔记
- uC/OSⅡ源码学习笔记
- UC/OS-II笔记
- uc/os2学习笔记
- uC/FS调试笔记
- UC脚本笔记
- uc/os-II笔记(一)
- uC/OS学习笔记1
- uC/OS学习笔记2
- uC/OS-II开发笔记
- uC/OS II 学习笔记
- uc/os-ii操作系统笔记
- uc/os学习笔记1【uc/os的任务管理】
- UC
- UC
- [转帖] uC/GUI3.32应用笔记
- uC/OS-II学习笔记 消息队列
- mongoDB数据库的部署与安装
- 利用O(1)空间复杂度对字符串排序(人人)
- 机器学习基石(林軒田)笔记之十二
- 2016华山杯 writeup
- HDU 5877 2016 ACM/ICPC Asia Regional Dalian Online 1010 Weak Pair
- uC/OS_Ⅱ笔记
- 常用加密算法比较
- 如何访问google
- option内容移动
- 快速幂
- tq210-uboot spl 和 stage 2 启动
- 【icpc网络赛大连赛区】Sparse Graph
- GridLayout
- leetcode 241. Different Ways to Add Parentheses