新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM7嵌入式系統(tǒng)在車輛調(diào)度中的應(yīng)用范疇

ARM7嵌入式系統(tǒng)在車輛調(diào)度中的應(yīng)用范疇

作者: 時間:2012-08-06 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/257307.htm

二、操作系統(tǒng)的內(nèi)核調(diào)度機理:

  由于本系統(tǒng)對時性要求不是很強,采用了UC/OS-II這種簡單的源碼開發(fā)的操作系統(tǒng)。由于UC/OS-II是以任務(wù)為基礎(chǔ)進行調(diào)度的。所以系統(tǒng)中所要處理的中間結(jié)果或響應(yīng)外部的輸入和輸出,都應(yīng)該在任務(wù)中完成。任務(wù)的調(diào)度是基于優(yōu)先級的(UC/OS不支持時間片輪轉(zhuǎn)的方法)。在多任務(wù)調(diào)度開始后,時鐘節(jié)拍開始工作,時鐘節(jié)拍產(chǎn)生周期性的中斷,時鐘節(jié)拍提供延時或超時的依據(jù)。多任務(wù)啟動之前應(yīng)該先進行初始化的工作,包括CPU、TCB(任務(wù)控制塊)、ECB(事件控制塊)和操作系統(tǒng)本身的初始化等。初始化完畢后多任務(wù)啟動,系統(tǒng)總是運行就緒狀態(tài)優(yōu)先級最高的任務(wù)。由于任務(wù)本身是一個無限的循環(huán),所以任務(wù)中必須包含引起任務(wù)切換的函數(shù),如OSTimeDly()、OSSemPend()等,執(zhí)行到這些函數(shù)時將引起任務(wù)的切換,即任務(wù)的調(diào)度。任務(wù)切換之前應(yīng)該保護現(xiàn)場。任務(wù)之間要進行通信,通信的方式很多,可以采用全局變量、共享存儲區(qū)等一些常用的方式,但在采用UC/OS-II的系統(tǒng)中任務(wù)之間的通信更多采用信號量、消息郵箱等進行。

  三、操作系統(tǒng)的移植:

  將UC/OS-II這個操作系統(tǒng)移植到三星公司TDMI S3C44B0X上要注意OSCtxSW()這個任務(wù)切換函數(shù),其中任務(wù)切換的核心是利用出棧指令將各個任務(wù)的工作現(xiàn)場加以恢復(fù)。利用中斷返回指令改變PC的指針達到任務(wù)切換的目的。它實際上是從任務(wù)堆棧中恢復(fù)處理器所有的寄存器,并且執(zhí)行中斷返回指令。實際的移植是用軟件來模擬中斷的發(fā)生。移植中的關(guān)鍵問題是如何構(gòu)造任務(wù)堆棧及任務(wù)切換時的出棧順序。而任務(wù)區(qū)堆棧初始化主要是模擬任務(wù)被中斷后堆棧中的內(nèi)容。另值得注意的是開關(guān)中斷的函數(shù)OS_ENTERCRITICAL()和OS_EXIT_CRITICAL()這個函數(shù)。這兩個函數(shù)實現(xiàn)了對臨界區(qū)內(nèi)容的保護。

  四、基于狀態(tài)機的程序設(shè)計:

  整個系統(tǒng)的軟件設(shè)計采用任務(wù)加狀態(tài)機的設(shè)計方法,由于系統(tǒng)中采用了UC/OS-II的操作系統(tǒng),所以系統(tǒng)中所有事件處理都采用任務(wù)調(diào)度的方式,任務(wù)在操作系統(tǒng)得調(diào)度下運行。而對于每個任務(wù)采用基于狀態(tài)機的設(shè)計方法,引起系統(tǒng)中某個狀態(tài)發(fā)生轉(zhuǎn)移的事件可能是信號量、也可能是其它的事件。下面對狀態(tài)機的有關(guān)內(nèi)容加以介紹。

  狀態(tài)機可以看成是一個狀態(tài)和轉(zhuǎn)換的圖,描述了應(yīng)用程序?qū)邮盏绞录捻憫?yīng)。

  狀態(tài)機的執(zhí)行:狀態(tài)機在某個時刻處理某個事件而在處理另外的事件之前必須完成對這個事件的處理并得到結(jié)果。

LCD顯示屏相關(guān)文章:lcd顯示屏原理


lcd相關(guān)文章:lcd原理


關(guān)鍵詞: ARM7 LCD 頻率控制

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉