ucosiii文件结构及内核对象概念

Posted lzd626

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ucosiii文件结构及内核对象概念相关的知识,希望对你有一定的参考价值。

  ucosiii的定义:可升级,可固化的,基于优先级的实时内核。

  下面先来看看ucosiii的文件结构图:这个图从下至上就是从底层到上层的一个结构,总的来说就是三层:CPU的配置与移植,内核服务,功能裁剪及应用任务。当然这个图是盗的秉火对应手册里的。既然别人做了这么好的总结,我们就多看看。

 技术分享图片

 

  下面我们就先看看ucosiii内核的几个对象,一般内核的对象们都是用线性链表作为数据结构,来方便管理和提高管理效率。

任务

  由os_tcb控制,在ucosiii理论上可以创建无数个任务,等到后面再说这句话,从用户的角度看,任务可以分为以下5种状态。

 技术分享图片

 

  下面我们再看看从任务管理的角度的9种状态。

 技术分享图片

技术分享图片

 

 

软件定时器

  它跟硬件定时器一样,主要用于定时,只不过它理论上是可以创建无数个定时器,但精度不及硬件定时器,内核定义的对象是os_tmr

多值信号量

  管理资源:比如某宾馆的总房间数看作信号量,每住一个客人,信号量就减1,当信号量为0,就住不下客人了,每一个客人退房,信号量就加1

  标志事件的发生:就是标志某个事件是否发生了,然后把情况通知任务。

互斥信号量

  保护共享资源,避免资源正在被重写的时候被其他任务读取,再ucos中一般指的就是二值信号量(10),具体内容后面的随笔会具体分析。

消息队列

  是由多个消息串联起来的机制,任务会从它的出口端获取消息,他可比信号量携带更丰富的信息。

任务信号量

  其作用与多值信号量一样,只是它只能给一个特定的任务使用,也就是说它已经成为任务的一个属性,但又能接受其他任务发来的任务信号量

任务消息队列

  它与消息队列的区别,与多值信号量和任务信号量的区别一样。

事件标志组

  用于标志若干个事件是否发生的组合,比如键盘的组合键。

内存管理

  主要作用就是尽量减少内存在不断分配和释放的过程中造成的内存碎片;它的方法就是一次性开辟一大块连续内存空间,然后再平均分成小的内存块,需要使用时就申请一个内存块,用完了再释放回去,由此实现内存的循环利用。

  以上的只是对ucos作一个大概的认识,至少清楚了它的文件结构和几个重要的内核对象,接下来就会在实际操作中,深入体会这些概念。

以上是关于ucosiii文件结构及内核对象概念的主要内容,如果未能解决你的问题,请参考以下文章

UCOSIII事件标志组和同时等待多个内核对象

UCOSIII事件标志组和同时等待多个内核对象

Android 逆向Android 逆向基本概念 ( 软件运行时内存结构 | 文件与内存之间的联系 )

Linux内核分析学习总结

ucosiii内核源码解析---os_core.c

几种模型文件(CDMLDMPDMOOMBPM)