手机开发实战177——NUCLEUS介绍1

本文介绍了Nucleus Plus,一款由ATI公司推出的抢先式实时多任务操作系统内核,主要应用于MTK平台。文章详细阐述了Nucleus Plus的软件组件方法,包括任务控制、内存管理、定时器等多个组件,并列举了各组件的职责。此外,还提及了Nucleus Plus的三个层次初始化过程。
摘要由CSDN通过智能技术生成

NUCLEUS介绍

Nucleus Plus是美国源代码操作系统商ATI公司推出的新一代嵌入式操作系统,属于抢先式实时多任务操作系统内核, 95%的代码使用ANSI C编写,非常便于移植于各种处理器家族。MTK平台使用的就是Nucleus

内核技术

    ATI公司使用一种叫做软件组件的方法。所谓软件组件,就是具有明确目的或用途的由1个或数个C语言/汇编源文件的一段非独立执行应用程序,且每个组件都提供一个定义好的外部接口,必须通过外部接口来使用组件。访问组件内的全局数据结构是被禁止的。使用了组件方法,软件组件既易于更新也易于重用。Nucleus Plus软件组件通常由定义数据类型、常量以及外部接口的INCLUDE 头文件和一个或多个C语言/汇编源文件组成。Nucleus Plus 提供如下组件:任务控制管理、内存管理、定时器管理、中断、系统诊断、I/O驱动管理等共16个组件如下,

Nucleus Plus Kernel   

Common Service ComponentCS

                       Initialization ComponentIN

                       Tread Control ComponentTC

                       Timer ComponentTI

                       Mailbox ComponentMB

                       Pipe ComponentPI

                       Semaphore ComponentSM

                       Event Flag ComponentEV

                       Partition ComponentPM

                       Queue ComponentQM

                       Dynamic Memory ComponentDM

                       I/O ComponentI/O

                       History ComponentHI

                       Error ComponentER

                       License Component LI

                       Release ComponentRL

 其中:

* IN:负责初始化Nucleus Plus 系统

* TC:负责管理Nucleus Plus的抢占式实时任务和HISR的运行

* CS:负责提供具有链接列表其它的设备Nucleus Plus 组件

* TM:负责管理所有的Nucleus Plus 定时器设备。Nucleus Plus 的基本定时单元为一个Tick,它相当于一次硬件定时器中断

* MB:负责管理所有的Nucleus Plus 信箱设备

* QM:负责管理所有的Nucleus Plus 队列设备

* PI :负责管理所有的Nucleus Plus 管道设备

* SM:负责管理所有的Nucleus Plus 信号量设备

* EV:负责管理所有的Nucleus Plus 事件组设备

* PM:负责管理所有的Nucleus Plus 分区内存

* DM:负责管理所有的Nucleus Plus 动态内存

* I/O:负责管理所有的Nucleus Plus 输入/输出

* HI:负责Nucleus Plus的历史设备管理

* ER:负责管理所有的Nucleus Plus 系统错误

* LI:负责Nucleus Plus的许可证管理

* RL:负责Nucleus Plus 的版本管理

Nucleus Plus 其它功能模块

Nucleus Plus 分三个层次的初始化,即:系统低级初始化Int-Initialize()、系统高级初始化Inc-Initialize()和应用程序初始化Application_Initialize(),初始化之后便进入Nucleus Plus 的任务调度循环。各个初始化函数任务见表1

Int_Initialize()

Inc_Initialize()

Application_Initialize()

设置必要的处理器/系统控制寄存器

初始化中断向量表

设置系统堆栈寄存器

计算定时器HISR堆栈和优先级

计算系统第一个可用内存

将控制交给系统高级初始化例程

初始化Nucleus Plus 组件

将控制交给应用程序初始化例程

任务调度

执行用户定义的初始化,如创建内存池,创建任务、创建信号量、创建队列等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值