999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

μC/OS-Ⅱ在TMS320VC33上的移植和應用

2008-04-12 00:00:00黃楊明吳美平
現代電子技術 2008年2期

摘 要:對實時嵌入式操作系統μC/OS-Ⅱ在TI公司的TMS320VC33芯片上的移植和應用做了具體的討論和研究。在數字信號處理器(Digital Signal Processor,DSP)芯片上移植實時操作系統,更加充分地發揮DSP的強大數字信號處理功能,并進一步降低DSP軟件開發難度,提高了軟件的可靠性。介紹實時嵌入式操作系統μC/OS-Ⅱ,分析他在TMS320VC33上移植的具體步驟,詳細討論了任務的劃分、管理和同步,對DSP的操作系統移植有實際的指導作用和參考價值。

關鍵詞:μC/OS-Ⅱ;TMS320VC33;嵌入式系統;導航

中圖分類號:TP368.1 文獻標識碼:B 文章編號:1004-373X(2008)02-022-03

Application and Transplant of μC/OS-Ⅱ on TMS320VC33

HUANG Yangming,LI Tao,WU Meiping

(College of Mechatronics Engineering and Automation,National University of Defense Technology,Changsha,410073,China)

Abstract:This paper gives a detail introduction and research of the transplant of real-time embedded operation system μC/OS-Ⅱ on digital signal processor TMS320VC33 which is produced by TI Company.The transplant of real-time embedded operation system on DSP(Digital Signal Processor) enables more powerful ability on digital signal processing.Moreover,it makes the software developing easier andraises the reliablity of software.It makes an analysis on the procedure of transplant of μC/OS-II on VC33 in detail and has a discussion of partition,management and synchronization of the tasks.It is of practical instruction and reference.

Keywords:μC/OS-Ⅱ;TMS320VC33;embedded system;navigation

1 引 言

嵌入式實時操作系統改變了以往嵌入式編程的模式,從編寫完整的系統到具體的每個任務,缺少實時操作系統支持的嵌入式編程是一種就事論事的行為,工作量繁雜且重復勞動多,可維護性差。嵌入式操作系統下的嵌入式軟件開發快速、高效、條理清晰,可靠性高。在這種模式下,編程人員編寫一個程序沒有必要訪問系統的硬件,實時嵌入式操作系統就像是Window操作系統一樣,對底層的硬件操作進行了完好的封裝,這對于程序的設計與實現帶來很大的好處。在某些特殊的場合,這種模式往往還是必須的,特別是大型的軍用軟件,更應該使用實時嵌入式操作系統下編程的模式。 

2 μC/OS-Ⅱ介紹

μC/OS-Ⅱ是一個免費的源碼開放的實時多任務嵌入式操作系統,運行在嵌入式硬件平臺上,對整個系統及其所操作的部件、裝置等資源進行統一協調、指揮和控制。他的主要特點是微型化、可裁減性強、實時性強、可靠性高、移植性好。他能使嵌入式系統及時響應外部事件的請求,并能及時控制所有實時設備與實時任務協調運行,且能在一個規定的時間內完成對事件的處理。每個任務都有對應的惟一的優先級來表示他獲得CPU的權力。

為了保證可靠的實時性,作為任務切換的調度器在進行任務切換的時間是固定的,即調度器進行任務切換所用的時間不能受應用程序中其他因素的影響。

μC/OS-Ⅱ是用C語言和匯編語言編寫的,其中絕大部分代碼都是C語言編寫的,只有極少部分與處理器密切相關的代碼是用匯編語言編寫的。他構思巧妙、結構簡潔精煉、可讀性強,同時具備了實時操作系統的全部功能。他的體系結構為如圖1所示。

3 μC/OS-Ⅱ在VC33上的移植

采用TMS320VC33的高精度浮點DSP作為嵌入式導航系統的底層硬件能夠滿足導航任務的實時性,特別是實時的數據處理,大容量的數據輸入與輸出,參數解算和與外界的實時交互和通信。在移植的過程中需要修改與VC33處理器相關的操作系統文件代碼。

3.1 改寫文件OS_CPU.H

3.1.1 堆棧的增長方向

VC33的堆棧是從低地址向高地址增長的,所以堆棧增長方向的常數OS_STK_GROWTH應該為1。

#define OS_STK_GROWTH1

3.1.2 臨界段宏

設置臨界區的2個宏使用VC33的開中斷和關中斷來實現。設置臨界段的目的是在進入中斷程序之前的保護現場和退出中斷程序之后的恢復現場能夠安全可靠地進行,不受其他中斷和陷阱的干擾。

#define OS_ENTER_CRITICAL() ST=2880

#define OS_EXIT_CRITICAL()ST=0880

3.1.3 定義任務切換宏

任務切換由匯編語言編寫的函數OSCtxSW()實現,任務切換宏OS_TASK_SW()封裝了對任務切換函數OSCtxSw()的調用。

#define OS_TASK_SW()OSCtxSw()

3.1.4 定義數據類型

在VC33中,數據類型char,long,int,unsigned int,double,float都是32位數據,用一個機器字表示,long double是40位擴展精度的浮點數,為了能夠屏蔽底層硬件,定義應用程序中的數據類型。

typedef unsigned char BOOLEAN;

typedef unsigned char INT8U;

typedef signed char INT8S;

typedef unsigned int INT16U;

typedef signed int INT16S;

typedef unsigned long INT32U;

typedef signed long INT32S;

typedef float FLOAT

typedef double DOUBLE;

typedef long double LDOUBLE;

3.2 改寫文件OS_CPU.C

其主要是修改任務堆棧初始化程序OSTask-StkInit()。在函數中首先獲得堆棧的棧頂地址,然后按順序壓入初始數據值,任務的初始化參數值,任務的執行代碼地址,所有的VC33處理器的寄存器壓棧。寄存器的壓棧和出棧順序必須嚴格按照相應的順序。

void *OSTaskStkInit(

void(*task)(void*pd),void *pdata,

void *ptos,INT16U opt)

{

OS_STK *stk =(OS_STK *) ptos;

*stk = (OS_STK) pdata;

*++stk = (OS_STK) task;

*++stk = (OS_STK) 0x2000;

[XZ(90]…[XZ)]

}

3.3 任務設計

采用“分而治之”的方法,把大任務分成多個小任務,充分利用微處理器的運行時間,會大大提高系統的實時性,減少系統的等待時間。導航系統的任務可分為純慣導解算、組合導航解算、原始數據采集、衛星數據接收、數據發送、粗對準、精對準等。劃分任務的同時也為任務設置合適的優先級,關聯與任務相關的數據結構。因為全局變量多,因此需要設置事件同步各個任務。μC/OS-Ⅱ支持最多64個任務。

3.3.1 任務創建

創建任務的工作實質上是創建一個任務控制塊,創建的函數為OSTaskCreate()和OSTaskCreateExt(),但是必須保證在啟動任務函數OSStart()之前先創建一個任務。

3.3.2 任務管理

任務管理的主要工作是任務調度。根據任務就緒表中已經就緒的任務,查找出最高優先級的任務并獲取他的任務控制塊,獲取任務控制塊后進行舊任務堆棧保存和新任務堆棧初始化。為了正確可靠地切換任務需要把被中止任務的斷點指針保存到任務堆棧中,把通用寄存器的內容保存到任務堆棧中,把被中止任務的任務堆棧指針當前只保存到該任務的任務控制快的堆棧指針中,通過任務控制塊獲得待運行任務的任務堆棧指針,把待運行任務堆棧中通用寄存器的內容恢復到CPU的通用寄存器中,使CPU獲得待運行任務的斷點指針。

任務的刪除可以簡單地把要刪除的任務的任務控制塊返還給空任務控制塊列表。

3.4 任務間的同步

μC/OS-Ⅱ中任務的執行代碼、任務堆棧和任務控制塊的關系如圖2所示:

當前任務控制塊保存了任務的狀態,記錄任務的執行代碼地址和前后2個任務的執行代碼地址,要實現任務間的同步需要使用任務間的同步機制,如信號量、消息郵箱、消息隊列和信號量集。信號量用于對共享資源使用的維護,消息郵箱用于任務之間的數據傳送,消息隊列則是多個消息郵箱的集合,信號量集是多個信號量的與關系或者是或關系。在初始化階段,初始化定位完成后才執行初始化調平及其他對準工作,在初始化完成后才進行導航解算工作。導航解算需要接收到原始采樣數據的消息郵箱,即原始的慣性傳感器數據。導航系統的任務劃分如圖3所示。

3.5 容易疏忽的細節及處理

(1) 必須使用小模式;

(2) 參數傳遞采用堆棧方式;

(3) 注意VC33的2級中斷向量模式;

(4) 系統時鐘可以由定時器完成,也可以外接高精度的時鐘芯片如AT-51(12.000 MHz,HC49/4H的封裝)。允許內部鎖相環工作,系統時鐘為120 MHz,H1=60 MHz;

(5) μCOS-Ⅱ通過硬件中斷實現系統時鐘,并在時鐘中斷服務程序中處理與時間相關的問題。一般情況下使用硬件定時器作為時鐘中斷源,這個定時器可以是與微處理器集成的,也可以是分立的,定時中斷的頻率以10~100 Hz為宜。

4 VC33移植的步驟

如圖4所示,在VC33上的移植步驟為先在CCS4.1中建立VC33的工程,設置相關選項,采用RAM初始化方式,匯編語言和C語言混合編程模式;然后編寫源代碼或把已有的代碼加入到工程中,編譯、仿真;然后把.OUT文件導入到VC33中運行,確保程序正確無誤的前提下,執行燒寫。

5 結 語 

本文簡單介紹了嵌入式實時操作系統μCOS-Ⅱ,分析了他的體系結構,對μCOS-Ⅱ在TI公司的TMS320VC33上的移植做了分析,對具體的問題做了概括。應該指出對于TI公司6000系列的DSP產品,他有自帶的RTOS,則沒有必要使用μCOS-Ⅱ。而VC33是TI公司的主流浮點微處理器,在他上面移植實時操作系統有實際意義,對于軍事應用的安全、可靠、保密、維護等都有很好的應用前景。

參 考 文 獻

[1]Jean J.Labrosseu.μCOS-Ⅱ[CD2]源碼公開的實時嵌入式操作系統[M].北京:中國電力出版社,2001.

[2]TMS320C3x User′s Guide.ITexas Instruments,1997.

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 亚洲精品第五页| 亚洲视频免费在线| 精品福利网| www成人国产在线观看网站| 国产91高清视频| 国产成人免费视频精品一区二区| 91精选国产大片| 国产在线91在线电影| 好久久免费视频高清| 亚洲精品在线影院| 国产一在线观看| 免费国产福利| 高清国产va日韩亚洲免费午夜电影| 亚洲精品无码久久毛片波多野吉| 国产欧美日韩综合一区在线播放| 色亚洲成人| 全部无卡免费的毛片在线看| 免费一级成人毛片| 这里只有精品在线| 国产欧美视频在线| 一区二区自拍| 国产又大又粗又猛又爽的视频| 国产精品美女免费视频大全| 免费av一区二区三区在线| 亚洲熟妇AV日韩熟妇在线| 亚洲视频一区在线| 国产精品区网红主播在线观看| 久久综合成人| 久视频免费精品6| 一级毛片在线播放免费| 在线综合亚洲欧美网站| 91精品综合| 91在线一9|永久视频在线| 日本91视频| 国产香蕉在线视频| 国产精品视频第一专区| 在线看片中文字幕| 自拍亚洲欧美精品| 久久青青草原亚洲av无码| 亚洲国产精品人久久电影| 伊人AV天堂| 九色在线视频导航91| 国产99精品久久| 色偷偷av男人的天堂不卡| 成人福利免费在线观看| 国产哺乳奶水91在线播放| 日韩国产精品无码一区二区三区| 国产精品不卡永久免费| 亚洲日本韩在线观看| 欧美色99| 4虎影视国产在线观看精品| 久久精品国产在热久久2019| 波多野结衣在线se| 91久久大香线蕉| 国产美女免费| 久爱午夜精品免费视频| 青青青国产精品国产精品美女| 欧美伊人色综合久久天天| 青草91视频免费观看| 亚洲性影院| 九色综合伊人久久富二代| 美女无遮挡被啪啪到高潮免费| 欧美日本在线| 欧美午夜小视频| 国产精品毛片在线直播完整版| 3344在线观看无码| 国产日韩精品欧美一区喷| 色国产视频| 成人免费视频一区二区三区| 亚洲成a人片77777在线播放| 热久久国产| 伊在人亞洲香蕉精品區| 国产拍揄自揄精品视频网站| av一区二区无码在线| 亚洲视频欧美不卡| vvvv98国产成人综合青青| 国产一区自拍视频| 黄色福利在线| 国内精品自在自线视频香蕉| 99久久精品视香蕉蕉| 久久黄色毛片| 97视频免费看|