uc/OS II——多任务设计
来源:互联网 发布:mac显示终端什么意思 编辑:程序博客网 时间:2024/04/27 16:53
uc/OS II——多任务设计
(1)设计 开始任务
【1】/声明 开始任务 任务块
static OS_STK App_TaskStartStk[APP_TASK_START_STK_SIZE];
【2】在app_cfg.h中
//设置任务的优先级#define APP_TASK_START_PRIO 2//开始任务为优先级2//设置任务块大小#define APP_TASK_START_STK_SIZE 128
【3】编写 任务函数
//开始任务函数static void App_TaskStart(void* p_arg){ (void) p_arg;//防止编译警告 //初始化ucos时钟节拍 OS_CPU_SysTickInit();//自己编写的函数//使能ucos 的统计任务#if (OS_TASK_STAT_EN > 0) //----统计任务初始化函数 OSStatInit(); #endif //建立其他的任务/*创建其他任务*/ while (1) { //1秒一次循环 OSTimeDlyHMSM(0, 0,1, 0); }}【4】在main函数中创建开始任务OSTaskCreate(App_TaskStart, (void *)0, &App_TaskStartStk[APP_TASK_START_STK_SIZE - 1], APP_TASK_START_PRIO);
(2)其他任务函数编写
【1】设置优先级和任务块大小
//设置任务的优先级#define APP_TASK_LED1_PRIO 8//开始任务为优先级2//设置任务块大小#define APP_TASK_LED1_STK_SIZE 128
【2】编写任务函数
void Task_Led1(void* p_arg){ (void) p_arg; while (1) { Led_On(LED1); OSTimeDlyHMSM(0, 0, 0, 500); Led_Off(LED1); OSTimeDlyHMSM(0, 0, 0, 500); }}
【3】在开始任务中 创建
OSTaskCreateExt(Task_Led1,//指向任务代码的指针(void *)0,//任务开始执行时,传递给任务的参数的指针(OS_STK *)&Task_Led1Stk[APP_TASK_LED1_STK_SIZE-1],//分配给任务的堆栈的栈顶指针 从顶向下递减APP_TASK_LED1_PRIO,//分配给任务的优先级APP_TASK_LED1_PRIO,//预备给以后版本的特殊标识符,在现行版本同任务优先级(OS_STK *)&Task_Led1Stk[0],//指向任务堆栈栈底的指针,用于堆栈的检验APP_TASK_LED1_STK_SIZE,//指定堆栈的容量,用于堆栈的检验(void *)0,//指向用户附加的数据域的指针,用来扩展任务的任务控制块OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);//选项,指定是否允许堆栈检验,是否将堆栈清0,任务是否要进行浮点运算等等。
- uc/OS II——多任务设计
- UC/OS II多任务切换例程
- uC/OS-II的任务
- uC/OS-II 中的任务
- uc/os-ii统计任务
- uc/os-ii删除任务
- uc/os-ii任务延时
- UC/OS II任务管理
- uc/os-ii任务与任务管理
- uC/OS-II系统学习笔记(6)—— 任务管理
- uC/OS-II就绪任务的管理
- uC/OS-II的任务切换总结
- UC/OS-II的任务切换
- uC/OS-II就绪任务的管理
- uC/OS-II的任务切换总结
- uC/OS-II 学习笔记:任务堆栈
- uC/OS II任务就绪表
- uC/OS-II中的任务管理
- EJB开发步骤
- 杂
- v8学习---添加带参数js全局函数
- 【道森试听】flashback——Dave偶像
- mysql 升序 降序
- uc/OS II——多任务设计
- vmWare虚拟机与主机间如何共享文件
- sql server 2008默认不允许远程连接
- php 常用函数
- 数组名和指针的区别
- JAVA语言用正则表达式统计代码量
- Eclipse汉化后如何还原为EN英文(实用技巧)
- mysql 分组
- javascript 正则表达式应用 【test和search】