UCOS学习

1.UCOS中的每个任务是由三个部分组成:任务程序代码,任务堆栈和任务控制块.

2.任务控制块:

任务控制块用于记录任务的各个属性;

3

3.1:睡眠状态:任务没有任务控制卡或者任务控制块被剥夺;

3.2:就绪状态:任务配备了任务控制块,同时在就绪表中进行了就绪登记;

3.3运行状态:获得了CPU的使用权;

3.4等待状态:正在运行的任务,让出CPU,使自己处于等待;

3.5中断服务状体;

4 UCOS的系统任务为:空闲任务和统计任务;空闲任务是必须的而统计任务可用通过程序设置;

4.1统计任务用于统计CPU的利用率;如果要使用统计任务则必须在OS_CFG.H中配置OS_TASK_STAT_EN为1,同时在OSStatInit()对其进行初始化;

5 OS_STK 任务堆栈数据类型;栈顶指针及数组的最后一个数组的地址; OS_STK_GROWTH配置为1 及栈的方向由高到地,在ARM中就是由高到底;

6 把任务初始数据保存到任务堆栈的工作就叫做任务堆栈的初始化;

7 任务控制块由两条链表组成,一条为空OSTCBFreeList,一条为任务控制块链表OSTCBList(已经分配了任务的);

8. OSRdyTbl[4]就绪任务状态表; OSRdyGrp每一位对应一个 OSRdyTbl;

9.OSSched()任务调度函数;

10.挂起任务:OSTaskSuspend; 恢复任务:OSTaskResume;

11.修改任务的优先级别:OSTaskChangePrio;

12.删除任务:OSTaskDel; 删除任务请求:OSTaskDelReq;

13.OSTaskQuery();访问任务的信息控制块;

14.OSInit();用于初始化一些全局变量,TCB链表;

15.OSIntEnter 进入中断前调用,OSIntExit 退出中断函数调用;

16OSIntCtxSw中断函数里的任务切换函数;

17.OS_ENTER_CRITICAAL() 进入临界代码区 ,OS_EXIT_CRITICAL退出临界代码区; 这两个宏有三种实现方式;

18.OSTimeTick() 时钟节拍处理函数; 使系统时间加1,同时各个任务的延时减一,使非挂起任务进入就绪状态;

19.钩子函数的目的是使设计员将自己的代码嵌入到系统调用程序中去;

20.OSTimeDly()任务的延时;OSTimeDlyResume() 取消任务的延时,将延时设置为0

21.OSTimeSet(),OSTimeGet();获取系统的时间;

22.任务间存在着直接制约和间接制约;

23,事件包括信号量,邮箱,消息队列;

24.信号量表示当前资源是否被其他任务占用着,只有没有其他任务占用,当前任务才可以使用;

25.消息邮箱:传递的是一个消息缓冲区的指针;

26.消息队列及发送多个指针;


28.ECB:时间控制块,其中包括:时间的类型;信号量计数器;消息或消息对列的指针;等待事件任务组;任务等待表;

29.事件控制块的初始化函数:OS_EventWaitListInit();

30.使一个任务进入等待状态:OS_EventTaskWait();

31.使一个等待的任务进入就绪状态:OS_EventTaskRdy();

32.使一个等待超时的任务进入就绪状态的函数:OS_EventTO();

33.OSSemCreate()创建信号量,OSSemPend()请求信号量,OSSemPost()发送信号量;OSSemDel()删除信号量;OSSemQuery()查询信号量的状态;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值