uC/OS-II源码分析(一)

简介:

下载地址:http://www.micrium.com/

它的特点:

1)开源,

2)可移植性,绝大部分代码用C写,硬件相关部分用汇编写,

3可固化,

4)可剪裁,这通过条件编译实现,使用#define语句定义所需要的功能。

5)可剥夺性(总是运行就绪条件下优先级最高的任务),

6)多任务(可以管理64个任务,其中保留8个给uC/OS-II,因此用户最多可有56个任务,每个任务优先级不同,也就意味着不支持时间片轮转调度法,因为这种方法适合于优先级平等的任务)。

7)可确定性。函数调度和服务执行时间具有确定性,除了OSTimeTick()和某些事件标志服务,系统服务执行时间不依赖用户应用程序任务数目的多少。

8)任务栈。允许每个任务自己单独的栈空间不同,可以使用栈空间检验函数确定所需要的栈空间大小。

9)系统服务。提供信号量,互斥型信号量,事件标志,消息邮箱,消息队列,块大小固定的内存申请与释放,时间管理函数等服务。

10)中断管理。中断嵌套层数最多可达到255层。

11)稳定性和可靠性。

 

OSInit()函数用来初始化内核,必须首先调用。建立两个任务:空闲任务(其他任务都未就绪时运行),统计任务(计算CPU的利用率).

 

*****************************************************************

* Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to creating any uC/OS-II object and, prior to calling OSStart().

*****************************************************************

 

OSInit

 

********************************************************************************************

* Description: This function is called by OSInit() to initialize miscellaneous variables.

********************************************************************************************

 

 OS_InitMisc

 

 

空闲任务和统计任务建立的代码基本一样,只是统计任务的优先级比空闲任务大1,

********************************************************************************************

* Description: This function creates the Idle Task.

********************************************************************************************

 

CodeOS_InitTaskIdle

 

 

其他初始化代码放到后面具体的每一个子模块中再分析。

 

作者:洞庭散人

出处:http://phinecos.cnblogs.com/    

本博客遵从 Creative Commons Attribution 3.0 License,若用于非商业目的,您可以自由转载,但请保留原作者信息和文章链接URL。
目录
相关文章
|
Web App开发 调度 消息中间件
|
Web App开发 调度
|
Web App开发 消息中间件 存储
|
Web App开发 调度 消息中间件
|
消息中间件 Web App开发 存储
|
3月前
|
安全 Linux 网络安全
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
|
3月前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
2月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
|
3月前
|
Linux 测试技术 数据安全/隐私保护
阿里云Linux os copilot 运维助手初体验
阿里云Linux os copilot 初体验
395 1
阿里云Linux os copilot 运维助手初体验