国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2024
工業(yè)智能邊緣計(jì)算2024年會(huì)
2023年工業(yè)安全大會(huì)
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

Nucleus Plus在嵌入式系統(tǒng)應(yīng)用
  • 企業(yè):控制網(wǎng)     領(lǐng)域:機(jī)器視覺     行業(yè):市政工程    
  • 點(diǎn)擊數(shù):1188     發(fā)布時(shí)間:2005-07-15 14:45:37
  • 分享到:



    Nucleus Plus是美國源代碼操作系統(tǒng)商ATI公司推出的新一代嵌入式操作系統(tǒng),屬于搶先式實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核, 95%的代碼使用ANSI C編寫,非常便于移植于各種處理器家族。從實(shí)現(xiàn)的角度講,不同于傳統(tǒng)嵌入式開發(fā),Nucleus Plus是以函數(shù)庫的形式鏈接到目標(biāo)應(yīng)用程序中,形成可執(zhí)行目標(biāo)代碼,下載到目標(biāo)板上或燒到ROM/FLASH 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內(nèi)核技術(shù)

    ATI公司使用一種叫做軟件組件的方法。所謂軟件組件,就是具有明確目的或用途的由1個(gè)或數(shù)個(gè)C語言/匯編源文件的一段非獨(dú)立執(zhí)行應(yīng)用程序,且每個(gè)組件都提供一個(gè)定義好的外部接口,必須通過外部接口來使用組件。訪問組件內(nèi)的全局?jǐn)?shù)據(jù)結(jié)構(gòu)是被禁止的。使用了組件方法,軟件組件既易于更新也易于重用。Nucleus Plus軟件組件通常由定義數(shù)據(jù)類型、常量以及外部接口的INCLUDE 頭文件和一個(gè)或多個(gè)C語言/匯編源文件組成。Nucleus Plus 提供如下組件:任務(wù)控制管理、內(nèi)存管理、定時(shí)器管理、中斷、系統(tǒng)診斷、I/O驅(qū)動(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:負(fù)責(zé)初始化Nucleus Plus 系統(tǒng)

    *  TC:負(fù)責(zé)管理Nucleus Plus的搶占式實(shí)時(shí) 任務(wù)和HISR的運(yùn)行

    *  CS:負(fù)責(zé)提供具有鏈接列表其它的設(shè)備Nucleus Plus 組件

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

    *  MB:負(fù)責(zé)管理所有的Nucleus Plus 信箱設(shè)備

    *  QM:負(fù)責(zé)管理所有的Nucleus Plus 隊(duì)列設(shè)備

    *  PI :負(fù)責(zé)管理所有的Nucleus Plus 管道設(shè)備

    *  SM:負(fù)責(zé)管理所有的Nucleus Plus 信號(hào)量設(shè)備

    *  EV:負(fù)責(zé)管理所有的Nucleus Plus 事件組設(shè)備

    *  PM:負(fù)責(zé)管理所有的Nucleus Plus 分區(qū)內(nèi)存

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

    *  I/O:負(fù)責(zé)管理所有的Nucleus Plus 輸入/輸出

    *  HI:負(fù)責(zé)Nucleus Plus的歷史設(shè)備管理

    *  ER:負(fù)責(zé)管理所有的Nucleus Plus 系統(tǒng)錯(cuò)誤

    *  LI:負(fù)責(zé)Nucleus Plus的許可證管理

    *  RL:負(fù)責(zé)Nucleus Plus 的版本管理

    Nucleus Plus 其它功能模塊

    Nucleus Plus 除了其功能強(qiáng)大的內(nèi)核外,還提供了面向INTERNET、TCP/IP、WEB瀏覽器、圖形以及文件系統(tǒng)的軟件包。

    Nucleus Plus 開發(fā)

    1.Nucleus Plus 定制

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

    2.開發(fā)方案

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

    3.開發(fā)流程

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

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

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

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

    *  編譯/匯編所有的應(yīng)用程序軟件,并且包含系統(tǒng)低級(jí)初始化文件.INT。

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

    *  把生成的最終目標(biāo)代碼下載或燒到目標(biāo)板上執(zhí)行。

    4.Nucleus Plus 初始化

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

               表1:Nucleus Plus 初始化表

    Int_Initialize()

    Inc_Initialize()

    Application_Initialize()

    *  設(shè)置必要的處理器/系統(tǒng)控制寄存器

    *  初始化中斷向量表

    *  設(shè)置系統(tǒng)堆棧寄存器

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

    *  計(jì)算系統(tǒng)第一個(gè)可用內(nèi)存

    *  將控制交給系統(tǒng)高級(jí)初始化例程

    *  初始化Nucleus Plus 組件

    *  將控制交給應(yīng)用程序初始化例程

    *  任務(wù)調(diào)度

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

 

    5.Nucleus MNT

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


    6.開發(fā)注意事項(xiàng)

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

    *  任務(wù)饑荒

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

    *  死鎖

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

    *  內(nèi)存

    *  內(nèi)存泄露

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

    * 內(nèi)存節(jié)約

    * 默認(rèn)情況下,Nucleus Plus, 在高級(jí)初始化函數(shù)Inc_Initialize()中。調(diào)用其它函數(shù)初始化它所提供的所有特征的數(shù)據(jù)結(jié)構(gòu)中,有些特征用戶目標(biāo)應(yīng)用程序可能用不到,為此,要去掉不必要的函數(shù)調(diào)用。

    * 改變Nucleus.H中NU_MAX_LISRS的大小,它定義的是目標(biāo)處理器的最大中斷向量數(shù)。

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

    * HISR棧共享。

    * TCD.C中禁止查詢表TCD_LOWEST_SET_BIT的RAM拷貝。

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

    結(jié)束語

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

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 手机在线一区二区三区 | 久热香蕉精品视频在线播放 | 欧美一级视 | 国产午夜精品久久理论片 | 久久一本综合 | 欧美一做特黄毛片 | 97精品国产手机 | 国产精品一区在线免费观看 | 一区二区三区国产美女在线播放 | 亚洲一级毛片免费在线观看 | 99re热视频这里只精品 | 一级做a爱过程免费视 | 在线播放第一页 | 欧美成人精品大片免费流量 | 成人亲子乱子伦视频 | 日本b站一卡二卡乱码入口 日本s色大片在线观看 | 欧美成人免费高清视频 | 99久久免费看国产精品 | 成人免费观看高清在线毛片 | 国产一区2区 | 国产日韩在线播放 | 日韩美女视频在线观看 | 美国毛片免费观看 | 久久不卡日韩美女 | 久草视 | 亚洲国产精品综合久久20 | 日韩午夜| 国产精品久久久免费视频 | 欧美成人性动漫在线观看 | 成人国产精品视频频 | 深夜福利视频在线观看 | 国产亚洲精彩视频 | 亚洲一区视频在线 | 国产小网站 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 看日本真人一一级特黄毛片 | 一级床上爽高清播放 | 国产成人欧美视频在线 | 俄罗斯18videosex性欧美成人 | 国产成人一级片 | 亚洲精品无码不卡在线播放he |