新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 改進型時間觸發嵌入式系統編程模式

        改進型時間觸發嵌入式系統編程模式

        作者: 時間:2012-07-18 來源:網絡 收藏

        由于任務⑧執行一次要幾秒鐘的,整個超級循環執行一次至少大于任務⑧需要的,也就是說這個超級循環循環一次要幾秒鐘,將滿足不了各任務響應時間的要求。
        要解決這個問題,只有把任務⑧拆分成很多個子任務,將每個子任務的耗時壓縮到10 ms左右,并定義好各個子任務完成后的狀態,在超級大循環中每次根據狀態只執行一個子任務,程序結構如下:
        while(1){
        任務①;
        任務②;
        ……
        switch(子任務狀態){
        case 子任務狀態①:
        子任務①;
        break;
        ……
        case 子任務狀態②:
        子任務②;
        break;
        ……
        case 子任務狀態c.JPG
        子任務c.JPG
        break;
        }
        }
        這樣,就需要把一個耗時幾秒的FFT運算任務拆分成幾百個耗時10 ms左有的子任務,這顯然是不可接受的。除此之外,超級大循環結構隱含的一個缺點就是隨著任務的增加,循環體的執行時間是線性增加的,在實際設計中即使沒有像任務⑧那樣的高耗時任務,當功能增加時要保證響應的及時性也是一個不小的挑戰。
        1.2 使用“時間”進行
        “時間”的核心是建立一個基丁時間的合作式的任務調度器,在中盡量減少事件觸發(減少中斷的使用),系統通過任務調度器完成各任務的調度執行,下面是“時間觸發編程”的典型程序結構:
        d.JPG
        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 丘北县| 建德市| 牟定县| 化州市| 望城县| 平南县| 淮滨县| 积石山| 灌阳县| 化州市| 尼木县| 乌海市| 嘉禾县| 白玉县| 银川市| 如东县| 东阿县| 犍为县| 水富县| 积石山| 万山特区| 阿克| 独山县| 通州市| 化德县| 彝良县| 安陆市| 霍林郭勒市| 罗山县| 阜新市| 泽普县| 淮南市| 靖宇县| 芒康县| 大安市| 霍山县| 侯马市| 平果县| 隆昌县| 天水市| 孙吴县|