uC/OS_Ⅱ笔记
2016-09-10 18:42
260 查看
任务:
任务程序代码(保存任务属性),任务堆栈(保存任务工作环境),任务控制块(代码的执行部分)。
用户任务,系统任务
任务的五种状态:睡眠状态,就绪状态,运行状态,等待状态,中断服务状态
超循环结构:无限循环结构,并且在这个循环中可以响应中断
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()
任务程序代码(保存任务属性),任务堆栈(保存任务工作环境),任务控制块(代码的执行部分)。
用户任务,系统任务
任务的五种状态:睡眠状态,就绪状态,运行状态,等待状态,中断服务状态
超循环结构:无限循环结构,并且在这个循环中可以响应中断
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()
相关文章推荐
- Android单片机与蓝牙模块通信实例代码
- 51单片机的中断整理
- 时钟+温度+遥控设置,综合时钟例子
- 温度传感器+I2C+串口+PC上位机(pyserial)例子
- 51单片机中data,idata,xdata,pdata的区别
- 什么叫51单片机最小系统
- 用串口连接GSM手机发送和接收短消息,在应用程序中如何编程实现?
- MCU之心路分享
- 按键led
- 单片机学会释放CPU
- 单片机无线串行接口电路设计
- 单片机无线串行接口电路设计
- 单片机系统中的红外通信接口
- 单片机系统中的红外通信接口
- 单片机实现接收从电脑发送过来的字符串的方法
- 单片机IO口模拟串口程序(发送+接收
- DSP、ARM和单片机的区别
- 转:接地:数字地、模拟地、信号地、交流地、直流地、屏蔽地、浮地
- 单片机存储器之flash,eeprom,sram,dram简介
- 程序状态字(PSW)的动画说明,