新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 自己做單片機實時操作系統1前言

        自己做單片機實時操作系統1前言

        作者: 時間:2016-12-01 來源:網絡 收藏
        操作系統在之前對于我自己還說一直是一個很陌生的東西,不知道該如何的理解和定義。終于當完成某些比較繁瑣的項目時,發現多任務的操作系統是一個很好的東西。

        之前總是在看著別人怎么去實現一個操作系統,最終有了自己去寫一個的想法。按照ucOS的作者說的一樣,操作系統最終就是一個保護寄存器和恢復寄存器的動作。

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

        手上只有一個MCU飛思卡爾DG128的開發板,然后就開始寫代碼吧。當然要先練習一下自己的C 語言啦。

        1、理解一下函數指針先。
        我們知道每一個函數都有自己的一個指針
        void ProcFun1(void)
        那么ProcFun1就是一個指針。
        如下面一個我測試的程序:

        typedef void(*VOID_FUN_PTR)(void); 定義一個void*的類型
        void DelayTime(int duty)
        {
        while(duty--)
        {
        _FEED_COP(); /* feeds the dog */
        };
        }


        void FunTask1(void) {
        int i;
        for(i = 0;i < 8;i++)
        {
        PTP = 1<LED上顯示個流水燈。
        DelayTime(50000);
        }
        }
        void main(void) {
        /* put your own code here */
        VOID_FUN_PTR pFun; 創建一個局部函數指針
        InitSystem();
        EnableInterrupts;
        pFun = FunTask1; 對指針進行一個賦值
        for(;;) {
        _FEED_COP(); /* feeds the dog */
        (pFun)(); 執行funtask1,取地址,然后通過()執行函數。就可以執行到制定位置的一個函數了。
        } /* loop forever */
        /* please make sure that you never leave main */
        }
        到這里就知道函數指針一個怎么去用了。下一步就是棧是怎么保護和恢復的的。

        編輯原因--修改函數指針的理解



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 昭觉县| 岳池县| 乐清市| 托里县| 南澳县| 苏州市| 安泽县| 阜新| 临湘市| 来安县| 共和县| 太和县| 浏阳市| 鄂州市| 江永县| 云南省| 库尔勒市| 湾仔区| 沙雅县| 读书| 绍兴县| 忻州市| 大兴区| 库车县| 本溪| 石渠县| 宜都市| 桦南县| 靖宇县| 麟游县| 奉新县| 根河市| 壤塘县| 尚志市| 仪陇县| 阿坝| 灯塔市| 乃东县| 元江| 隆尧县| 合肥市|