国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Ti6678 DSP的最小化OS適配設(shè)計(jì)與實(shí)現(xiàn)

2020-07-20 05:55:14董延軍
無(wú)線互聯(lián)科技 2020年9期
關(guān)鍵詞:寄存器中斷內(nèi)存

董延軍,曹 原,項(xiàng) 濤

(航空工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710065)

1 關(guān)于操作系統(tǒng)的概述

早期的數(shù)字信號(hào)處理(Digital Signal Processing,DSP)資源少、功能單一、運(yùn)行的應(yīng)用程序規(guī)模小,不足以支撐也不需要運(yùn)行操作系統(tǒng),簡(jiǎn)單的控制程序就可以實(shí)現(xiàn)相應(yīng)的功能。隨著DSP硬件的功能越來越多,性能越來越強(qiáng),應(yīng)用軟件功能變得復(fù)雜、規(guī)模變大、跨DSP移植性需求變強(qiáng)烈,構(gòu)建DSP的操作系統(tǒng)就有了實(shí)際價(jià)值。Ti6678 DSP是德州儀器公司基于其KeyStone架構(gòu)的8核浮點(diǎn)型處理器,單核運(yùn)行頻率達(dá)1.2 GHz,是當(dāng)前最為先進(jìn)的DSP芯片。操作系統(tǒng)是系統(tǒng)資源的管理者,隔離了底層的硬件差異,向應(yīng)用提供了統(tǒng)一的與硬件無(wú)關(guān)的功能接口。最基本的操作系統(tǒng)應(yīng)該具有多任務(wù)、任務(wù)間通信、存儲(chǔ)管理、Cache管理等,在這之下需要基本硬件驅(qū)動(dòng)的支持,下面將從這些方面逐層介紹。

2 基本硬件驅(qū)動(dòng)設(shè)計(jì)

操作系統(tǒng)對(duì)于底層硬件的依賴,通過稱為板級(jí)支持包(Board Support Package,BSP)的軟件進(jìn)行了屏蔽,BSP對(duì)下實(shí)現(xiàn)各種不同硬件的具體操作,對(duì)上為操作系統(tǒng)提供統(tǒng)一的不變的操作接口,保持了操作系統(tǒng)的獨(dú)立性。一般的BSP至少包含了串口、網(wǎng)卡、時(shí)鐘、中斷控制器、Flash幾類基本驅(qū)動(dòng),串口實(shí)現(xiàn)了打印輸出,網(wǎng)卡實(shí)現(xiàn)了調(diào)試通信通路,時(shí)鐘是基本內(nèi)核定時(shí)和切換的時(shí)間基準(zhǔn)來源,中斷控制器實(shí)現(xiàn)多種中斷的管理,F(xiàn)lash實(shí)現(xiàn)程序的固化運(yùn)行。

Ti6678 DSP上實(shí)現(xiàn)最小運(yùn)行的操作系統(tǒng)(Operating system,OS),可在這個(gè)基礎(chǔ)上進(jìn)一步簡(jiǎn)化,調(diào)試環(huán)境借助Ti公司提供的控制及計(jì)算系統(tǒng)(Control and Computation System,CCS),該集成開發(fā)環(huán)境可以實(shí)現(xiàn)編輯、編譯、調(diào)試、運(yùn)行等功能,具體嵌入式操作系統(tǒng)配套的開發(fā)環(huán)境和編譯器可以暫不實(shí)現(xiàn)集成;調(diào)試輸出顯示借助CCS的虛擬終端、串口驅(qū)動(dòng)可以暫不實(shí)現(xiàn);調(diào)試使用USB接口的仿真器,網(wǎng)絡(luò)驅(qū)動(dòng)可以暫不實(shí)現(xiàn);固化借助CCS自帶的燒寫方式,F(xiàn)lash驅(qū)動(dòng)可以暫不實(shí)現(xiàn)。所以只剩下中斷控制器和時(shí)鐘兩種驅(qū)動(dòng)的實(shí)現(xiàn)。以Ti公司提供的庫(kù)函數(shù)(Chip Support Library,CSL)庫(kù)為基礎(chǔ)進(jìn)行改造,封裝為符合具體操作系統(tǒng)要求的操作接口,進(jìn)行中斷控制器的初始化,中斷線使能、時(shí)鐘初始化、時(shí)鐘中斷處理等,為最小化OS的運(yùn)行提供基本運(yùn)行環(huán)境支持,并提供維持運(yùn)行的基準(zhǔn)時(shí)鐘來源。

3 操作系統(tǒng)功能裁剪

完整的嵌入式操作系統(tǒng)在基本內(nèi)核的基礎(chǔ)上,具有任務(wù)管理、任務(wù)間通信、內(nèi)存管理、中斷/異常管理、定時(shí)器管理以及調(diào)試代理、通信管理、加載程序管理等功能,還可能包括多核間通信組件[1],如圖1所示。

圖1 操作系統(tǒng)基本功能模塊

在完整的操作系統(tǒng)功能上進(jìn)行裁剪,定義出最小操作系統(tǒng)的功能,主要實(shí)現(xiàn)包括圖1中陰影部分所示的5個(gè)基本單元任務(wù)管理、任務(wù)間通信、內(nèi)存管理、時(shí)鐘/定時(shí)器管理、運(yùn)行時(shí)庫(kù)。這些模塊包含了以下主要功能:

(1)多任務(wù)支持,支持多任務(wù)并發(fā)執(zhí)行,實(shí)現(xiàn)對(duì)任務(wù)的創(chuàng)建、啟動(dòng)、掛起、刪除等操作。(2)任務(wù)調(diào)度,通過優(yōu)先級(jí)可搶占調(diào)度機(jī)制實(shí)現(xiàn)系統(tǒng)的強(qiáng)實(shí)時(shí)性;對(duì)同等優(yōu)先級(jí)任務(wù)可通過時(shí)間片輪轉(zhuǎn)實(shí)現(xiàn)均衡調(diào)度。(3)任務(wù)通信,提供機(jī)制實(shí)現(xiàn)任務(wù)間基本的通信、同步和互斥操作,包括信號(hào)量、環(huán)形緩沖。(4)內(nèi)存管理,DSP的內(nèi)存本身較小,整個(gè)系統(tǒng)運(yùn)行在實(shí)地址模式,所以內(nèi)存管理主要是管理有限的堆棧資源,使得應(yīng)用可以使用標(biāo)準(zhǔn)C接口申請(qǐng)、釋放內(nèi)存。(5)服務(wù)接口,是應(yīng)用感知操作系統(tǒng)存在媒介,提供覆蓋操作系統(tǒng)各類功能的服務(wù)接口,使得應(yīng)用程序保持獨(dú)立性,方便維護(hù)及跨平臺(tái)移植。

4 任務(wù)上下文切換設(shè)計(jì)

任務(wù)切換上下文是操作系統(tǒng)適配特定硬件平臺(tái)重要的方面,也是最小系統(tǒng)運(yùn)行最為關(guān)鍵的工作。任務(wù)上下文的結(jié)構(gòu)該如何設(shè)計(jì)、切換的時(shí)候應(yīng)該切換哪些內(nèi)容,都是跟硬件設(shè)計(jì)密切相關(guān)的問題。在Ti6678中,一共包含了A,B兩組各32個(gè)32位的通用寄存器,可以作為64個(gè)32位寄存器,也可以作為32個(gè)64位寄存器,還可以作為16個(gè)128位的寄存器,在文章設(shè)計(jì)的最小系統(tǒng)中將把寄存器看作是64個(gè)獨(dú)立的32位寄存器使用。根據(jù)TiC6000的EABI手冊(cè),其中A4,A5作為函數(shù)調(diào)用時(shí)的第一個(gè)參數(shù)寄存器,同時(shí)作為函數(shù)返回值寄存器,B4,B5為第二個(gè)參數(shù)寄存器,依次類推,最多可以有傳遞10個(gè)參數(shù)。B15作為棧指針SP,據(jù)此設(shè)計(jì)出任務(wù)上下文切換結(jié)構(gòu),如下所示:

將所有的通用寄存器在上下文切換的時(shí)候都將進(jìn)行保存和恢復(fù),保存前驅(qū)任務(wù)上下文到任務(wù)棧中,恢復(fù)后繼任務(wù)的上下文到當(dāng)前的運(yùn)行棧。

5 固化運(yùn)行設(shè)計(jì)

嵌入式系統(tǒng)最終總是要固化運(yùn)行的,也是最小化OS適配設(shè)計(jì)的最后一步。為了最小化設(shè)計(jì)和具體工作,采用CCS環(huán)境中的norwriter6678燒寫工程,將最終的操作系統(tǒng)及應(yīng)用為一體的映像文件燒寫到外部存儲(chǔ)器接口(External Memory Interface,EMIF)的SPI Flash中,然后撥動(dòng)跳線至SPI啟動(dòng),重新上電完成啟動(dòng)。要特別注意,CCS中編譯生成的.out文件是不能直接燒寫的,必須進(jìn)行一系列的轉(zhuǎn)化生成符合要求的.dat文件[2],才可以燒寫到SPI Flash中。映像文件轉(zhuǎn)換過程如圖2所示。

圖2 映像文件的轉(zhuǎn)換過程

6 最小OS的驗(yàn)證

按照上述最小化系統(tǒng)的設(shè)計(jì),以μC/OS-II操作系統(tǒng)[3]為例,進(jìn)行功能裁剪和上下文切換的實(shí)現(xiàn)。在CCS6.1.3的環(huán)境下,將CSL、裁剪后的操作系統(tǒng)源碼編譯成靜態(tài)庫(kù)。然后創(chuàng)建main工程,構(gòu)建TASK1,TASK2兩個(gè)測(cè)試任務(wù),進(jìn)行編譯、鏈接,形成可下載運(yùn)行的main.out,使用Ti官方的6678EVM開發(fā)板,Blackhawk XDS560v2-USB仿真器進(jìn)行加載調(diào)試,在CCS的模擬終端循環(huán)打印信息,運(yùn)行結(jié)果如圖3所示,在固化方式運(yùn)行時(shí)借助LED點(diǎn)燈的方式表明兩個(gè)任務(wù)運(yùn)行正常。

圖3 測(cè)試運(yùn)行結(jié)果

7 結(jié)語(yǔ)

Ti6678是當(dāng)前性能最高、使用最為廣泛的DSP,也是能夠較好支撐操作系統(tǒng)運(yùn)行的主流DSP?,F(xiàn)在已經(jīng)出現(xiàn)多款DSP操作系統(tǒng),包括SYS/BIOS,Oseck等,要么比較龐大,要么價(jià)格昂貴,文章所述的最小化OS的設(shè)計(jì)與實(shí)現(xiàn),可實(shí)現(xiàn)調(diào)試和固化運(yùn)行,是一個(gè)完整的過程,適合于小型系統(tǒng)構(gòu)建者和DSP學(xué)習(xí)人員參考和實(shí)踐,規(guī)模小,運(yùn)行穩(wěn)定,出現(xiàn)問題易排查。

猜你喜歡
寄存器中斷內(nèi)存
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
“春夏秋冬”的內(nèi)存
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
分簇結(jié)構(gòu)向量寄存器分配策略研究*
基于內(nèi)存的地理信息訪問技術(shù)
AT89C51與中斷有關(guān)的寄存器功能表解
FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
一種可重構(gòu)線性反饋移位寄存器設(shè)計(jì)
清丰县| 陇川县| 东兰县| 金湖县| 泾阳县| 乌鲁木齐县| 汉源县| 德江县| 明溪县| 渑池县| 榆中县| 牟定县| 类乌齐县| 辽中县| 准格尔旗| 澄城县| 乌兰察布市| 武山县| 朝阳县| 平乡县| 寿宁县| 锡林浩特市| 敦化市| 阿城市| 黄大仙区| 丹寨县| 潮州市| 哈尔滨市| 云林县| 临邑县| 游戏| 淳化县| 荆州市| 扎鲁特旗| 崇信县| 辽源市| 梓潼县| 河西区| 西藏| 宽甸| 宜君县|