QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1197|回复: 0

Nucleus 操作系统-入门篇

[复制链接]
发表于 2004-9-7 19:46:45 | 显示全部楼层 |阅读模式
一、 ATI公司简介
■公司全称:Accelerated Technology Inc.
■成立于1990年8月
■总部在美国Alabama州的Mobile
■在美国的加利佛尼亚,德克萨斯,马塞诸塞,佛罗里达以及田纳西等设有分支机构
■在英国、法国和德国设有分支机构
■在日本、韩国、澳大利亚、台湾、中国、意大利和俄罗斯等国设有代理商
■1990年推出Nucleus实时多任务操作系统
■专注于RTOS的研发、销售和技术应用及技术支持
■1993年成为MOTOROLA推荐的四大RTOS厂商之一
■1994年推出全球唯一的MNT虚拟开发平台
■1994年推出全球唯一的VNET网络化虚拟平台
■1994年成功地推出Java和RTOS产品
■1995年成为全球第一大源代码RTOS厂商
■1996年选定旋极科技公司为其中国大陆及香港地区独家代理商
■1997年公司员工数量为82人,成为美国大型的RTOS厂商
■1998年NET4.2成功推出
■1998年成功推出机顶盒方案和OSEK汽车电子方案
■1999年推出WebBrowser浏览器
■1999年ATI公司员工数量为150人,已成为美国成长速度最快的嵌入式操作系统公司
■2000年NET4.4成功推出,完善了NUCLEUS的网络模块

二、 Nucleus PLUS的特点:
Nucleus PLUS 是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,Nucleus PLUS 是一组C函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行。在典型的目标环境中,Nucleus PLUS 核心代码区一般不超过20K字节大小。
Nucleus PLUS 采用了软件组件的方法。每个组件具有单一而明确的目的,通常由几个C及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成的。除了少数一些特殊情况外,不允许从外部对组件内的全局进行访问。由于采用了软件组件的方法,Nucleus PLUS 各个组件非常易于替换和复用。
Nucleus PLUS 的组件包括任务控制、内存管理、任务间通信、任务的同步与互斥、中断管理、定时器及I/O驱动等。
Nucleus PLUS具有如下特点:
1、        提供源代码
Nucleus PLUS 提供注释严格的C源代码给每一个用户。这样,用户能够深入地了解底层内核的运作方式,并可根据自己的特殊要求删减或改动系统软件,这对软件的规范化管理及系统软件的测试都有极大的帮助。另外,由于提供了 RTOS 的源代码,用户不但可以进行 RTOS 的学习和研究,而且产品在量产时也不必支付 License,可以省去大量的费用。对于军方来说,由于提供了源代码,用户完全可以控制内核而不必担心操作系统中可能会存在异常任务导致系统崩溃。
2、        性价比高
Nucleus PLUS 由于采用了先进的微内核 ( Micro-kernel ) 技术,因而在优先级安排,任务调度,任务切换等各个方面都有相当大的优势。另外,对C++语言的全面支持又使得Nucleus PLUS 的 Kernel 成为名副其实的面向对象的实时操作系统内核。然而,其价格却比较合理。所以,容易被广大的研发单位接受。
3、        易学易用
Nucleus PLUS 能够结合 Paradigm,SDS以及 ATI自己的多任务调试器组成功能强大的集成开发环境,配合相应的编译器和动态联结库以及各类底层驱动软件,用户可以轻松地进行 RTOS 的开发和调试。另外,由于这些集成开发环境 ( IDE ) 为所有的开发工程师所熟悉,所以容易学习和使用。
4、        功能模块丰富
Nucleus PLUS 除提供功能强大的内核操作系统外,还提供种类丰富的功能模块。例如用于通讯系统的局域和广域网络模块,支持图形应用的实时化 Windows 模块,支持Internet网的 WEB 产品模块,工控机实时 BIOS 模块,图形化用户接口以及应用软件性能分析模块等。这样,用户就可以根据自己的应用来定制不同的应用模块。
Nucleus PLUS支持的CPU类型:
Nucleus PLUS 的 RTOS内核可支持如下类型的CPU:x86,68xxx,68HCxx,NEC V25, ColdFire, 29K,i960, MIPS, SPARClite, TI DSP, ARM6/7/9, StrongARM, H8/300H, SH1/2/3, PowerPC, V8xx, Tricore, Mcore, Panasonic MN10200, Tricore, Mcore等。可以说NUCLEUS+是支持CPU类型最丰富的实时多任务操作系统。
    针对各种嵌入式应用,Nucleus PLUS 还提供相应的网络协议(如TCP/IP,SNMP等),以满足用户对通讯系统的开发要求。另外,可重入的文件系统、可重入的C函数库以及图形化界面等也给开发者提供了方便。
针对不同的CPU类型,Nucleus 还提供编译器、动态连接库、多任务调试器等相应的工具来配置用户的开发环境。值得提出的是ATI公司最近还发表了基于Microsoft Developers Studio的嵌入式集成开发环境-NUCLEUS EDE。从而率先将嵌入式开发工具与Microsoft的强大开发环境结合起来,提供给工程师们强大的开发手段。
三、 源代码带来的优势
众所周知,Nucleus实时多任务操作系统提供给用户源代码。这除商务上给用户带来巨大益处(免交Royalty)外,还在技术方面给用户极大的方便,即无需编写和调试BSP,从而达到易学易用的目的,加速产品上市。
对RTOS有一定知识的工程师一定清楚,使用RTOS最大的障碍在于编写和调试BSP。大家知道,在调试目标系统的软件之前,必须将目标与主机连接起来并建立通讯。为此,我们可以编写一段监控程序(Monitor)。然而,如果要调试基于RTOS内核的程序,主机上的调试器(Debugger)除要与目标建立通讯外,更重要的是必须识别RTOS的任务,这样才能进行任务级调试(Task-aware Debugger)。因此,只有Monitor是不够的。如果我们选用的RTOS不提供源代码,那么,主机上的调试器(Debugger)就只有通过用户编写的BSP来了解Kernel在现有硬件平台上对各个任务进行调度的情况。显然,编写BSP必须对CPU目标系统的硬件以及应用软件等有全面而深入的了解。一般说来,对于一个有一定硬件开发经验的工程师来说,编写一个新的BSP要花的平均时间为两个月左右。这对于一个新手来说可是比较困难的。
对于编写BSP的工程师来说,另外一个更大的挑战就是如何调试BSP,即如何验证所编写的BSP是否正确。通常刚刚焊接安装好的PCB板中,硬件或软件的故障(Bugs)是比较多的。甚至更常见的是CPU部分都没有运作正常。有时时序错误和总线错误都还存在。在您把写好的BSP烧入EPROM(或FLASH)中试图将目标与主机建立联系时,您几乎100%地会发现根本无法通讯,眼前一团漆黑,不知是软件有错误还是硬件不运转。BSP在正常运行吗?不得而知。在焦急和摸索中您可能发现几个月已悄然而过。
对于早期的实时操作系统来说,BSP是必由之路。然而,新一代的RTOS-Nucleus PLUS则避免了BSP带来的痛苦过程,因为Nucleus的调试是基于全新的动态连接库(DLL)。
用户只须通过监控程序(Monitor)或者BDM调试口(或者JTAG调试口)建立目标系统(Target)与主机(Host)之间的通讯,并给主机上的Debugger初始化特性中加入Nucleus的动态连接库(DLLs),这时,调试器就能够自动地去识别运行在目标系统中的Nucleus内核和各个应用任务,从而完成任务级调试。上述的动态连接库(DLLs)是由RTOS厂商和Debugger厂商合作完成的,用户无须自行编写。因此,Nucleus的用户只需要将精力放在基于Nucleus的编程工作中。对于一个新手,往往经过一天到两天的学习和培训,就可以投入到应用程序编制工作中去,无需花大量的时间去研究CPU,特定的硬件等。
另外,由于有了源程序,用户在调试程序时可以清楚地通过STEP INTO命令,追踪到RTOS的内层中去,观看和学习Kernel对任务的管理和调度机制。对于有志研究RTOS深层技术的工程师来说极为方便。
对于Motorola 68K和PowerPC,用户可以利用GreenHill公司的Mutil调试器或TRACE-ICD来完成Nucleus PLUS的调试;对于ARM和StrongARM,用户可以利用ARM公司的SDT251调试器或TRACE-ICD来完成Nucleus PLUS的调试;对于Intel x86实模式,用户可以利用Paradigm公司的调试器及其DLL来进行任务级调试;对于Intel x86保护模式则可以利用SSI公司Softprobe调试器和SSI DLL来调试;对于i960,SH3/4,ARM6/7,MIPS等芯片,则可以使用ATI公司自己的UDB调试器来进行任务的调试。
结论:
动态连接库(DLL)是在RTOS工具中新出现的应用趋势,通过这种方式,用户可以免去BSP带来的麻烦,灵活方便地进行开发和调试,大大加速开发进度。
Nucleus实时操作系统提供源代码,支持丰富的CPU种类,配合各类DLL动态连接库,为使用和研究RTOS技术的工程带来极大的利益。
四、 Nucleus的应用领域和国内外用户
■Nucleus主要应用领域在:网络、路由、桥接、Hubs、数据通讯、顶置盒、数字摄像机、ISDN、调制器、数字绘图仪、GSM、蜂窝电话、PDA、打印机、GPS、无线通讯、汽车、医疗仪器、RAID、适配卡、智能卡、安全保密、工业控制、扫描仪、煤气分析仪、游戏机、多媒体、手持产品、消费产品、局域网、广域网、导航设备、卫星通信、自动提款机、视频产品、条码机、过程控制等等
■Nucleus部分典型的用户名单:
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所,中科院沈阳自动化所,北京千网数据公司,北京凌云公司,清华大学,长沙国防科技大学,复旦大学,华北电力大学,郑州信息工程学院,烟台东方电子集团,深圳桑达,上海博达,深圳迈瑞,深圳天地通讯,铁道部大连内燃机车研究所,总参机要局,南京南瑞总公司,航天第二设计院,西安仪表,郎讯(中国)有限公司,海军计算所,恒基伟业,广州金鹏集团,杭州东方集团,福州新大陆,深圳康佳,西安东强,北京华大集成电路设计中心,广东信利集团,香港IDT,香港讯研,太原中航仪表集团,新科电子,上海中兴,上海广电,石家庄54所,总参56所,武汉邮科院,上海德理,上海贝尔,斯高柏(C-Cube)、航天部503所等等


开发信息:
开发平台         Windows NT,
支持处理器         x86, 68k, PPC, MCORE, National Semiconductor NS CR16A/16B/32A, 29K, TMS320Cxx, MIPS, H8, i960 (rx, hx, ix, kx, sx), Coldfire, MN10200, 8xx, PowerPC 403/505/601/821/823/860, SH
支持实验板         Nucleus PLUS: Intel 8086/80186, Intel 80386/80486, Motorola 680x0/683xx, 68HC11, ARM, National Semiconductor 80486, IDT 30xx/4600/4640, LSI LR330x0/4001/4101/64008, Philips PR30100, Siemens C166/167.
支持编译器         Metaware, Microtec Research, Diab Data, Microsoft, Borland, Watcom, Green Hills, Tasking, Intel GNU, IDT GNU, Algorithmics GNU, Intermetrics, Introl, SDS, ARM Ltd., TI, Hitachi C, GNU, Tartan C/C++.
支持工具         Nucleus EDE, Nucleus DBUG+, Nucleus UDB, SDS, Paradigm, MULTI.
支持网络协议        
标准         ANSI
开发环境         Nucleus EDE
软件供应形式         源代码
编程语言         C, C++, 汇编, Java
图形界面         Nucleus GRAFIX
产品有效模块         浮点运算模块, 通讯协议模块, 网络支持模块, 文件系统,
多线程调度策略         固定优先级, 轮转调度, 时间片, 私有权限, after priority, 协同多任务.
优先级倒转防止策略         proprietary

技术信息:
系统内核         系统内核内存         进程最小存储区         线程最小存储区         消息最小存储区         优先级数目         线程最大数目         典型线程切换时间         典型进程切换时间
20K, 40K          2K, 4K          不详          168 + task          72 + task          256          无限制          30us          不详  
最大中断潜伏期         系统时钟最小分辨率         多进程         多线程         多处理器         MMU支持         集成JAVA支持         自动代码生成工具         RMA
支持          支持          支持          支持          支持          否          不详          否          否  

Nucleus的动态下载功能
Nucleus的动态下载功能

对于嵌入式领域的开发工程师来说,任何一种能够提供特殊功能的开发工具都将给自己的产品带来新的竞争优势。具有动态下载功能的Nucleus PLUS便是这样一种工具,它能够随时更改您所开发的正在运行的系统的功能。Nucleus动态下载功能能够让开发者随时进行系统的升级而不影响系统目前的运作情况。开发者只需通过串行I/O口将目标系统与主机连接起来,即可完成这一功能。

所谓动态下载功能是运行在Nucleus PLUS实时多任务操作系统环境中的一个任务,它既可以作为一种命令解释器,又可以作为下载应用程序的管理器,用户通过这种功能可以将单个或者多个新的应用任务通过串行IO口送入目标系统中,引导系统管理程序来使任何改动的系统配置生效。由于系统管理程序本身就是一个任务,可以通过设定优先级来使它不至于抢占系统中其他时序悠关(Time-Critical)的任务。当系统管理下载一个新的应用任务程序时,Nucleus所有的函数调用均被映射回内核(Kernel)。Nucleus的这种给内核函数定位的能力使得其动态下载功能成为一种强有力的开发工具。

动态下载对环境的要求

动态下载对运行环境有几个基本的要求。首先是对于编译、定位工具。它要求所用工具能够生成绝对地址代码。出于对可移植性的考虑,所用工具最好也能生成与地址相关的代码。这就是说,对于PowerPC860,某些寄存器必须用作代码段和数据段的偏移量寄存器。因此,将Nucleus的内核生成为地址相关的代码模块是很有益处的。

另外,目标系统必须留出串口以便与主机进行通讯。目前版本的动态下载功能利用了PowerPC860 MBX板上的串行口。当然,对于其他的接口,例如以太网口,只须作很小的改动。通过串行I/O口的最大下载速度为57600。许多常用的工具软件,例如Terminal,Hyper Terminal和Pcplus均可用来建立目标与主机的通讯。

结论:

利用Nucleus的动态下载功能,可以使基于Nucleus PLUS的嵌入式系统具有很强的灵活性,您可以在不影响系统的运行状态下,执行、增加或者删除新的应用任务,从而大大缩短产品上市的时间。另外,利用这种功能,您除能够随时保证您的系统处在最高性能之外,还可以随时对系统进行动态检测和维护。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 20:28 , Processed in 0.054726 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表