积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式软件 >> Nucleus
  相关分类: LINUX | WINCE | UC/OS | Bootloader | 下载 | VXWORKS | 网络协议 | JAVA | 汇编 | 驱动设计 | Symbian | XP Embedded | Nucleus | 新产品 | 相关文章 | 综合技术 |
Nucleus Plus在嵌入式系统应用
 
作者:丁宜栋   来源:海军计算技术研究所    点击数:988   更新时间:2007-2-6
您可以添加到网摘 让更多人关注此文章:

    适合于航空/航天、军队、国防等重要应用的可靠的嵌入式操作系统Nucleus Plus.


     Nucleus Plus是美国源代码操作系统商ATI公司(现为Mentor Graphics ESD)推出的新一代嵌入式操作系统,属于抢先式实时多任务操作系统内核, 95%的代码使用ANSI C编写,非常便于移植于各种处理器家族。从实现的角度讲,不同于传统嵌入式开发,Nucleus Plus是以函数库的形式链接到目标应用程序中,形成可执行目标代码,下载到目标板上或烧到ROM/FLASH ROM 中去执行。Nucleus Plus内核在典型的CISC体系结构上占据大约20k空间,而在典型的RISC体系结构上占据空间为40k左右,其内核数据结构占据1.5k字节的空间。Nucleus Plus以其实时响应、抢先、多任务以及源代码开放特性获得在通讯、国防、工业控制、航空/航天、铁路、网络、POS、自动化控制、智能家电等领域的广泛应用。
Nucleus Plus内核技术

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

Nucleus Plus Kernel: Common Service Component(CS)

Initialization Component(IN)

Tread Control Component(TC)

Timer Component(TI)

Mailbox Component(MB)

Pipe Component(PI)

Semaphore Component(SM)

Event Flag Component(EV)

Partition Component(PM)

Queue Component(QM)

Dynamic Memory Component(DM)

I/O Component(I/O)

History Component(HI)

Error Component(ER)

License Component (LI)

Release Component(RL)

其中:

* 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 除了其功能强大的内核外,还提供了面向INTERNET、TCP/IP、WEB浏览器、图形以及文件系统的软件包,参阅图1。

图1: Nucleus Plus功能模块图

Nucleus Plus 开发

1, Nucleus Plus 定制

Nucleus Plus 也能根据目标板的需要进行裁剪和定制,生成适合目标系统的操作系统,尽量少占系统内存。OS定制完成后,将其链接到目标应用程序,成为目标应用程序的一部分。在典型的CISC体系结构的目标板上,它占用约20K 左右的空间,而在RISC体系结构的目标板上占用约40K左右的空间。一般地,Nucleus Plus 足以满足绝大多数的嵌入式应用。ATI公司提供了一个名为BUILD_LI.BAT或PLUS.BAT的批处理文件,用户可以删剪其中的模块,更改相关的选项或开关,执行该文件生成与目标相关的操作系统,也就是根据系统需要生成定制的操作系统。需要注意的是,该批处理文件的内容与开发工具有关。

2,开发方案

Nucleus Plus可以结合Paradigm、SDS以及ATI的多任务调试器组成功能强大的集成开发环境,配合相应的编译器(Borland c/c++ 编译器、Turbo c/c++ 编译器或者Microsoft c/c++编译器)和动态链接库以及各类底层驱动软件就可以满足嵌入式应用的开发。

3,开发流程

用Nucleus Plus 开发嵌入式应用程序,一般遵循如下步骤:

* 如果有必要,应对低级系统初始化文件.INT进行修改,使之符合目标板的需要。如中断向量、I/O地址、时钟频率等。

* 定义Application _Initialize()函数。该函数在启动系统之前先执行。注意的是要把NUCLEUS.H头文件包括在目标应用程序中,以便利用Nucleus Plus 的服务。

* 定义应用程序的任务。如果调用Nucleus Plus 的服务,要把NUCLEUS.H包含进去。

* 编译/汇编所有的应用程序软件,并且包含系统低级初始化文件.INT。

* 链接.INT和所有的应用程序目标文件、Nucleus Plus库文件以及相关的开发工具库。

* 把生成的最终目标代码下载或烧到目标板上执行。

4, Nucleus Plus 初始化

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

Int_Initialize()

Inc_Initialize()

Application_Initialize()

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

* 初始化中断向量表

* 设置系统堆栈寄存器

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

* 计算系统第一个可用内存

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

* 初始化Nucleus Plus 组件

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

* 任务调度

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

表1:Nucleus Plus 初始化表

5, Nucleus MNT

Nucleus MNT是为软件开发者设计的,在WIN95/NT下构筑Nucleus Plus嵌入式应用的原型(Prototyping)环境。它通过两个库来实现,即针对目标环境的库和针对Win95/NT开发环境的库。开发时,应用程序代码可以不变,仅仅替换掉MNT库,使用交叉开发工具包重构目标环境下的可执行目标代码,请看图2。

PROTOTYPING TARGET

图2:Nucleus MNT

6, 开发注意事项

嵌入式开发在内存需求、任务管理等方面存在着特殊性,因此,开发中对以下方面要额外加以注意,

* 任务饥荒

任务优先级的分配要合理,否则会导致系统中的一些任务一直不断地在运行而另一些任务永远得不到运行,引起饥荒。

* 死锁

系统资源的分配要合理,否则会引起两个或多个任务为竞争某一系统资源而处于无限挂起现象。

* 内存

* 内存泄露

内存分配过程中要尽量避免碎片并且要注意及时回收。

* 内存节约

* 默认情况下,Nucleus Plus, 在高级初始化函数Inc_Initialize()中。调用其它函数初始化它所提供的所有特征的数据结构中,有些特征用户目标应用程序可能用不到,为此,要去掉不必要的函数调用。

* 改变Nucleus.H中NU_MAX_LISRS的大小,它定义的是目标处理器的最大中断向量数。

* 改变TC_DEFS.H中TC_PRIORITIES的大小。它定义了任务的优先级数。Nucleus Plus 能支持256个优先级。

* HISR栈共享。

* TCD.C中禁止查询表TCD_LOWEST_SET_BIT的RAM拷贝。

* 使用一个更小的INT选项。

    结束语

由于Nucleus Plus 的模块化、可靠、重用、开放、易用以及安全等特性使得它成为嵌入式应用开发的理想平台,尤其是关系到国计民生的领域,如航空/航天、军队、国防等方面。

相关文章
· 嵌入式实时操作系统TRON及其应用综述[733]
· 多任务操作系统Nucleus简介[1116]
· Nucleus PLUS嵌入式操作系统的简单介绍[930]
· Nucleus PLUS嵌入式操作系统的简单介绍[1042]
· 嵌入式操作系统Nucleus触摸屏驱动的开发[968]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
严冬期如何发展半导体业 扩
2008年中国集成电路市场回顾与展望
分析师:亚洲芯片厂商库存远超预期
2008年基础电子业十大事件点评
Aptina并购智多微手机软件平台设
凌力尔特公司推出用于多核处理器的&n
安森美半导体任命麦满权为韩国及南亚区
Broadcom:半导体产业依然机会
飞思卡尔推i.MX51芯 
日立芯片守卫新年倒数计时晚会
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
低价专业PCB打样 双面板20...
深圳市天漠科技超低价供应atm...
深圳市天漠科技超低价供应ARM...
[推荐]2.5米精度,高灵敏度...
830实验箱+电脑没有并口...
[原创]平望科技助力自服终端国...
低价专业PCB打样 双面板20...
[原创]低价专业PCB打样 双...
Bootloader for ...
【有奖调查】08-09嵌入式开...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网