Nucleus PLUS介紹
今天在公司看到VIA的CBP系列CDMA手機(jī)方案用到了Nucleus +OS,說實(shí)話還是第一次聽說,所以查了些資料,引用別人的總結(jié)做個(gè)百科小文,原文鏈接如下:
http://www.upsdn.net/html/2005-01/250.html
一、Nucleus PLUS嵌入式操作系統(tǒng)的簡單介紹
Nucleus PLUS嵌入式操作系統(tǒng)是目前最受歡迎的操作系統(tǒng)之一,是美國源代碼操作系統(tǒng)商ATI公司為實(shí)時(shí)嵌入式應(yīng)用而設(shè)計(jì)的一個(gè)搶先式多任務(wù)操作系統(tǒng)內(nèi)核,其95%的代碼是用ANSIC寫成的,因此非常便于移植并能夠支持大多數(shù)類型的處理器。
從實(shí)現(xiàn)角度來看,Nucleus PLUS 是一組C函數(shù)庫,應(yīng)用程序代碼與核心函數(shù)庫連接在一起,生成一個(gè)目標(biāo)代碼,下載到目標(biāo)板的RAM中或直接燒錄到目標(biāo)板的ROM中執(zhí)行。
Nucleus Plus內(nèi)核在典型的CISC體系結(jié)構(gòu)上占據(jù)大約20k空間,而在典型的RISC體系結(jié)構(gòu)上占據(jù)空間為40k左右,其內(nèi)核數(shù)據(jù)結(jié)構(gòu)占據(jù)1.5k字節(jié)的空間。Nucleus Plus以其實(shí)時(shí)響應(yīng)、搶先、多任務(wù)以及源代碼開放特性獲得在通訊、國防、工業(yè)控制、航空/航天、鐵路、網(wǎng)絡(luò)、POS、自動(dòng)化控制、智能家電等領(lǐng)域的廣泛應(yīng)用。
Nucleus PLUS 采用了軟件組件的方法。每個(gè)組件具有單一而明確的目的,通常由幾個(gè)C及匯編語言模塊構(gòu)成,提供清晰的外部接口,對組件的引用就是通過這些接口完成的。除了少數(shù)一些特殊情況外,不允許從外部對組件內(nèi)的全局進(jìn)行訪問。由于采用了軟件組件的方法,Nucleus PLUS各個(gè)組件非常易于替換和復(fù)用。Nucleus PLUS的組件包括任務(wù)控制、內(nèi)存管理、任務(wù)間通信、任務(wù)的同步與互斥、中斷管理、定時(shí)器及I/O驅(qū)動(dòng)等。
二、Nucleus具有的優(yōu)點(diǎn):
1、提供源代碼
Nucleus PLUS提供注釋嚴(yán)格的C源級代碼給每一個(gè)用戶。這樣,用戶能夠深入地了解底層內(nèi)核的運(yùn)作方式,并可根據(jù)自己的特殊要求刪減或改動(dòng)系統(tǒng)軟件,這對軟件的規(guī)范化管理及系統(tǒng)軟件的測試都有極大的幫助。另外,由于提供了RTOS的源級代碼,用戶不但可以進(jìn)行 RTOS 的學(xué)習(xí)和研究,而且產(chǎn)品在量產(chǎn)時(shí)也不必支付 License,可以省去大量的費(fèi)用。對于軍方來說,由于提供了源代碼,用戶完全可以控制內(nèi)核而不必?fù)?dān)心操作系統(tǒng)中可能會存在異常任務(wù)導(dǎo)致系統(tǒng)崩潰。
2、性價(jià)比高
Nucleus PLUS由于采用了先進(jìn)的微內(nèi)核 ( Micro-kernel ) 技術(shù),因而在優(yōu)先級安排,任務(wù)調(diào)度,任務(wù)切換等各個(gè)方面都有相當(dāng)大的優(yōu)勢。另外,對C++語言的全面支持又使得Nucleus PLUS 的 Kernel 成為名副其實(shí)的面向?qū)ο蟮膶?shí)時(shí)操作系統(tǒng)內(nèi)核。然而,其價(jià)格卻比較合理。所以,容易被廣大的研發(fā)單位接受。
3、易學(xué)易用
Nucleus PLUS 能夠結(jié)合 Paradigm,SDS以及 ATI自己的多任務(wù)調(diào)試器組成功能強(qiáng)大的集成開發(fā)環(huán)境,配合相應(yīng)的編譯器和動(dòng)態(tài)聯(lián)結(jié)庫以及各類底層驅(qū)動(dòng)軟件,用戶可以輕松地進(jìn)行 RTOS 的開發(fā)和調(diào)試。另外,由于這些集成開發(fā)環(huán)境 ( IDE ) 為所有的開發(fā)工程師所熟悉,因而,容易學(xué)習(xí)和使用。
4、功能模塊豐富
Nucleus PLUS除提供功能強(qiáng)大的內(nèi)核操作系統(tǒng)外,還提供種類豐富的功能模塊。例如用于通訊系統(tǒng)的局域和廣域網(wǎng)絡(luò)模塊,支持圖形應(yīng)用的實(shí)時(shí)化Windows模塊,支持Internet網(wǎng)的WEB產(chǎn)品模塊,工控機(jī)實(shí)時(shí)BIOS模塊,圖形化用戶接口以及應(yīng)用軟件性能分析模塊等。用戶可以根據(jù)自己的應(yīng)用來選擇不同的應(yīng)用模塊。
Nucleus PLUS的RTOS內(nèi)核可支持如下類型的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類型最豐富的實(shí)時(shí)多任務(wù)操作系統(tǒng)。針對各種嵌入式應(yīng)用,Nucleus PLUS 還提供相應(yīng)的網(wǎng)絡(luò)協(xié)議(如TCP/IP,SNMP等),以滿足用戶對通訊系統(tǒng)的開發(fā)要求。另外,可重入的文件系統(tǒng)、可重入的C函數(shù)庫以及圖形化界面等也給開發(fā)者提供了方便。針對不同的CPU類型,Nucleus 還提供編譯器、動(dòng)態(tài)連接庫、多任務(wù)調(diào)試器等相應(yīng)的工具來配置用戶的開發(fā)環(huán)境。
值得提出的是ATI公司最近還發(fā)表了基于Microsoft Developers Studio的嵌入式集成開發(fā)環(huán)境-NUCLEUS EDE。從而率先將嵌入式開發(fā)工具與Microsoft的強(qiáng)大開發(fā)環(huán)境結(jié)合起來,提供給工程師們強(qiáng)大的開發(fā)手段。
三、 源代碼帶來的優(yōu)勢眾所周知,Nucleus實(shí)時(shí)多任務(wù)操作系統(tǒng)提供給用戶源代碼。
這除商務(wù)上給用戶帶來巨大益處(免交Royalty)外,還在技術(shù)方面給用戶極大的方便,即無需編寫和調(diào)試BSP,從而達(dá)到易學(xué)易用的目的,加速產(chǎn)品上市。對RTOS有一定知識的工程師一定清楚,使用RTOS最大的障礙在于編寫和調(diào)試BSP。大家知道,在調(diào)試目標(biāo)系統(tǒng)的軟件之前,必須將目標(biāo)與主機(jī)連接起來并建立通訊。為此,我們可以編寫一段監(jiān)控程序(Monitor)。然而,如果要調(diào)試基于RTOS內(nèi)核的程序,主機(jī)上的調(diào)試器(Debugger)除要與目標(biāo)建立通訊外,更重要的是必須識別RTOS的任務(wù),這樣才能進(jìn)行任務(wù)級調(diào)試(Task-aware Debugger)。因此,只有Monitor是不夠的。如果我們選用的RTOS不提供源代碼,那么,主機(jī)上的調(diào)試器(Debugger)就只有通過用戶編寫的BSP來了解Kernel在現(xiàn)有硬件平臺上對各個(gè)任務(wù)進(jìn)行調(diào)度的情況。顯然,編寫BSP必須對CPU目標(biāo)系統(tǒng)的硬件以及應(yīng)用軟件等有全面而深入的了解。一般說來,對于一個(gè)有一定硬件開發(fā)經(jīng)驗(yàn)的工程師來說,編寫一個(gè)新的BSP要花的平均時(shí)間為兩個(gè)月左右。這對于一個(gè)新手來說可是比較困難的。對于編寫BSP的工程師來說,另外一個(gè)更大的挑戰(zhàn)就是如何調(diào)試BSP,即如何驗(yàn)證所編寫的BSP是否正確。通常剛剛焊接安裝好的PCB板中,硬件或軟件的故障(Bugs)是比較多的。甚至更常見的是CPU部分都沒有運(yùn)作正常。有時(shí)時(shí)序錯(cuò)誤和總線錯(cuò)誤都還存在。在您把寫好的BSP燒入EPROM(或FLASH)中試圖將目標(biāo)與主機(jī)建立聯(lián)系時(shí),您幾乎100%地會發(fā)現(xiàn)根本無法通訊,眼前一團(tuán)漆黑,不知是軟件有錯(cuò)誤還是硬件不運(yùn)轉(zhuǎn)。BSP在正常運(yùn)行嗎?不得而知。在焦急和摸索中您可能發(fā)現(xiàn)幾個(gè)月已悄然而過。對于早期的實(shí)時(shí)操作系統(tǒng)來說,BSP是必由之路。然而,新一代的RTOS-Nucleus PLUS則避免了BSP帶來的痛苦過程。因?yàn)?/span>Nucleus的調(diào)試是基于全新的動(dòng)態(tài)連接庫(DLL)。用戶只須通過監(jiān)控程序(Monitor)或者BDM調(diào)試口(或者JTAG調(diào)試口)建立目標(biāo)系統(tǒng)(Target)與主機(jī)(Host)之間的通訊,并給主機(jī)上的Debugger初始化特性中加入Nucleus的動(dòng)態(tài)連接庫(DLLs),這時(shí),調(diào)試器就能夠自動(dòng)地去識別運(yùn)行在目標(biāo)系統(tǒng)中的Nucleus內(nèi)核和各個(gè)應(yīng)用任務(wù),從而完成任務(wù)級調(diào)試。上述的動(dòng)態(tài)連接庫(DLLs)是由RTOS廠商和Debugger廠商合作完成的,用戶無須自行編寫。因此,Nucleus的用戶只需要將精力放在基于Nucleus的編程工作中。對于一個(gè)新手,往往經(jīng)過一天到兩天的學(xué)習(xí)和培訓(xùn),就可以投入到應(yīng)用程序編制工作中去,無需花大量的時(shí)間去研究CPU,特定的硬件等。
另外,由于有了源程序,用戶在調(diào)試程序時(shí)可以清楚地通過STEP INTO命令,追蹤到RTOS的內(nèi)層中去,觀看和學(xué)習(xí)Kernel對任務(wù)的管理和調(diào)度機(jī)制。對于有志研究RTOS深層技術(shù)的工程師來說極為方便。對于Motorola 68K和PowerPC,用戶可以利用GreenHill公司的Mutil調(diào)試器或TRACE-ICD來完成Nucleus PLUS的調(diào)試;對于ARM和StrongARM,用戶可以利用ARM公司的SDT251調(diào)試器或TRACE-ICD來完成Nucleus PLUS的調(diào)試;對于Intel x86實(shí)模式,用戶可以利用Paradigm公司的調(diào)試器及其DLL來進(jìn)行任務(wù)級調(diào)試;對于Intel x86保護(hù)模式則可以利用SSI公司Softprobe調(diào)試器和SSI DLL來調(diào)試;對于i960,SH3/4,ARM6/7,MIPS等芯片,則可以使用ATI公司自己的UDB調(diào)試器來進(jìn)行任務(wù)的調(diào)試。結(jié)論:動(dòng)態(tài)連接庫(DLL)是在RTOS工具中新出現(xiàn)的應(yīng)用趨勢,通過這種方式,用戶可以免去BSP帶來的麻煩,靈活方便地進(jìn)行開發(fā)和調(diào)試,大大加速開發(fā)進(jìn)度。Nucleus實(shí)時(shí)操作系統(tǒng)提供源代碼,支持豐富的CPU種類,配合各類DLL動(dòng)態(tài)連接庫,為使用和研究RTOS技術(shù)的工程帶來極大的利益。
進(jìn)行ARM系列的開發(fā)需要大量的設(shè)備投入,另外如果做比較大型的系統(tǒng),還必須要操作系統(tǒng),購買一個(gè)好的操作系統(tǒng)也是需要幾十萬元。ARM的應(yīng)用層研發(fā)可以建立在C,C++及其他的大多數(shù)開發(fā)語言上,這對于軟件公司來說是很方便的,只要準(zhǔn)備好硬件及操作系統(tǒng),其他的工作就可以分模塊給N個(gè)人來進(jìn)行。而對于底層的東西,ARM公司也可以有比較大力度的支持,因此如果需要用ARM系列開發(fā)高端產(chǎn)品,可行性是比較高的,開發(fā)周期也不會很長。當(dāng)然,對于arm芯片,還是有一定的限制,比如沒有除法指令,這樣在編程時(shí)就要盡量避免用除法,否則會帶來程序代碼的增加和執(zhí)行速度的降低。一般說,除法還是可以通過移位和乘法來代替。
另外,好久沒上來碼字了,上周結(jié)束失業(yè),估計(jì)金融危機(jī)對我的影響暫時(shí)結(jié)束一下了吧。
posted on 2008-11-27 22:37
frank.sunny 閱讀(1608)
評論(0) 編輯 收藏 引用 所屬分類:
概念掃盲