[陳發(fā)堂 主父文剛 童慶]
?
Nucleus PLUS操作系統(tǒng)在TMS320C81 68上的移植及TD-LTE中的應(yīng)用*
[陳發(fā)堂 主父文剛 童慶]
摘要
針對(duì)Nucleus PLUS 操作系統(tǒng)在ARM Cortex-A8架構(gòu)雙核處理器上的移植及在TD-LTE中的應(yīng)用問題,以TMS320C8168為例,從堆棧分配、中斷設(shè)置、任務(wù)調(diào)度等方面詳細(xì)介紹了Nucleus PLUS操作系統(tǒng)在TMS320C8168以及TD-LTE無線綜合測(cè)試儀上的移植,并根據(jù)無線綜合測(cè)試儀的設(shè)計(jì)要求,詳細(xì)介紹了Nucleus PLUS系統(tǒng)板級(jí)初始化、功能組件初始化、循環(huán)調(diào)度等在TD-LTE上的應(yīng)用。此移植具有較強(qiáng)的獨(dú)立性和穩(wěn)定性,在CCS5上編譯調(diào)試后通過了聯(lián)機(jī)驗(yàn)證,優(yōu)化了系統(tǒng)資源利用率,滿足TD-LTE無線終端中對(duì)原語跟蹤實(shí)時(shí)性與數(shù)據(jù)完整性的要求。
關(guān)鍵詞:Nucleus PLUS 操作系統(tǒng) 移植 TMS320C8168 TD-LTE
陳發(fā)堂
重慶郵電大學(xué)重慶市移動(dòng)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室。1999年畢業(yè)于北京郵電大學(xué)應(yīng)用數(shù)學(xué)專業(yè),獲碩士學(xué)位,研究員;主要從事TD-SCDMA移動(dòng)通信系統(tǒng)開發(fā)及TDLTE系統(tǒng)開發(fā)。
主父文剛
重慶郵電大學(xué)重慶市移動(dòng)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室。現(xiàn)為重慶郵電大學(xué)電子與通信工程在讀碩士研究生,主要從事移動(dòng)通信系統(tǒng)及嵌入式系統(tǒng)開發(fā)的研究。
童慶
重慶郵電大學(xué)重慶市移動(dòng)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室。在讀碩士研究生,研究方向:移動(dòng)通信、嵌入式系統(tǒng)。
Nucleus PLUS 操作系統(tǒng)是業(yè)界最受歡迎的、支持微處理器種類最多的實(shí)時(shí)多任務(wù)操作系統(tǒng)之一,其可拓展性與移植性很強(qiáng),目前基于ARM9與ARM11(Advanced RISC Machines)的關(guān)于Nucleus PLUS 操作系統(tǒng)移植的文獻(xiàn)有不少[1],但是基于ARM Cortex-A8處理器的移植較為缺乏,大都僅限于簡(jiǎn)單CPU的Nucleus PLUS 移植。本文在堆棧分配、中斷設(shè)置、任務(wù)調(diào)度等方面詳細(xì)介紹了Nucleus PLUS 操作系統(tǒng)在ARM Cortex-A8雙核處理器TMS320C8168以及TD-LTE無線綜合測(cè)試儀上的移植,并簡(jiǎn)單介紹了Nucleus PLUS 操作系統(tǒng)在TD-LTE無線綜合測(cè)試儀中的應(yīng)用。
Nucleus PLUS 基本架構(gòu)包括3部分,分別為板級(jí)初始化、功能組件及應(yīng)用初始化[2]。首先板級(jí)初始化為整個(gè)系統(tǒng)硬件平臺(tái)進(jìn)行必要的初始化,如堆棧分配、時(shí)鐘初始化等,在此基礎(chǔ)上終端驗(yàn)證系統(tǒng)才能針對(duì)Nucleus PLUS進(jìn)行組件初始化,組件初始化是應(yīng)用初始化的準(zhǔn)備和前提,當(dāng)在應(yīng)用初始化模塊中完成內(nèi)存配置、協(xié)議棧各層任務(wù)與系統(tǒng)高級(jí)中斷建立后系統(tǒng)便進(jìn)入到線程調(diào)度模塊,其中在內(nèi)存、任務(wù)及高級(jí)中斷的初始化中又要調(diào)用相應(yīng)功能組件及板級(jí)初始化接口。Nucleus PLUS 基本架構(gòu)如圖1所示。
圖1 Nucleus PLUS 基本架構(gòu)圖
由于板級(jí)初始化及任務(wù)調(diào)度部分由匯編語言開發(fā)且與底層平臺(tái)息息相關(guān),所以這兩部分是Nucleus PLUS 在TMS320C8168平臺(tái)上移植的主要工作之所在。
Nucleus PLUS 內(nèi)核在TMS320C8168上的移植主要是根據(jù)ARM Cortex-A8內(nèi)核特點(diǎn)[3,4]和Nucleus PLUS 基本構(gòu)成進(jìn)行的。移植的整體流程如圖2所示。
圖2 Nucleus PLUS 移植整體流程
3.1 板級(jí)初始化移植
無論是架構(gòu)組成還是功能實(shí)現(xiàn),板級(jí)初始化都是Nucleus PLUS 移植的第一步,該過程各功能與硬件平臺(tái)啟動(dòng)代碼所完成功能類似,主要完成與底層硬件相關(guān)的初始化配置。Nucleus PLUS板級(jí)初始化是通過INT_ Initialize函數(shù)來實(shí)現(xiàn)的,這是內(nèi)核最先被執(zhí)行的函數(shù)。INT_Initialize函數(shù)負(fù)責(zé)完成TMS320C8168對(duì)應(yīng)硬件的初始化,包括寄存器、系統(tǒng)堆棧、中斷向量表、全局的C數(shù)據(jù)元素和一些Nucleus PLUS變量等。INT_Initialize函數(shù)在int.s文件中定義。
板級(jí)初始化完成后,系統(tǒng)堆棧分配如圖所示。堆棧加載起始地址采用標(biāo)示符“|Image$$ZI$$Limit|”實(shí)現(xiàn),動(dòng)態(tài)識(shí)別文件存儲(chǔ)區(qū)域結(jié)束地址,避免系統(tǒng)運(yùn)行時(shí)破壞代碼區(qū);然后需要設(shè)置高級(jí)中斷堆棧區(qū)域,來支持定時(shí)器初始化;最后傳遞堆棧分配結(jié)束地址到應(yīng)用初始化模塊,方便動(dòng)態(tài)分配內(nèi)存池[5,6];
圖 3堆棧分配示意圖及堆棧結(jié)構(gòu)圖
3.2 功能組件模塊初始化移植
Nucleus PLUS提供的各功能組件包括通用服務(wù)組件、初始化組件、任務(wù)組件、內(nèi)存組件、進(jìn)程通信組件、中斷處理組件、歷史組件、錯(cuò)誤處理組件、輸入/輸出組件、許可證組件和版本控制組件等,這些組件在源代碼方面主要由幾個(gè)獨(dú)立文件構(gòu)成,如表1所示。
在執(zhí)行完板級(jí)初始化函數(shù)之后,系統(tǒng)會(huì)自動(dòng)進(jìn)入功能組件模塊初始化,開始執(zhí)行INC_Initialize函數(shù)。這里需要注意的是,控制權(quán)將不會(huì)再回到INT_Initialize函數(shù)。INC_Initialize函數(shù)完成Nucleus PLUS各個(gè)功能組件的初始化工作。INC_Initialize函數(shù)在初始化過程中給這些模塊設(shè)計(jì)到的全局變量賦空值。
表1 Nucleus PLUS 組件構(gòu)成及意義
3.3 應(yīng)用程序初始化
在Nucleus PLUS所有組件都初始化完成后,INC_ Initialize調(diào)用一個(gè)名為Application_Initialize的函數(shù)。Application_Initialize函數(shù)是開發(fā)人員自定義函數(shù),主要負(fù)責(zé)配置應(yīng)用環(huán)境、事件集、內(nèi)存池、郵箱、隊(duì)列、管道、信號(hào)量等。其中,NU_Create_Memory_Pool函數(shù)用于創(chuàng)建系統(tǒng)內(nèi)存池,分配任務(wù)堆棧,隊(duì)列區(qū)域等;NU_Allocate_Memory函數(shù)用于創(chuàng)建任務(wù)。NU_Create_ Semaphore 函數(shù)用于創(chuàng)建同步信號(hào)量;
NU_Create_Event_Group 函數(shù)創(chuàng)建事件標(biāo)志集。
Application_Initialize函數(shù)執(zhí)行完畢之后,INC_ Initialize函數(shù)就會(huì)調(diào)用TCT_Schedule函數(shù)開始初始化任務(wù)調(diào)度表。
3.4 高級(jí)中斷部分移植
高級(jí)中斷相關(guān)部分的移植是Nucleus PLUS移植的另一個(gè)重要部分。當(dāng)系統(tǒng)產(chǎn)生中斷之后,處理器進(jìn)入中斷處理模式,在這種模式下,后來的中斷會(huì)被屏蔽。在中斷處理時(shí)間比較短的情況,對(duì)系統(tǒng)的響應(yīng)速度不會(huì)造成太大的損害。如果中斷處理程序需要運(yùn)行很長(zhǎng)時(shí)間,就會(huì)嚴(yán)重地影響系統(tǒng)的實(shí)時(shí)性能,更有甚者會(huì)影響系統(tǒng)的穩(wěn)定運(yùn)行。Nucleus PLUS引入了高級(jí)中斷服務(wù)HISR來解決這個(gè)問題,將中斷服務(wù)程序?qū)?yīng)的高級(jí)中斷激活,在高級(jí)終端處理程序中處理數(shù)據(jù),這樣就可以在不影響系統(tǒng)實(shí)時(shí)性的同時(shí)使系統(tǒng)可以及時(shí)的響應(yīng)下一次的中斷。
中斷觸發(fā)之后,Nucleus PLUS首先會(huì)保存ARM各個(gè)寄存器和處理器目前的狀態(tài)堆棧,然后調(diào)用TCT_ Interrupt_Context_Save系統(tǒng)調(diào)用來保護(hù)上下文。在保護(hù)現(xiàn)場(chǎng)的同時(shí),Nucleus PLUS會(huì)檢查是否有嵌套中斷,若存在,則不允許響應(yīng)中斷。為了防止發(fā)生用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)的越界異常,Nucleus PLUS還會(huì)對(duì)堆棧是否越界進(jìn)行判斷。為此,需要對(duì)Nucleus PLUS內(nèi)核此部分內(nèi)容進(jìn)行優(yōu)化,使系統(tǒng)在發(fā)生堆棧越界的時(shí)候進(jìn)入死循環(huán),以便可以快速地判斷錯(cuò)誤發(fā)生的地方。做好這些之后,Nucleus PLUS會(huì)進(jìn)入到中斷向量表,通過查詢中斷號(hào)來選擇需要選擇正確的服務(wù)程序。為了提高中斷的響應(yīng)速度,一般中斷處理程序的代碼量都很少,有些甚至是直接激活一個(gè)高級(jí)中斷就完成了。
在HISR被激活后,中斷處理函數(shù)調(diào)用TCT_ Interrupt_Context_Restore系統(tǒng)調(diào)用來實(shí)現(xiàn)中斷的返回。TCT_Interrupt_Context_Restore系統(tǒng)調(diào)用首先會(huì)判斷是否存在嵌套中斷,如果存在,那么就通過出棧來恢復(fù)各個(gè)寄存器返回值和被中斷的中斷進(jìn)程;如果不存在嵌套中斷,那么就需要判斷是否有線程被打斷,如果也沒有,那么TCT_Interrupt_Context_Restore系統(tǒng)調(diào)用就會(huì)通過任務(wù)調(diào)度模塊重新判斷是否有要執(zhí)行的任務(wù)或者高級(jí)中斷,并執(zhí)行之。
圖4 中斷處理詳細(xì)流程圖
TD-LTE終端驗(yàn)證系統(tǒng)以雙核處理器TMS320C8168及外圍設(shè)備為硬件平臺(tái),以移植后的Nucleus PLUS為軟件平臺(tái),對(duì)TD-LTE高層功能的實(shí)現(xiàn)提供高效穩(wěn)定的綜合運(yùn)行平臺(tái)。
4.1 TD-LTE協(xié)議棧層間通信
該平臺(tái)中,協(xié)議棧不同層所需完成的功能通過Nucleus PLUS任務(wù)組件來實(shí)現(xiàn),而且協(xié)議棧各層以及與物理層之間通過Nucleus PLUS線程通信組件實(shí)現(xiàn)兩兩之間的數(shù)據(jù)交互,線程間通信如圖5所示。
圖5 任務(wù)間通信軟硬件綜合平臺(tái)上的實(shí)現(xiàn)
協(xié)議棧各層諸如P-GW和S-GW、S-GW和ESM、ESM和EMM、EMM和RRC層、RRC層和PDCP層、PDCP層和RLC層、RLC層和MAC層等相鄰層之間都有數(shù)據(jù)交互,這些數(shù)據(jù)交互通過Nucleus PLUS提供的消息隊(duì)列機(jī)制實(shí)現(xiàn)。除此之外,P-GW和應(yīng)用平臺(tái)以及MAC和PHY物理層之間通過共享存儲(chǔ)區(qū)完成消息的交互,如數(shù)據(jù)原語、控制原語及幀消息等。
TD-LTE射頻測(cè)試終端驗(yàn)證系統(tǒng)協(xié)議棧以任務(wù)的形式完成對(duì)數(shù)據(jù)的處理,協(xié)議棧各層及物理層之間數(shù)據(jù)交互通過消息隊(duì)列實(shí)現(xiàn)。
4.2 TD-LTE任務(wù)調(diào)度流程
Nucleus PLUS操作系統(tǒng)在任務(wù)調(diào)度時(shí)首先調(diào)度已激活的高優(yōu)先級(jí)HISR或者任務(wù),對(duì)處于同一優(yōu)先級(jí)的HISR或者任務(wù)則按照創(chuàng)建順序而調(diào)度[7]。由終端驗(yàn)證系統(tǒng)功能需求出發(fā),最終確定的協(xié)議棧各層任務(wù)優(yōu)先級(jí)配置為: PDCP層任務(wù)>RRC層任務(wù)>EMM層任務(wù)>ESM層任務(wù)>S-GW層任務(wù)??紤]到終端驗(yàn)證系統(tǒng)實(shí)時(shí)性需求,包括高級(jí)中斷在內(nèi)的各功能執(zhí)行實(shí)體都允許被搶占。任務(wù)流程如圖6所示。
圖6 任務(wù)調(diào)度流程
從圖6可以看出,當(dāng)終端驗(yàn)證系統(tǒng)開機(jī)后,系統(tǒng)軟硬件平臺(tái)開始初始化然后進(jìn)入任務(wù)調(diào)度階段,根據(jù)優(yōu)先級(jí)首先調(diào)度MAC層任務(wù),在MAC層任務(wù)中從MAC隊(duì)列讀取消息,由于該隊(duì)列為空,所以MAC層任務(wù)被掛起然后系統(tǒng)進(jìn)入任務(wù)調(diào)度并再次掃描就緒任務(wù)優(yōu)先級(jí)列表,掃描到次優(yōu)先級(jí)的RLC任務(wù)后處理流程與MAC層類似,也是通過從RLC空隊(duì)列讀取數(shù)據(jù)掛起RLC任務(wù),協(xié)議棧各層任務(wù)依次運(yùn)行并逐層掛起,直到應(yīng)用平臺(tái)通過高級(jí)中斷配送原語向協(xié)議棧隊(duì)列發(fā)送數(shù)據(jù)后各任務(wù)才被重新激活。
本文在堆棧分配、中斷設(shè)置、任務(wù)調(diào)度等方面詳細(xì)介紹了Nucleus PLUS操作系統(tǒng)在ARM Cortex-A8 架構(gòu)雙核處理器TMS320C8168以及TD-LTE無線綜合測(cè)試儀上的移植,并簡(jiǎn)單介紹了Nucleus PLUS操作系統(tǒng)在TDLTE無線綜合測(cè)試儀中的應(yīng)用。在操作系統(tǒng)移植時(shí),不僅需要實(shí)現(xiàn)硬件平臺(tái)的初始化工作,還需考慮系統(tǒng)的整體性能與執(zhí)行效率。移植后在CCS5上編譯調(diào)試,并通過測(cè)試板驗(yàn)證和聯(lián)機(jī)驗(yàn)證,運(yùn)行結(jié)果和理論值一致。此移植具有較強(qiáng)的獨(dú)立性和穩(wěn)定性,優(yōu)化了系統(tǒng)系統(tǒng)資源利用率,實(shí)現(xiàn)了任務(wù)中斷與任務(wù)調(diào)度的高強(qiáng)度反復(fù)穩(wěn)定運(yùn)行,滿足國家科技重大專項(xiàng)項(xiàng)目“TD-LTE無線終端綜合測(cè)試儀表”調(diào)試中對(duì)原語跟蹤實(shí)時(shí)性與數(shù)據(jù)完整性的要求并應(yīng)用于其中。
參考文獻(xiàn)
1鄒洋; 李琳皓; 梁峰 .Nucleus操作系統(tǒng)在ARM11上的移植研究與實(shí)現(xiàn) [J].電子設(shè)計(jì)應(yīng)用2014,40:10-13
2道理.Nucleus體系結(jié)構(gòu)分析及應(yīng)用研究[D].中南大學(xué),2007
3杜春雷.ARM體系結(jié)構(gòu)與編程[M].清華大學(xué)出版社.2003,2
4Texas Instruments Inc. TMS320DM816x DaVinci Video Processors Technical Reference Manual [EB/OL].[2015-1-26]. http:// www.ti.com/lit/ug/sprugx 8b/sprugx8b.pdf
5Jaesoo Lee, Jiyong Park, Seongsoo Hong. Memory Footprint Reduction with Quasi-Static Shared Libraries in MMU-less Embedded Systems[C]. Real-Time and Embedded Technology and Applications, 2006. Proceedings of the 12th IEEE. 2006 , Page(s): 24 - 36
6陳安地;李小文;梁峰.Nucleus操作系統(tǒng)內(nèi)存池模塊移植的研究與應(yīng)用[J].電子設(shè)計(jì)應(yīng)用2014,40:10-13
7段亞林;謝永斌,基于Nucleus的通信終端中AT指令模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制. 2015 , 11:16-19
簡(jiǎn)訊
藍(lán)汛ChinaCache宣布藍(lán)汛欣潤(rùn)及河南中孚成立合資公司
藍(lán)汛國際控股有限公司,一家中國領(lǐng)先的互聯(lián)網(wǎng)內(nèi)容傳輸服務(wù)整體解決方案提供商,公告其控股40%的藍(lán)汛欣潤(rùn)科技(北京)有限公司和河南中孚實(shí)業(yè)有限公司已經(jīng)簽約合資成立河南中孚藍(lán)汛科技有限公司。中孚實(shí)業(yè)是家在上交所上市的擁有煤炭、電力和鋁精深加工完整產(chǎn)業(yè)鏈的企業(yè)。中孚實(shí)業(yè)占合資公司85%的股權(quán);藍(lán)汛欣潤(rùn)占15%。
合資企業(yè)的目的是充分利用河南省鞏義市低成本的土地和電力資源來開發(fā)互聯(lián)網(wǎng)數(shù)據(jù)中心,以滿足當(dāng)?shù)爻掷m(xù)增長(zhǎng)的對(duì)互聯(lián)網(wǎng)數(shù)據(jù)中心服務(wù)的需求。中孚實(shí)業(yè)將提供土地,電力和絕大部分資金,藍(lán)汛欣潤(rùn)主要提供項(xiàng)目開發(fā)和數(shù)據(jù)中心的技術(shù), 運(yùn)維服務(wù)。中孚實(shí)業(yè)預(yù)期在2016年下半年通過發(fā)行普通股來給項(xiàng)目提供資金。
王松,藍(lán)汛國際控股CEO和董事長(zhǎng),評(píng)論說 : “我們很高興與中孚實(shí)業(yè)共同在河南省開發(fā)具有競(jìng)爭(zhēng)力的大規(guī)模高效率的數(shù)據(jù)中心。我們的目標(biāo)是建設(shè)中國第一家覆蓋全國的數(shù)據(jù)中心網(wǎng)絡(luò),通過藍(lán)汛在全國的互聯(lián)網(wǎng)交換中心,實(shí)現(xiàn)和全國所有的ISP,內(nèi)容提供商和寬帶接入服務(wù)商互聯(lián),而計(jì)劃在河南省建設(shè)的數(shù)據(jù)中心是該戰(zhàn)略的一部分。我們相信,藍(lán)汛多年的CDN行業(yè)經(jīng)驗(yàn)和數(shù)據(jù)中心網(wǎng)絡(luò)戰(zhàn)略能使我們?yōu)橛脩籼峁┙艹龅漠a(chǎn)品和服務(wù)。此外,該項(xiàng)目將幫助傳統(tǒng)行業(yè)消化過剩產(chǎn)能,幫助企業(yè)實(shí)現(xiàn)戰(zhàn)略轉(zhuǎn)型。最后,新的數(shù)據(jù)中心將充分利用冷 、 熱 、 電資源,提高電廠能源利用率,在當(dāng)?shù)亟ㄔO(shè)一個(gè)綠色環(huán)保項(xiàng)目示范中心?!?/p>
DOI:10.3969/j.issn.1006-6403.2016.02.009 10.3969/j.issn.1006-6403.2016.02.007
收稿日期:(2015-11-15)
基金項(xiàng)目:國家科技重大專項(xiàng)基金資助項(xiàng)目(2011ZX03001-003-01)