Nucleus PLUS简单介绍
近些年来,随着嵌入式系统飞速的发展,嵌入式实时操作系统广泛地应用在制造工业、过程控制、通讯、仪器仪表、汽车、船舶、航空航天、军事、装备、消费类产 品等方面。今天嵌入式系统带来的工业年产值超过了1万亿美元。当前嵌入式操作系统有数百种。比較流行的有Nucleus Plus。QNX。Lynx OS,Psos,VRTX,VXWorks。Windows CE等。
它们各有特色,用户能够依据自身的软硬件环境的要求,选择合适的操作系统。本文介绍了实时多任务嵌入式操作系统Nucleus
PLUS。
(一)Nucleus内核
Nucleus PLUS 是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSIC写成的。因此很便于移植并可以支持大多数类型的处理器。Nucleus PLUS 的RTOS内核可支持例如以下类型的CPU:x86,68xxx,68HCxx,NEC V25, ColdFire, 29K,i960, MIPS, SPARClite, TI DSP, ARM6/7, StrongARM, H8/300H, SH1/2/3, PowerPC,
V8xx, Tricore, Mcore, Panasonic MN10200, Tricore, Mcore等。能够说NUCLEUS+是支持CPU类型最丰富的实时多任务操作系统。
针对不同的CPU类型,Nucleus 还提供编译器、动态连接库、多任务调试器等对应的工具来配置用户的开发环境。值得提出的是ATI公司近期还发表了基于Microsoft Developers Studio的嵌入式集成开发环境-NUCLEUS EDE。
从而领先将嵌入式开发工具与Microsoft的强大开发环境结合起来。提供给project师们强大的开发手段。
(二)Nucleus PLUS的特点:
1、源码开放
Nucleus PLUS 凝视严格的C源级代码。用户能深入了解底层内核运作方式、进行 RTOS 的学习和研究、调试方便。依据需求裁剪内核、节省费用。用户全然能够控制内核而不必操心操作系统中可能的异常任务导致系统崩溃。
2、性价比高
先进的微内核 ( Micro-kernel ) 技术使得Nucleus PLUS在任务优先级安排、任务调度和切换等方面都有优势。另外,对C++语言的全面支持又使得Nucleus PLUS 的 Kernel 成为名副事实上的面向对象的实时操作系统内核。然而。其价格却比較合理。所以,easy被广大的研发单位接受。
3、功能模块丰富
Nucleus PLUS 除提供功能强大的内核操作系统外,还提供种类丰富的功能模块。比如用于通讯系统的局域和广域网络模块、支持图形应用的实时化Windows 模块、支持Internet网的WEB 产品模块、工控机实时 BIOS 模块、图形用户接口以及应用软件性能分析模块等。用户能够依据自己的应用来选择和裁剪。
(三)Nucleus PLUS系统架构:
从实现角度来看,Nucleus PLUS 是一组C函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中运行。
在典型的目标环境中。Nucleus PLUS 核心代码区一般不超过20K字节大小。
Nucleus Plus内核(Kerne1)的主要目的是管理实时多任务的竞争执行(共享CPU),为应用提供各种便利、高速响应外部事件。因此Nucleus Plus 提供实时、抢占式多任务管理、多种任务间通信和同步手段、动态和分区内存(Dynamic/Partition Memory)两种存储器管理机制。
Nucleus Plus还提供定时器(Timer)来处理周期性事件和任务的睡眠和挂起超时。Nucleus Plus的系统结构如图1所看到的。
从Nucleus的系统结构框图能够看出线程控制是整个内核的核心,通过邮箱、队列、管道来实现任务之间的通信,通过信号量、事件组和信号实现任务间的同步。
Nucleus PLUS系统採用软件组件的形式构成以添加系统的代码清晰性、可靠性和可重用性,使系统模块化、易于维护。Nucleus PLUS由多个软件组件构成。每一个组件通常由两个头文件和几个C、汇编语言源程序构成,提供清晰的外部接口,对组件的引用就是通过这些接口完毕的。除了少数一些特殊情况外。不同意从外部直接訪问组件内的全局变量。这样的组件架构使得Nucleus PLUS的每一个软件组件能够被轻松的替换和重用。
Nucleus PLUS 採用了软件组件的方法。每一个组件具有单一而明白的目的。因为採用了软件组件的方法,Nucleus PLUS 各个组件很易于替换和复用。Nucleus PLUS 的组件包含任务控制、内存管理、任务间通信、任务的同步与相互排斥、中断管理、定时器及I/O驱动等16个组件。
针对各种嵌入式应用,Nucleus PLUS 还提供对应的网络协议(如TCP/IP,SNMP等)。以满足用户对通讯系统的开发要求。另外,可重入的文件系统、可重入的C函数库以及图形化界面等也给开发人员提供了方便。
(四)Nucleus的应用领域和国内外用户
Nucleus主要应用领域在:网络、路由、桥接、Hubs、数据通讯、顶置盒、数字摄像机、ISDN、调制器、数字画图仪、GSM、蜂窝电话、PDA、打印机、GPS、无线通讯、汽车、医疗仪器、RAID、适配卡、智能卡、安全保密、工业控制、扫描仪、煤气分析仪、游戏机、多媒体、手持产品、消费产品、局域网、广域网、导航设备、卫星通信、自己主动提款机、视频产品、条码机、过程控制等等。
Nucleus部分典型的username单:
AT&T/Lucemt, Blaupunkt, Compaq Computer, Canon, Chrysler Technologies, Dassault SA, DOD, Draper Labs, Eastman Kodak, Ford Motor Company, General Motors, General Electric, GE Medical, Goddard Space Flight Systems, Fujitsu, Harris
Digital Phone, Hewlett Packard, IBM, IGT Interface Systems, Kenwood Corporation, Lucent ,Mannesmann Tally Corp, M.I.T., Motorola, NASA, NEC, Network Peripherals, Nippon Denso, MSA Baseline, Orbitel Mobile Comm, Psi Printer GmbH, Philips Semiconductor, Rockwell
International, Sagem SA, Samsung Electronics, Siemens, Sony Corp, Storage Technology, Texas Instruments, Takasago Corp, Toyota, Video Lottery, Video Guide, VLSI, Westinghouse, Xircom, Zitel。
国内部分用户:
航天部204所。邮电部数据所,北京卡斯特。航空部614所,中科院沈阳自己主动化所,北京千网数据公司,北京凌云公司,清华大学。长沙国防科技大学,复旦大学,华北电力大学,郑州信息project学院,烟台东方电子集团,深圳桑达,上海博达,深圳迈瑞。深圳天地通讯,铁道部大连内燃机车研究所,总參机要局,南京南瑞总公司,航天第二设计院。西安仪表。郎讯(中国)有限公司,海军计算所。恒基伟业,广州金鹏集团。杭州东方集团。福州新大陆,深圳康佳,西安东强,北京华大集成电路设计中心,广东信利集团,香港IDT,香港讯研,太原中航仪表集团,新科电子,上海中兴。上海广电,石家庄54所,总參56所,武汉邮科院,上海德理,上海贝尔,斯高柏(C-Cube)、航天部503所等等。
Nucleus PLUS简单介绍的更多相关文章
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- angular1.x的简单介绍(二)
首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- iOS-iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- iOS开发多线程篇—多线程简单介绍
iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...
- iOS开发UI篇—UITabBarController简单介绍
iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...
随机推荐
- Tomcat启动报错:java.net.BindException: Cannot assign requested address: JVM_Bind
Tomcat启动报错:java.net.BindException: Cannot assign requested address: JVM_Bind Tomcat Cannot assign re ...
- Oracle 临时表空间 temp表空间切换
一.TEMP表空间 临时表空间主要用途是在数据库进行排序运算.管理索引.访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理.当oracle里需要用到sort的时候,PGA中sort_ar ...
- vb.net小试三层架构
在对三层架构有了初步了解后,用vb.net做了一个小的程序,真的很小,仅仅是为了体现一下三层之间机制.下面是我设计的操作界面: 还有程序集和类的分布情况, 接下来是数据的设计,数据库用到的是SQL S ...
- java编写Loadrunner脚本
web.set_max_html_param_len("1000000"); lr.start_transaction("red_envelop"); web. ...
- ES6 数值扩展
1.Number.isNan 和 Number.isFinite Number.isNaN()用来检查一个值是否为NaN Number.isNaN(NaN) // true Number.isNaN( ...
- canvas光晕
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- shell脚本对多端口进程kill并重启进程
#!/bin/bash export LOG_FILE='/data/log/search' spider_search_pid=`ps aux|grep flask_web_search|grep ...
- struts过滤器的原理
struts就是充当拦截器(过滤器)的作用.在web.xml配置过滤器, package cn.itcast.framework.core; import java.io.IOException; i ...
- 堆越界--coredump 在malloc函数里
一,可执行程序分析: objdump -h xxx,可以看到程序内部各个段的内存分布,结果如下(部分): 26 .data 0000016c 0000000000879d20 0 ...
- spine findBone
spBone* bone=skeletonAnimationNode->findBone("boneName"); CCPoint boneWorldPos=ccp(bone ...