基于DSP的嵌入式實時操作系統(tǒng)的設計研究_第1頁
基于DSP的嵌入式實時操作系統(tǒng)的設計研究_第2頁
基于DSP的嵌入式實時操作系統(tǒng)的設計研究_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、基于DSP的嵌入式實時操作系統(tǒng)的設計研究    摘要:實時嵌入式操作系統(tǒng)的應用日益廣泛,本論文將DSP技術與嵌入式操作系統(tǒng)結合起來,分析探討了面向DSP內(nèi)核的嵌入式實時操作系統(tǒng)的設計,重點研究了嵌入式操作系統(tǒng)對DSP處理器內(nèi)核的移植,分析探討了移植的前提條件及修改問題,對于進一步提高面向DSP技術的嵌入式操作系統(tǒng)的研究應用具有一定借鑒意義。    關鍵詞:DSP設計;嵌入式系統(tǒng);實時操作系統(tǒng);內(nèi)核移植     1引言嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,軟硬件可剪裁,

2、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用性系統(tǒng),嵌入式系統(tǒng)的核心是嵌入式操作系統(tǒng),嵌入式操作系統(tǒng)可以統(tǒng)稱為應用在嵌入式系統(tǒng)的操作系統(tǒng),它具有一般操作系統(tǒng)的功能,同時具有嵌入式軟件的特點。本論文將采用DSP設計技術對嵌入式操作系統(tǒng)進行設計,主要方法是將目前常用的實時嵌入式操作系統(tǒng)移植到具有嵌入式操作系統(tǒng)內(nèi)核的DSP處理器上,以期從中找到能夠可供借鑒或指導的有效的實時嵌入式操作系統(tǒng)的設計方法,并和廣大同行分享。2嵌入式處理器內(nèi)核的分析2.1 嵌入式操作系統(tǒng)選擇C/OS-II是源代碼公開的嵌入式實時內(nèi)核,提供多任務調(diào)度與管理、時間管理、任務間同步與通信、內(nèi)存管理及中斷服務等

3、功能。自1992年誕生以來,C/OS-II己經(jīng)被廣泛地應用于各種嵌入式系統(tǒng)。2.2 DSP嵌入式處理器內(nèi)核分析要開發(fā)基于DSP的嵌入式實時操作系統(tǒng),選擇合適的嵌入式DSP芯片至關重要。本文選用了S3C44B0X嵌入式處理器。本實驗是在英培特公司推出的Embest EDUKIT-III型開發(fā)板上進行的。Embest EDUKIT-III型開發(fā)板是一款基于Samsung公司的S3C44BOX處理器(ARM7TDMI)的全功能ARM開發(fā)板。硬件系統(tǒng)包含了嵌入式系統(tǒng)開發(fā)應用所需的大部分設備,如串口、以太網(wǎng)口、USB口、音頻輸出、LCD及TSP觸摸屏、5*4的小鍵盤、固態(tài)硬盤、大容量的Flash和SOR

4、AM等等。S3C44B0X是16/32位的RISC(Reduced Instruction Set Computer)處理器。它為手持設備和一般類型應用提供了高性價比和高性能的微控制器解決方案。為了降低成本,S3C44BOX提供了豐富的內(nèi)置部件,包括:8KB cache,內(nèi)部SRAM,LCD控制器,帶自動握手的2通道UART,4通道DMA,系統(tǒng)管理器,代用PWM功能的5通道定制器,F(xiàn)O端口,RTC,8通道10位ADC,IIC-BUS接口,IIS-BUS接口,同步SIO接口和PLL倍頻器。S3C44B0X采用的是ARM7TDMI內(nèi)核。3嵌入式實時操作系統(tǒng)的移植3.1 移植的前提條件分析要使C/O

5、S-II正常運行,處理器必須滿足以下要求:(1) 處理器的C編譯器能產(chǎn)生可重入代碼。(2) 用C語言就可以打開和關閉中斷。(3) 處理器支持中斷,并且能產(chǎn)生定時中斷(通常在10至100Hz之間)。(4) 處理器支持能夠容納一定量數(shù)據(jù)(可能是幾千字節(jié))的硬件堆棧。(5) 處理器有將堆棧指針和其它CPU寄存器讀出和存儲到堆?;騼?nèi)存中的指令。3.2 C/OS-II中需要修改的代碼由于C/OS-II為開源軟件,我們可以很輕松的獲得其初始源代碼。然后根據(jù)移植的需要進行修改和移植。(1) OS_CPU.H中需要針對具體處理器的字長重新定義一系列數(shù)據(jù)類型。C/OS-II自己定義了一套數(shù)據(jù)類型,如INT16U

6、表示16位無符號整型,對于ARM這樣的32位內(nèi)核,INT16U是unsigned short型,如果是16位的處理器,則是unsigned int型。(2) OS_CPU.H中需要聲明幾個用于開關中斷和任務切換的宏。OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL():這兩個宏用來禁止和允許中斷。OS_TASK_SW():這個宏是C/OS-II從低優(yōu)先級任務切換到高優(yōu)先級任務時的調(diào)用。與別的實時內(nèi)核一樣,C/OS-II也需要在來訪問臨界段代碼之前關中斷,完成后再開中斷。實際上開關中斷的方式有三種。第一種是OS_CRITICAL_METHOD=1的情況,這種方法非常的簡單

7、,就是直接使用處理器指令CLI來關中斷,STI來開中斷。第二中方法是OS_CRITICAL_ METHOD=2的情況,這種方法時將元中斷狀態(tài)保存到堆棧中然后關中斷,在開中斷之前再處理器寄存器原來的內(nèi)容進行恢復。第三種方法是OS_CRITICAL_METH OD=3的情況,這種方法是寫一個函數(shù)將CPU的狀態(tài)寄存器保存到局部變量中,OS_EXIT_CRITICAL()通過調(diào)用另一個函數(shù),從這個局部變量中恢復寄存器,我們使用的這兩個函數(shù)分別為OSCPUSave SR()和OSCPURestoreSR()。(3) OS_CPU.H中需要設置一個常量來標識堆棧增長方向。在C/OS-II中,用OS_STK

8、_GROWTH來設置堆棧的增長方向#define OS_STK_GROWT H l;/堆棧從高地址向低地址增長#define OS_STK_GROWTH 0;/堆棧從低地址向高地址增長在實驗中,我們定義#define OS_STK_GROWTH 1,即堆棧從高地址向低地址增長,這與在80X86中一樣。(4) 定義OS_TASK_SW宏。OS_TASK_SW宏是uC/OS-II從低優(yōu)先級任務切換到高優(yōu)先級任務時的調(diào)用,可以采用下面兩種方式定義:如果處理器支持軟中斷,可以使用軟中斷將中斷向量指向OSC txSw函數(shù);或者直接調(diào)用OSC rxSw函數(shù)。3.3 C/OS-II移植結構所謂移植,就是使一

9、個實時內(nèi)核能在某個微處理器或微控制器上運行。為了方便移植,大部分的uC/OS-II代碼是用C語言寫的,但仍需要用C和匯編語言一些與處理器相關的代碼,這是因為uC/OS-II在讀寫處理器寄存器時只能通過匯編語言來實現(xiàn)。具體移植結果及移植過程設計如下:(1) INCLLJDE.H頭文件的移植INCLLJDE.H是一個主頭文件。在這個主頭文件中包含工程所需的其他文件的頭文件,這就使工程項目中其他C文件無須分別考慮它實際上需要哪些頭文件,它增強了代碼的可移植性。使用INCLLJDE.H的缺點是,它可能包含一些與當前需要編譯的C文件實際上不相干的頭文件,這意味著每個文件的編譯時間都可能增加。INCLLJDEH主頭文件與具體移植沒有關系,但它是必備文件,本系統(tǒng)在CCS2.0環(huán)境下,INCLLJDE.H文件的內(nèi)容,注意其排列順序。(2) OS_CPU.h頭文件的移植為了更方便移植uC/OS-II嵌入式操作系統(tǒng),內(nèi)核

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論