μC/OS基本概念学习和基本的使用

  μC/OS II(Micro-Controller Operating System Two)是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,适合很多商业操作系统性能相当的实时操作系统(RTOS)。

组成部分

  μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。
  核心部分(OSCore.c)  是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。
  任务处理部分(OSTask.c)  任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μC/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。
  时钟部分(OSTime.c)  μC/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。
  任务同步和通信部分  为事件处理部分,包括信号量、邮箱、消息队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。
  与CPU的接口部分  是指μC/OS-II针对所使用的CPU的移植部分。由于μC/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。

对于嵌入式系统来说,任务优先级的安排是比较重要的,总结一下:

  对于ucosII来说,最大优先级为63(共64个优先级),当然要根据项目的实际需要来定义最低的优先级()OS_LOWEST_PRIO ,例如实际项目使用20个优先级,则OS_LOWEST_PRIO需要这样设定:
  #define OS_LOWEST_PRIO 19 实际上是用0-19
  值得注意的是,我们实际可使用的优先级并不是整整64个,ucosII将OS_LOWEST_PRIO赋予给了“统计任务“将OS_LOWEST_PRIO-1留给了“空闲任务”,更需要注意的是系统将0、1、2、3号优先级以及OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-3号优先级留给了自己,以备系统的后续升级使用。
  
  
μC/OS基本概念学习和基本的使用:http://baijiahao.baidu.com/s?id=1601154076983859355&wfr=spider&for=pc
信号量、邮箱、队列与事件:https://blog.csdn.net/MakeWorks/article/details/75142376

发布了67 篇原创文章 · 获赞 26 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/essity/article/details/88797320