新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM7嵌入式系統在車輛調度中的應用范疇

        ARM7嵌入式系統在車輛調度中的應用范疇

        作者: 時間:2012-08-06 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257307.htm

        二、操作系統的內核調度機理:

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

          三、操作系統的移植:

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

          四、基于狀態機的程序設計:

          整個系統的軟件設計采用任務加狀態機的設計方法,由于系統中采用了UC/OS-II的操作系統,所以系統中所有事件處理都采用任務調度的方式,任務在操作系統得調度下運行。而對于每個任務采用基于狀態機的設計方法,引起系統中某個狀態發生轉移的事件可能是信號量、也可能是其它的事件。下面對狀態機的有關內容加以介紹。

          狀態機可以看成是一個狀態和轉換的圖,描述了應用程序對接收到事件的響應。

          狀態機的執行:狀態機在某個時刻處理某個事件而在處理另外的事件之前必須完成對這個事件的處理并得到結果。

        LCD顯示屏相關文章:lcd顯示屏原理


        lcd相關文章:lcd原理


        關鍵詞: ARM7 LCD 頻率控制

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 贵港市| 合川市| 久治县| 察雅县| 瓦房店市| 淄博市| 嘉黎县| 宣威市| 洞口县| 兰溪市| 五常市| 淄博市| 贵定县| 兴山县| 新疆| 平南县| 农安县| 云梦县| 柏乡县| 屏南县| 鹿泉市| 浦城县| 金阳县| 榆社县| 郑州市| 陕西省| 承德市| 吉首市| 德格县| 宁陕县| 天水市| 衡水市| 彭泽县| 界首市| 阜阳市| 尚志市| 共和县| 石城县| 苏尼特左旗| 于都县| 水富县|