<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Nucleus Plus在嵌入式系統應用

Nucleus Plus在嵌入式系統應用

作者:丁宜棟 海軍計算技術(shù)研究所 北京 時(shí)間:2001-03-23 來(lái)源:電子產(chǎn)品世界 收藏

    Nucleus Plus是美國源代碼操作系統商ATI公司推出的新一代操作系統,屬于搶先式實(shí)時(shí)多任務(wù)操作系統內核, 95%的代碼使用ANSI C編寫(xiě),非常便于移植于各種處理器家族。從實(shí)現的角度講,不同于傳統開(kāi)發(fā),Nucleus Plus是以函數庫的形式鏈接到目標應用程序中,形成可執行目標代碼,下載到目標板上或燒到ROM/FLASH ROM 中去執行。Nucleus Plus內核在典型的CISC體系結構上占據大約20k空間,而在典型的RISC體系結構上占據空間為40k左右,其內核數據結構占據1.5k字節的空間。Nucleus Plus以其實(shí)時(shí)響應、搶先、多任務(wù)以及源代碼開(kāi)放特性獲得在通訊、國防、工業(yè)控制、航空/航天、鐵路、網(wǎng)絡(luò )、POS、自動(dòng)化控制、智能家電等領(lǐng)域的廣泛應用。

本文引用地址:http://dyxdggzs.com/article/2910.htm

Nucleus Plus內核技術(shù)

    ATI公司使用一種叫做軟件組件的方法。所謂軟件組件,就是具有明確目的或用途的由1個(gè)或數個(gè)C語(yǔ)言/匯編源文件的一段非獨立執行應用程序,且每個(gè)組件都提供一個(gè)定義好的外部接口,必須通過(guò)外部接口來(lái)使用組件。訪(fǎng)問(wèn)組件內的全局數據結構是被禁止的。使用了組件方法, 軟件組件既易于更新也易于重用。Nucleus Plus軟件組件通常由定義數據類(lèi)型、常量以及外部接口的INCLUDE 頭文件和一個(gè)或多個(gè)C語(yǔ)言/匯編源文件組成。Nucleus Plus 提供如下組件:任務(wù)控制管理、內存管理、 定時(shí)器管理、中斷、系統診斷、I/O驅動(dòng)管理等共16個(gè)組件如下,

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的搶占式實(shí)時(shí) 任務(wù)和HISR的運行

  * CS:負責提供具有鏈接列表其它的設備N(xiāo)ucleus Plus 組件

  * TM:負責管理所有的Nucleus Plus 定時(shí)器設備。Nucleus Plus 的基本定時(shí)單元為一個(gè)Tick,它相當于一次硬件定時(shí)器中斷

  * MB:負責管理所有的Nucleus Plus 信箱設備

  * QM:負責管理所有的Nucleus Plus 隊列設備

  * PI :負責管理所有的Nucleus Plus 管道設備

  * SM:負責管理所有的Nucleus Plus 信號量設備

  * EV:負責管理所有的Nucleus Plus 事件組設備

  * PM:負責管理所有的Nucleus Plus 分區內存

  * DM:負責管理所有的Nucleus Plus 動(dòng)態(tài)內存

  * 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 開(kāi)發(fā)

1, Nucleus Plus 定制

    Nucleus Plus 也能根據目標板的需要進(jìn)行裁剪和定制,生成適合目標系統的操作系統,盡量少占系統內存。OS定制完成后,將其鏈接到目標應用程序,成為目標應用程序的一部分。在典型的CISC體系結構的目標板上,它占用約20K 左右的空間,而在RISC體系結構的目標板上占用約40K左右的空間。一般地,Nucleus Plus 足以滿(mǎn)足絕大多數的應用。ATI公司提供了一個(gè)名為BUILD_LI.BAT或PLUS.BAT的批處理文件,用戶(hù)可以刪剪其中的模塊,更改相關(guān)的選項或開(kāi)關(guān),執行該文件生成與目標相關(guān)的操作系統,也就是根據系統需要生成定制的操作系統。需要注意的是,該批處理文件的內容與開(kāi)發(fā)工具有關(guān)。

 2,開(kāi)發(fā)方案

    Nucleus Plus可以結合Paradigm、SDS以及ATI的多任務(wù)調試器組成功能強大的集成開(kāi)發(fā)環(huán)境,配合相應的編譯器(Borland c/c++ 編譯器、Turbo c/c++ 編譯器或者M(jìn)icrosoft c/c++編譯器)和動(dòng)態(tài)鏈接庫以及各類(lèi)底層驅動(dòng)軟件就可以滿(mǎn)足嵌入式應用的開(kāi)發(fā)。

3,開(kāi)發(fā)流程

用Nucleus Plus 開(kāi)發(fā)嵌入式應用程序,一般遵循如下步驟:

  * 如果有必要,應對低級系統初始化文件.INT進(jìn)行修改,使之符合目標板的需要。如中斷向量、I/O地址、時(shí)鐘頻率等。

  * 定義Application _Initialize()函數。該函數在啟動(dòng)系統之前先執行。注意的是要把NUCLEUS.H頭文件包括在目標應用程序中,以便利用Nucleus Plus 的服務(wù)。

  * 定義應用程序的任務(wù)。如果調用Nucleus Plus 的服務(wù),要把NUCLEUS.H包含進(jìn)去。

  * 編譯/匯編所有的應用程序軟件,并且包含系統低級初始化文件.INT。

  * 鏈接.INT和所有的應用程序目標文件、Nucleus Plus庫文件以及相關(guān)的開(kāi)發(fā)工具庫。

  * 把生成的最終目標代碼下載或燒到目標板上執行。

4, Nucleus Plus 初始化

    Nucleus Plus 分三個(gè)層次的初始化,即:系統低級初始化Int-Initialize()、系統高級初始化Inc-Initialize()和應用程序初始化Application_Initialize(),初始化之后便進(jìn)入Nucleus Plus 的任務(wù)調度循環(huán)。各個(gè)初始化函數任務(wù)見(jiàn)表1。

Int_Initialize()

Inc_Initialize()

Application_Initialize()

  * 設置必要的處理器/系統控制寄存器

  * 初始化中斷向量表

  * 設置系統堆棧寄存器

  * 計算定時(shí)器HISR堆棧和優(yōu)先級

  * 計算系統第一個(gè)可用內存

  * 將控制交給系統高級初始化例程

  * 初始化Nucleus Plus 組件

  * 將控制交給應用程序初始化例程

  * 任務(wù)調度

  * 執行用戶(hù)定義的初始化,如創(chuàng )建內存池,創(chuàng )建任務(wù)、創(chuàng )建信號量、創(chuàng )建隊列等

               表1:Nucleus Plus 初始化表

 5, Nucleus MNT

    Nucleus MNT是為軟件開(kāi)發(fā)者設計的,在WIN95/NT下構筑Nucleus Plus嵌入式應用的原型(Prototyping)環(huán)境。它通過(guò)兩個(gè)庫來(lái)實(shí)現,即針對目標環(huán)境的庫和針對Win95/NT開(kāi)發(fā)環(huán)境的庫。開(kāi)發(fā)時(shí),應用程序代碼可以不變,僅僅替換掉MNT庫,使用交叉開(kāi)發(fā)工具包重構目標環(huán)境下的可執行目標代碼,請看圖2。

     PROTOTYPING           TARGET

                    圖2:Nucleus MNT

 6, 開(kāi)發(fā)注意事項

    嵌入式開(kāi)發(fā)在內存需求、任務(wù)管理等方面存在著(zhù)特殊性,因此,開(kāi)發(fā)中對以下方面要額外加以注意,

  * 任務(wù)饑荒

任務(wù)優(yōu)先級的分配要合理,否則會(huì )導致系統中的一些任務(wù)一直不斷地在運行而另一些任務(wù)永遠得不到運行,引起饑荒。

  * 死鎖

系統資源的分配要合理,否則會(huì )引起兩個(gè)或多個(gè)任務(wù)為競爭某一系統資源而處于無(wú)限掛起現象。

  * 內存

  * 內存泄露

內存分配過(guò)程中要盡量避免碎片并且要注意及時(shí)回收。

  * 內存節約

  * 默認情況下,Nucleus Plus, 在高級初始化函數Inc_Initialize()中。調用其它函數初始化它所提供的所有特征的數據結構中,有些特征用戶(hù)目標應用程序可能用不到,為此,要去掉不必要的函數調用。

  * 改變Nucleus.H中NU_MAX_LISRS的大小,它定義的是目標處理器的最大中斷向量數。

  * 改變TC_DEFS.H中TC_PRIORITIES的大小。它定義了任務(wù)的優(yōu)先級數。Nucleus Plus 能支持256個(gè)優(yōu)先級。

  * HISR棧共享。

  * TCD.C中禁止查詢(xún)表TCD_LOWEST_SET_BIT的RAM拷貝。

  * 使用一個(gè)更小的INT選項。

結束語(yǔ)

    由于Nucleus Plus 的模塊化、可靠、重用、開(kāi)放、易用以及安全等特性使得它成為嵌入式應用開(kāi)發(fā)的理想平臺,尤其是關(guān)系到國計民生的領(lǐng)域,如航空/航天、軍隊、國防等方面。

 



關(guān)鍵詞: 嵌入式系統 嵌入式

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>