主頁(http://www.130131.com):基于ARM嵌入式的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(2)
OSIntCtxSw()在退出中斷服務(wù)函數(shù) OSIntExit()中調(diào)用,實(shí)現(xiàn)中斷級任務(wù)切換.由于是在中斷里調(diào)用,所以處理器的寄 存器入棧工作已經(jīng)做完,就不用作這部分工作了。具體完成的任務(wù);調(diào)整棧指針(因為調(diào)用 函數(shù)會使任務(wù)棧結(jié)構(gòu)與系統(tǒng)任務(wù)切換時堆棧標(biāo)準(zhǔn)結(jié)構(gòu)不一致),保存當(dāng)前任務(wù) SP,載入就緒 最高優(yōu)先級任務(wù)的 SP,恢復(fù)就緒最高優(yōu)先級任務(wù)的環(huán)境變量,中斷返回。這樣就完成了中斷 級任務(wù)切換。OSTickISR()系統(tǒng)時鐘節(jié)拍中斷服務(wù)函數(shù),這是一個周期性中斷,為內(nèi)核提供時鐘節(jié)拍。頻率越高系統(tǒng)負(fù)荷越重。其周期的大小決定了內(nèi)核所能給應(yīng)用系統(tǒng)提供的最小時 間間隔服務(wù)。一般只限于 ms 級(跟 MCU 有關(guān)),對于要求更加苛刻的任務(wù)需要用戶自己建立中 斷來解決.該函數(shù)具體內(nèi)容:保存寄存器(如果硬件自動完成就可以省略),調(diào) OSIntEnter(), 調(diào)用 OSTimeTick(),調(diào)用 OSIntExit(),恢復(fù)寄存器,中斷返回。 c) OS_CPU_C.C 該文件中共定義了 6 個函數(shù),但是最重要的是 OSTaskStkInit().其他都是對系統(tǒng)內(nèi)核的擴(kuò)展時用的.OSTaskStkInit()是在用戶建立任務(wù)時系統(tǒng)內(nèi)部自己調(diào)用的,對用戶任務(wù)的堆棧 進(jìn)行初始化。使建立好的進(jìn)入就緒態(tài)任務(wù)的堆棧與系統(tǒng)發(fā)生中斷并且將環(huán)境變量保存完畢時 的棧結(jié)構(gòu)一致。這樣就可以用中斷返回指令使就緒的任務(wù)運(yùn)行起來。 3.2.2與應(yīng)用相關(guān)的代碼 這部分包括兩個文件:OS_CFG.H, INCLUDES.H。 用戶根據(jù)自己的應(yīng)用系統(tǒng)來定制合適 的內(nèi)核服務(wù)功能。OS_CFG.H 來配置內(nèi)核,用戶根據(jù)需要對內(nèi)核進(jìn)行定制,留下需要的部 分,去掉不需要的部分,設(shè)置系統(tǒng)的基本情況。比如系統(tǒng)可提供的最大任務(wù)數(shù)量,是否定制 郵箱服務(wù),是否需要系統(tǒng)提供任務(wù)掛起功能,是否提供任務(wù)優(yōu)先級動態(tài)改變功能等等。 INCLUDES.H 系統(tǒng)頭文件,整個實(shí)時系統(tǒng)程序所需要的文件,包括了內(nèi)核和用戶的頭文件。 3.3用戶圖形接口 雖然 μC/OS-II 操作系統(tǒng)具有很高的實(shí)時性,但不像 WINCE、uCLinux 等操作系統(tǒng)那樣 有良好的圖形界面支持。所以,在使用液晶和觸摸屏的情況下需要移植用戶圖形接口程序。這里使用的是 μC/GUI。μC/GUI 是一個軟件模塊集合,通過該模塊可以在我們的嵌入式產(chǎn)品 中加入用戶圖形接口(GUI)。μC/GUI 具有很高的執(zhí)行效率,并且與處理器和 LCD 控制器相 獨(dú)立。該模塊可以工作在單任務(wù)或者多任務(wù)環(huán)境,可以支持不同大小的顯示方式。 通過 μC/GUI 我們可以很方便的在液晶屏繪制圖形和界面。如果需要多種字體支持,必 須自己將相應(yīng)的字體字庫加入到 μC/GUI 中。為了避免出現(xiàn)亂碼,盡量使用 GB2312 國標(biāo)字庫。 3.4關(guān)于字庫的兼容性問題 我們國內(nèi)通常使用的漢字字庫是 GB 碼,但國際上使用的是 UNICODE 碼 ,所以如果數(shù)據(jù)終端使用的是手機(jī)、PDA 等移動通信設(shè)備,那么在數(shù)據(jù)發(fā)送前必須進(jìn)行字碼轉(zhuǎn)換,即 GB 碼 轉(zhuǎn)換為 UNICODE 碼或者 UNICODE 碼轉(zhuǎn)換為 GB 碼。由于 GB 碼與 UNICODE 碼在排列組合上沒有任何規(guī)律,所以通常字碼轉(zhuǎn)換的方法就是 查表法。 4結(jié)束語 基于 arm9 嵌入式系統(tǒng)的遠(yuǎn)程監(jiān)控系統(tǒng)與以往的監(jiān)控系統(tǒng)不同,高性能的處理器芯片大 大提高了系統(tǒng)的性能。使監(jiān)控系統(tǒng)能夠工作在比較惡劣的環(huán)境中。并且在設(shè)計上充分考慮到 了系統(tǒng)的可擴(kuò)展性和兼容性問題,實(shí)現(xiàn)了本系統(tǒng)與其他系統(tǒng)的無縫連接。以滿足不同工作環(huán) 境的需要。
(中國集群通信網(wǎng) | 責(zé)任編輯:陳曉亮) |