![Nucleus操作系統(tǒng)-實(shí)時(shí)內(nèi)核介紹_第1頁(yè)](http://file4.renrendoc.com/view/05c8db6c6604ae95f945a74dd457b57c/05c8db6c6604ae95f945a74dd457b57c1.gif)
![Nucleus操作系統(tǒng)-實(shí)時(shí)內(nèi)核介紹_第2頁(yè)](http://file4.renrendoc.com/view/05c8db6c6604ae95f945a74dd457b57c/05c8db6c6604ae95f945a74dd457b57c2.gif)
![Nucleus操作系統(tǒng)-實(shí)時(shí)內(nèi)核介紹_第3頁(yè)](http://file4.renrendoc.com/view/05c8db6c6604ae95f945a74dd457b57c/05c8db6c6604ae95f945a74dd457b57c3.gif)
![Nucleus操作系統(tǒng)-實(shí)時(shí)內(nèi)核介紹_第4頁(yè)](http://file4.renrendoc.com/view/05c8db6c6604ae95f945a74dd457b57c/05c8db6c6604ae95f945a74dd457b57c4.gif)
![Nucleus操作系統(tǒng)-實(shí)時(shí)內(nèi)核介紹_第5頁(yè)](http://file4.renrendoc.com/view/05c8db6c6604ae95f945a74dd457b57c/05c8db6c6604ae95f945a74dd457b57c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Nucleus操作系統(tǒng)一實(shí)時(shí)內(nèi)核介紹第二章Nucleus PLUS內(nèi)核介紹2. 1 Nucleus PLUS應(yīng)用開發(fā)綜述1. 1開發(fā)調(diào)試環(huán)境嵌入式實(shí)時(shí)應(yīng)用程序的開發(fā)基于宿主機(jī)系統(tǒng)。舊M PC和UNIX工作站都是典型的 宿主機(jī)系統(tǒng)。一般來(lái)說,應(yīng)用程序都是運(yùn)行在分離的計(jì)算機(jī)系統(tǒng)上被目標(biāo)系統(tǒng)調(diào)用。然 而,舊M PC系統(tǒng)并不遵循上述規(guī)則,因?yàn)樗瓤梢宰鳛镹ucleus PLUS應(yīng)用程序的 主機(jī),也可為目標(biāo)機(jī)為其服務(wù)。運(yùn)行在舊M PC系統(tǒng) 上的應(yīng)用程序以EXE文件的形 式存在。針對(duì)目標(biāo)系統(tǒng)的調(diào)試軟件通常包括ICE仿真工具和TRM (目標(biāo)仿真)工具。ICE仿 真工具給工程師提供了完全控制和了解目標(biāo)系統(tǒng)硬件
2、狀況的工具,特別是在校驗(yàn)新硬件 時(shí)尤為有用。但是,考慮到開發(fā)工具成本問題和ICE時(shí)有的使用局限性,許多項(xiàng)目采用 TRM調(diào)試。TRM就是一個(gè)運(yùn)行在目標(biāo)系統(tǒng)(通常為ROM)上的小型的軟件組件。TR M提供包括下載、下斷點(diǎn)和內(nèi)存入口服務(wù)。ICE和TRM都有宿主系統(tǒng)控制。這通常 由串口來(lái)完成。2. 1. 2 使用 Nucleus PLUSNucleus PLUS被設(shè)計(jì)成C庫(kù)的形式使用。使用內(nèi)部應(yīng)用程序軟件的服務(wù)從Nucleu s PLUS庫(kù)文件取出并且組合成應(yīng)用程序目標(biāo)文件來(lái)生成最終的映像文件。此映像文件 可以下載到目標(biāo)系統(tǒng)或是存放到目標(biāo)系統(tǒng)ROM中。使用Nucleus PLUS的步驟被描述成下列通用
3、的方式:1)如果有必要,修改低級(jí)系統(tǒng)初始化文件,INT.S。注:這些文件通常以匯編語(yǔ)言形式交貨并且它的的擴(kuò)展是指定的開發(fā)工具。2)定義Application_Initialize函數(shù),Nucleus PLUS啟動(dòng)系統(tǒng)時(shí)它優(yōu)先運(yùn)行。注意 NUCLEUS.H文件必須包含以至于能被Nucleus PLUS服務(wù)調(diào)用。3)定義應(yīng)用程序任務(wù)。如果用到Nucleus PLUS服務(wù),文件NULCUES.H必須被 包含。4)編譯所有應(yīng)用程序軟件,包括低級(jí)系統(tǒng)初始化文件INT.s。5)用Nucleus PLUS庫(kù)和必要的開發(fā)工具庫(kù)連接INT.a和所有應(yīng)用程序目標(biāo)文件。6)下載應(yīng)用程序映像文件到目標(biāo)系統(tǒng)并運(yùn)行。1.
4、 3初始化INT_Initialize程序在Nucleus PLUS內(nèi)核中是最先運(yùn)行的程序。對(duì)大多數(shù)的目標(biāo)環(huán) 境而言,硬件復(fù)位向量必須包含在INT_Initialize地址中。INT_Initialize程序主要負(fù)責(zé) 所有與目標(biāo)硬件相關(guān)的初始化,通常包括設(shè)置不同種類處理器的控制寄存器、中斷向量 表、全局C數(shù)據(jù)元素、Nucleus PLUS的一些變量以及系統(tǒng)的堆棧指針。當(dāng)INT_Initi alize程序執(zhí)行完成后,控制權(quán)交給到Nucleus PLUS上一層初始化程序INC_Initialize, 并且控制權(quán)不會(huì)再返回給INT_Initialize程序。INC_Initialize調(diào)用每一個(gè)Nu
5、cleus PLUS組件的初始化程序進(jìn)行初始化操作,在所有 Nucleus PLUS初始化完成之后,它還調(diào)用用戶提供的初始化程序Application_Initializ e。Application_Initialize程序負(fù)責(zé)定義初始化應(yīng)用環(huán)境,包括初始化應(yīng)用任務(wù)、郵箱、 隊(duì)列、管道、信號(hào)量、事件集、內(nèi)存池和其他Nucleus PLUS對(duì)象。在Application_I nitialize返回后,INC_Initialize程序開始初始化任務(wù)調(diào)度表。Accelerated Technology(ATI)使用軟件組件方法學(xué)。組件具有簡(jiǎn)單、清晰的優(yōu)點(diǎn),一 個(gè)軟件組件往往只包括幾個(gè)C程序和匯編程序
6、。并且,每一個(gè)軟件組件都有特定的目的 和提供給其他組件的外部接口,使得可以通過外部接口來(lái)方便的使用組件。在組件方法 中,除了很少的特例外,一般不允許在組件外訪問組件的全局?jǐn)?shù)據(jù)結(jié)構(gòu)。由于采用了組 件方法學(xué),Nucleus PLUS具有代碼清晰、模塊化、可靠、可復(fù)用和易于維護(hù)的特點(diǎn)。2. 2. 1組件的組成一個(gè)軟件組件通常包含頭文件、一個(gè)或多個(gè)C程序文件,有的還包括匯編程序文件。包含的文件的文件名滿足如下的約定:文件含義XX_DEF.H定義組件的常量和數(shù)據(jù)類型XX_ EXTR.H定義組件的外部接口,以函數(shù)原型的形式定義XXD.C定義組件的靜態(tài)和全局變量,除很少的特例外,一個(gè)組件的數(shù)據(jù)結(jié)構(gòu)只能被本
7、組件訪問XXI.C定義組件的初始化函數(shù)XXF.C提供被組件管理的對(duì)象的信息XXC.C提供組件的核心函數(shù)XXS.C提供組件核心函數(shù)的錯(cuò)誤處理外殼函數(shù)XXS.C組件的補(bǔ)充定義函數(shù)XXSE.C提供組件補(bǔ)充定義函數(shù)的錯(cuò)誤處理外殼函數(shù)2. 2. 2命名規(guī)則1、組件命名組件名字一般限于兩個(gè)字符。組件名字作為構(gòu)造組件的每個(gè)文件名的首兩個(gè)字符。例如:動(dòng)態(tài)內(nèi)存管理組件(Dynamic Memory Management Component)名字:DM,構(gòu)成 DM的文件:DM_DEFS.HDM_EXTR.HDMC.CDMCE.CDMI.CDMF.CDMD.C2、宏定義名字宏名由下劃線、大寫字母和數(shù)字字符構(gòu)成。最大
8、支持長(zhǎng)度為31個(gè)字符。此外一個(gè)宏定 義首3個(gè)字符是CC_,其中“CC”與定義該宏的文件名的首2個(gè)字符相同。例如:(對(duì) 于 EX_DEFS . H 文件)#define EX_MY_CONSTANT 103、結(jié)構(gòu)體名字結(jié)構(gòu)體名字由下劃線、大寫字母和數(shù)字字符構(gòu)成。最大支持長(zhǎng)度為31個(gè)字符。此外, 一個(gè)結(jié)構(gòu)體名的首3個(gè)字符是CC_,其中“CC”與定義該結(jié)構(gòu)體的文件名的首2個(gè)字 符相同。例如:(對(duì)于EX_DEFS.H)struct EX_MY_STRUCT(int ex_member_a;int ex_member_b;int ex_member_c;4、typedef 名字typedef定義新結(jié)構(gòu)體
9、名字由下劃線、大寫字母和數(shù)字字符構(gòu)成。最大支持長(zhǎng)度為31 個(gè)字符。此外,一個(gè)由typedef定義新結(jié)構(gòu)體名字的首3個(gè)字符是CC_,其中“CC” 與定義由typedef命名結(jié)構(gòu)體的文件名的首2個(gè)字符相同。例如:(對(duì)于EX_DEFS. H文件)typedef struct EX_MY_STRUCT(int ex_member_a;int ex_member_b;int ex_member_c; EX_MY_TYPEDEF;5、結(jié)構(gòu)體成員名字結(jié)構(gòu)體成員名字由下劃線、大寫字母和數(shù)字字符構(gòu)成,最大支持長(zhǎng)度為31個(gè)字符。此 外,一個(gè)結(jié)構(gòu)體成員名字的首3個(gè)字符是CC_,其中“cc”與包含該結(jié)構(gòu)體定義的文件“
10、c c_defs”的首2個(gè)字符相同。例如:(對(duì)于EX_DEFS.H文件)struct EX_MY_STRUCT(int ex_member_a;int ex_member_b;int ex_member_c;6、全局變量名字Nucleus PLUS全局變量名由下劃線以及緊跟著每個(gè)下劃線的一個(gè)大寫字母、小寫字 母、數(shù)字字符組成,最大支持長(zhǎng)度為31個(gè)字符。此外,一個(gè)全局變量名字的首3個(gè)字 符是CCC,其中“CCC”與包含實(shí)際變量描述的文件“ccc.C”的首3個(gè)字符相同。例如:(對(duì)于EXD.C文件)int EXD_Global_Integer;7、局部變量命名局部變量名由小寫字母、有可能是下劃線或數(shù)
11、字字符組成,最大支持長(zhǎng)度為31個(gè)字符。 局部變量名字沒有要求包含定義它們的文件的首3個(gè)字符。例如:(對(duì)于EXD.C文件)/* Assume the following declaration is inside a function. */int I;8、函數(shù)名字Nucleus函數(shù)名字由下劃線以及緊跟在下劃線的一個(gè)大寫字母、小寫字母、數(shù)字組成, 最大支持長(zhǎng)度為31個(gè)字符。此外,一個(gè)函數(shù)名的首3個(gè)字符與包含該函數(shù)定義的文件 名相同。例如:(對(duì)于EXD.C文件)void EXD_My_Function(unsigned int i)(2. 3軟件概述2. 3. 1基本用法Nucleus PLUS通
12、常是以C語(yǔ)言庫(kù)的形式實(shí)現(xiàn)的。實(shí)時(shí)Nucleus PLUS應(yīng)用程序和N ucleus PLUS庫(kù)鏈接在一起生成的目標(biāo)文件可以被下載到目標(biāo)板或者固化到ROM中。NUCLEUS.LIB是典型的Nucleus PLUS庫(kù)文件名。它由批處理文件PLUS.BAT運(yùn) 行產(chǎn)生,而且PLUS.BAT文件的內(nèi)容依賴于所使用的開發(fā)工具。1、運(yùn)行模式在處理器結(jié)構(gòu)中有管理模式和用戶模式之分。由于Nucleus PLUS應(yīng)用任務(wù)需要直 接地調(diào)用需要調(diào)用特權(quán)指令的系統(tǒng)服務(wù)程序,所以Nucleus PLUS應(yīng)用任務(wù)通常是在管 理模式下運(yùn)行。這樣的實(shí)現(xiàn)方法減少了系統(tǒng)服務(wù)調(diào)用的開銷而且便于實(shí)現(xiàn)。2、應(yīng)用初始化用戶有責(zé)任提供自己的
13、初始化程序Application_Initialize,該程序應(yīng)創(chuàng)建任務(wù)、隊(duì)列 和其他系統(tǒng)初始化時(shí)需要的系統(tǒng)對(duì)象。如果應(yīng)用程序不在系統(tǒng)運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建和刪除系 統(tǒng)對(duì)象,那么所有的系統(tǒng)對(duì)象都應(yīng)該在Application_Initialize中被創(chuàng)建。用戶的Applic ation_Initialize程序一旦返回,多任務(wù)立即開始執(zhí)行。在一些目標(biāo)環(huán)境中,底層的系統(tǒng) 初始化文件INT.S、INT.ASM或INT.SRC文件可能需要修改。這些文件初始化系統(tǒng)的 定時(shí)中斷、可用存儲(chǔ)空間以及處理器或目標(biāo)板的其他實(shí)體。3、頭文件所有的用戶代碼在調(diào)用Nucleus PLUS服務(wù)或數(shù)據(jù)類型時(shí),都必須包含NUCLEU
14、S. H文件。該文件包含數(shù)據(jù)類型定義、常量定義和所有Nucleus PLUS服務(wù)函數(shù)的原型。 不同的Nucleus PLUS移植系統(tǒng),該文件是不同的。2. 3. 2數(shù)據(jù)類型Nucleus PLUS在NUCLEUS.H文件中定義了標(biāo)準(zhǔn)的數(shù)據(jù)類型。這些數(shù)據(jù)類型保證了 Nucleus PLUS能以相同的風(fēng)格在不同的目標(biāo)環(huán)境中運(yùn)行。Nucleus PLUS定義的數(shù)據(jù)類型如下:數(shù)據(jù)類型含義UNSIGNED 32位無(wú)符號(hào)整數(shù),常被定義為無(wú)符號(hào)長(zhǎng)整型(unsigned long)的C數(shù)據(jù) 類型SIGNED 32位有符號(hào)整數(shù),常被定義為有符號(hào)長(zhǎng)整型(long)的C數(shù)據(jù)類型IPTION容易操作的最小的數(shù)據(jù)類型,
15、常被定義為無(wú)符號(hào)字符型(unsigned char)的C 數(shù)據(jù)類型DATA_ELEMENT和OPTION數(shù)據(jù)類型相同UNSIGNED CHAR 8位無(wú)符號(hào)字符CHAR 8位有符號(hào)字符STATUS等價(jià)于目標(biāo)C編譯器的有符號(hào)整數(shù)(int)INT整數(shù)數(shù)據(jù)類型,具有word大小VOID等價(jià)于目標(biāo)C編譯器的void數(shù)據(jù)類型(void)UNSIGNED_PTR指向UNSIGNED數(shù)據(jù)類型的指針 BYTE_PTR指向UNSIGNED_CHAR數(shù)據(jù)類型的指針2. 3. 3系統(tǒng)服務(wù)映射關(guān)系1、錯(cuò)誤檢查Nucleus PLUS 的主包含文件 NUCLEUS.H 包含了和Nucleus PLUS Reference
16、 Manual里面定義的函數(shù)相匹配的函數(shù)的原型。然而,這些NU_*函數(shù)并不真是存在。 對(duì)于絕大多數(shù)Nucleus PLUS函數(shù),都有一個(gè)真正操作的函數(shù),也有一個(gè)在調(diào)用真正執(zhí) 行操作函數(shù)前對(duì)用戶調(diào)用進(jìn)行錯(cuò)誤檢查的外殼函數(shù)。錯(cuò)誤檢查條件定義宏NU_ERROR _CHECKING定義和不定義時(shí)的具體的系統(tǒng)服務(wù)映射關(guān)系請(qǐng)參見附錄(表格形式,Nuc leus PLUS Internals 文檔中的表格)。2、條件編譯Nucleus PLUS源碼有一定的條件編譯選項(xiàng)。有一些是在應(yīng)用程序編譯時(shí)用到,而絕 大多數(shù)時(shí)在Nucleus PLUS系統(tǒng)庫(kù)編譯時(shí)可用。Nucleus系統(tǒng)庫(kù)條件編譯標(biāo)識(shí)往往是在一個(gè)編譯批處理文件中使用。這些條件編譯選項(xiàng)控
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流管理中的客戶服務(wù)優(yōu)化
- 現(xiàn)代醫(yī)療辦公環(huán)境的電氣化改造
- 國(guó)慶節(jié)包廂套餐活動(dòng)方案
- 2024年五年級(jí)品社下冊(cè)《祖國(guó)不會(huì)忘記他們》說課稿 山東版
- 2023二年級(jí)數(shù)學(xué)上冊(cè) 6 表內(nèi)乘法(二)綜合與實(shí)踐 量一量比一比說課稿 新人教版
- 1 北京的春節(jié) 說課稿-2023-2024學(xué)年語(yǔ)文六年級(jí)下冊(cè)統(tǒng)編版
- 9《生活離不開他們》 感謝他們的勞動(dòng) 說課稿-2023-2024學(xué)年道德與法治四年級(jí)下冊(cè)統(tǒng)編版
- Unit 2 Weather Lesson 1(說課稿設(shè)計(jì))-2023-2024學(xué)年人教新起點(diǎn)版英語(yǔ)二年級(jí)下冊(cè)001
- 2024年高中英語(yǔ) Unit 3 Welcome to the unit and reading I說課稿 牛津譯林版選擇性必修第二冊(cè)
- 2024-2025學(xué)年高中歷史 第五單元 經(jīng)濟(jì)全球化的趨勢(shì) 第26課 經(jīng)濟(jì)全球化的趨勢(shì)(1)教學(xué)說課稿 岳麓版必修2
- 工程公司總經(jīng)理年終總結(jié)
- 2024年海南省高考地理試卷(含答案)
- 【企業(yè)盈利能力探析的國(guó)內(nèi)外文獻(xiàn)綜述2400字】
- 三年級(jí)上冊(cè)數(shù)學(xué)口算題1000道帶答案
- 2024年知識(shí)競(jìng)賽-競(jìng)彩知識(shí)考試近5年真題集錦(頻考類試題)帶答案
- GB/T 44311-2024適老環(huán)境評(píng)估導(dǎo)則
- 蘇教版(2024新版)一年級(jí)上冊(cè)科學(xué)全冊(cè)教案教學(xué)設(shè)計(jì)
- 【長(zhǎng)安的荔枝中李善德的人物形象分析7800字(論文)】
- 期末綜合測(cè)試卷一(試題)-2023-2024學(xué)年一年級(jí)下冊(cè)數(shù)學(xué)滬教版
- QB/T 6019-2023 制漿造紙專業(yè)設(shè)備安裝工程施工質(zhì)量驗(yàn)收規(guī)范 (正式版)
- 江西警察學(xué)院治安學(xué)專業(yè)主干課程教學(xué)大綱 文檔
評(píng)論
0/150
提交評(píng)論