UcosII 笔记

ucosii的移植,需要修改三个文件:

os_cpu.h 定义与编译器无关的数据类型,放置处理器相关代码和几个函数原型。
os_cpu_a.asm 需要汇编完成对一些函数,主要就是任务切换函数;
os_cpu_c.c 定义一些用户HOOK函数。

所谓的任务,即是一个死循环函数。
任务优先级:ucosii不支持多个任务优先级相同,每个任务的优先级必须不一样。
任务堆栈 :存储器中的一片连续存储空间。
任务控制块OS_TCB: 用来记录任务堆栈指针,任务当前状态以及任务优先级等任务属性。每个任务控制块有3个重要参数,任务函数指针、任务堆栈指针和任务优先级。
任务就绪表: 一个位图,记录系统中所有处于就绪状态的任务。
任务调度:一是在任务就绪表中查找优先级最高的就绪任务,二是实现任务的切换。
任务的5种状态:睡眠状态、就绪状态、运行状态、等待状态和中断服务状态。

在UCOSII中,与任务相关的几个函数

1,建立任务函数 OSTaskCreate \OSTaskCreateExt(提供一些附件功能)
一般用前者 OSTaskCreate( void(*task)(void*pd),void*pdata,OS_STK*ptos,INTU prio );
task 指向任务代码的指针
pdata 任务开始执行时,传递给任务的参数的指针
ptos 分配给任务的堆栈的栈顶指针
prio 任务的优先级

堆栈必须声明为OS_STK类型

2,任务删除函数:把任务置于睡眠状态 INT8U OSTaskDel(INT8U prio);
特别提示:任务不能随便删除,必须确保被删除任务的资源被释放的前提下才能删除!
3,请求删除任务函数 INT8U OSTaskDelReq(INT8U prio);
4,改变任务优先级函数 INT8U OSTaskChangePrio(INT8U oldprio,INT8U newpri

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值