共3条
1/1 1 跳转至页
Nucleus Plus在嵌入式系统应用
Nucleus Plus是美国源代码操作系统商ATI公司推出的新一代嵌入式操作系统
,属于
抢先式实时多任务操作系统内核, 95%的代码使用ANSI C编写,非常便于移植于各
种处
理器家族。从实现的角度讲,不同于传统嵌入式开发,Nucleus Plus是以函数库的
形式
链接到目标应用程序中,形成可执行目标代码,下载到目标板上或烧到
ROM/FLASH ROM
中去执行。Nucleus Plus内核在典型的CISC体系结构上占据大约20k空间,而在典
型的R
ISC体系结构上占据空间为40k左右,其内核数据结构占据1.5k字节的空间。
Nucleus Pl
us以其实时响应、抢先、多任务以及源代码开放特性获得在通讯、国防、工业控制
、航
空/航天、铁路、网络、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)
Nucleus Plus 除了其功能强大的内核外,还提供了面向INTERNET、TCP/IP、
WEB浏
览器、图形以及文件系统的软件包,参阅图1。
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++ 编译器或者
Micr
osoft 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。
表1:Nucleus Plus 初始化表
Int_Initialize() Inc_Initialize() Application_Initialize()
*设置必要的处理器/系统控制寄存器
*初始化中断向量表
*设置系统堆栈寄存器
*计算定时器HISR堆栈和优先级
*计算系统第国个可用内存
*将控制交给系统高级初始化例程 *初始化Nucleus Plus组件
*将控制交给应用程序初始化例程
任务调度
*执行用户定义的初始化,如创建内存池,创建任务、创建信号量、创建队列等
5.Nucleus MNT
Nucleus MNT是为软件开发者设计的,在WIN95/NT下构筑Nucleus Plus嵌入式
应用的
原型(Prototyping)环境。它通过两个库来实现,即针对目标环境的库和针对
Win95/N
T开发环境的库。开发时,应用程序代码可以不变,仅仅替换掉MNT库,使用交叉开
发工
具包重构目标环境下的可执行目标代码,请看图2。
6.开发注意事项
嵌入式开发在内存需求、任务管理等方面存在着特殊性,因此,开发中对以下
方面
要额外加以注意。
* 任务饥荒
任务优先级的分配要合理,否则会导致系统中的一些任务一直不断地在运行而
另一
些任务永远得不到运行,引起饥荒。
* 死锁
系统资源的分配要合理,否则会引起两个或多个任务为竞争某一系统资源而处
于无
限挂起现象。
* 内存
* 内存泄露
内存分配过程中要尽量避免碎片并且要注意及时回收。
* 内存节约
* 默认情况下,Nucleus Plus, 在高级初始化函数Inc_Initialize()中。
调用其
它函数初始化它所提供的所有特征的数据结构中,有些特征用户目标应用程序可能
用不
到,为此,要去掉不必要的函数调用。
* 改变Nucleus.H中NU_MAX_LISRS的大小,它定义的是目标处理器的最大中断
向量
数。
* 改变TC_DEFS.H中TC_PRIORITIES的大小。它定义了任务的优先级数。
Nucleus P
lus 能支持256个优先级。
* HISR栈共享。
* TCD.C中禁止查询表TCD_LOWEST_SET_BIT的RAM拷贝。
* 使用一个更小的INT选项。
结束语
由于Nucleus Plus 的模块化、可靠、重用、开放、易用以及安全等特性使得
它成为
嵌入式应用开发的理想平台,尤其是关系到国计民生的领域,如航空/航天、军队
、国防
等方面。
--
※ 来源:·武汉白云黄鹤站 bbs.whnet.edu.cn·[FROM: 202.114.10.253]
关键词: Nucleus 嵌入式 系统 应用 开发 目标 应
Nucleus是美国著名厂商ATI公司的RTOS产品。它提供实时内核(Nucleus PLUS),
网络模块(Nucleus NET、Nucleus EPILOGUE和Nucleus POSE),开发工具模块(
NucleusMNT/UDB/EDE/DLL)以及Web(Nucleus Java/webserve)产品等。
Nucleus最大的特点是全部提供源代码,免去用户购买License和付Royalties。用
户只需通过DLL动态连接库便可进行任务级调试,无需编写BSP。因而易学易用,加
速产品上市。
Nucleus支持的CPU:
MCU:68HC11/16,V25,Siemens 166/167,783xx
CISC:x86(Intel/AMD),68K/683xx(Motorola)
RISC:ARM6/7桾humb Family,Strong ARM,i960xx,ColdFire,PowerPC,
SH1/2/3,H8/300H,R3000/4000
DSP:TMS320C3x/40,C2x/C5x,Motorola 56000
Nucleus的应用领域包括:
网络通讯,路由器,桥接器,Hubs,数据通讯,Set Top Box,数字像机,ISDN,
Modem,绘图仪,GSM,蜂窝电话,PDA,打印机,GPS,汽车,医疗仪器,RAID,配
适卡,工业控制,扫描仪,多媒体,无线产品,LAN,WAN,卫星,ATM,视频,声
学仪器,航天航空,军用。
Nucleus在国外的部分主要用户名单:
AT&T/Lucent,Compa Computer, Cannon Corp, DOD, Ford Motor, GE, Fujitsu,
Harris, Hewlett Packard, IBM, IGT, Kenwood, LG, M.I.T. NASA, Motorola,
NEC, MSA, Philips Semiconductor, Rockwell, Samsung, Sony, TI, Toyota,
Zitel.
Nucleus 在中国
Nucleus由旋极科技公司独家代理,推广中国市场,主要技术支持及培训在北京和
上海。目前Nucleus国内的用户主要分布在航天部,邮电部,总参,航空部,电力
部门以及各通讯公司,大专院校等
共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |