新聞中心

        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不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泸溪县| 东莞市| 黎城县| 牟定县| 镇坪县| 尼木县| 从化市| 融水| 无棣县| 道孚县| 芮城县| 舒城县| 察雅县| 临城县| 泰兴市| 卓资县| 慈溪市| 长治县| 黔东| 顺平县| 泊头市| 怀柔区| 博乐市| 武城县| 盐边县| 竹山县| 鸡泽县| 揭西县| 阿拉善盟| 泸定县| 苏尼特左旗| 禄丰县| 巴林右旗| 汝城县| 棋牌| 延寿县| 淳安县| 元阳县| 宜君县| 汝南县| 云南省|