UCOSII学习归纳一

    在熟悉UCOSIII应用的同时,对之前应用的UCOSII做一些归纳,供以后回顾。

1.UCOSII的任务如何分类?

  1)用户创建的任务:用户最多可以创建63个任务,优先级0~62,0是最高优先级任务。

  2)系统创建的任务:空闲任务和统计任务(计算在运行所有应用程序时,CPU的使用效率)。在使用UCOSII前,必须调用OSInit(),OSInit()可以建立了空闲任务和统计任务。

  注:所有任务的优先级必须不相同。

2.UCOSII创建任务的要素?

  1)编写自己的任务函数。

  2)分配一个适合的任务堆栈。

  3)分配一个合适的任务优先级。

  4)可能还需要给任务传递一些参数。

3.任务函数的特点?

  1)没有返回值。

  2)都包含了一个死循环。

  3)都有一个void型的指针形参。

  4)死循环内必须有调度点。

  5)高优先级的任务中必须有等待延迟,让低优先级的任务有被调度的机会。

4.用OSStart()开启了UCOSII后,每个任务建立的时候,UCOSII会判断新建立的任务是否具有最高优先级,如果其优先级最高,则立即运行该任务。

5.如何检测一个任务堆栈的大小?

  考虑使用OSTaskStkChk()堆栈检查函数。此函数的运行时间与任务所指定的堆栈大小密切相关。当想确认一个任务需要多少堆栈时,此函数是很有用的。如果系统对稳定性要求高,实际分配的堆栈应大于检查的最大值得1倍。堆栈检查要求任务建立时给堆栈清零,也要注意,其实进行堆栈清零也可能是一项很费时的工作。执行OSTaskStkChk()堆栈检查函数,也就是从栈低向栈顶搜索非0的元素,记录0元素的个数。

6.何为消息邮箱?

  消息邮箱仅能提供一个指针型变量的传递,至于此指针型变量到底指向什么样的数据结构,是由使用此邮箱的用户程序共同决定的。

7.如何确定每个任务的运行次数和运行时间?

  系统的钩子函数可以解决此问题。钩子函数其实在应用中必不可少。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值