新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > 一步步寫STM32 OS【一】 序言

        一步步寫STM32 OS【一】 序言

        作者: 時間:2017-01-06 來源:網絡 收藏

          一直想寫個類似uC,近段時間考研復習之余忙里偷閑,總算有點成果了。言歸正傳,我覺得最難的部分首先便是上下文切換的問題,他和MCU的架構有關,所以對于不同的MCU,這部分需要移植。一旦這個問題解決了,整個OS算是成功了一半了,當然,是對于簡單的OS。

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

          好了,要寫一個OS,首先需要一個開發板和仿真器。我的開發板是F4DISCOVERY,自帶ST-LINK V2仿真器,板載MCU為F407VGT6,支持FPU,32位ARM Cortex-M4F核,1024KB FLASH,192 KB RAM,總之很強大。對其他系列,本OS幾乎不需修改修改就可使用。開發環境為IAR for ARM 6.5,如果是MDK的話,也是大同小異,匯編部分需要修改。

          研究了一下UCOS-II的Cortex-M4的Port部分,覺得很好,就直接拿來用了,修改的很少。首先我們來看一下這一部分幾個比較重要的函數,打開os_cpu_a.asm文件,定位到下面的地方,注釋我改成中文了。當OS初始化完畢后,執行OSStart,OSStart最后調用OSStartHighRdy函數,注意在此之前的線程模式和異常模式的堆棧都是MSP,在此之后線程模式的堆棧是PSP,異常模式的堆棧仍是MSP。

          之后我們在此基礎上構建自己的OS,首先完成兩個任務互相調用,然后是加入SysTick的任務調度,最后加入信號量,郵箱等功能。



        關鍵詞: STM32 OS

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汾西县| 西乌珠穆沁旗| 沙河市| 丰原市| 怀化市| 大悟县| 娱乐| 象州县| 盐亭县| 同心县| 正安县| 祥云县| 嘉兴市| 吐鲁番市| 正镶白旗| 星子县| 尼玛县| 唐海县| 福贡县| 海丰县| 南陵县| 通道| 乌兰县| 奉节县| 上栗县| 和政县| 滁州市| 祁连县| 瓦房店市| 清水县| 商都县| 洛川县| 承德县| 南岸区| 黔江区| 龙门县| 方城县| 晋宁县| 靖安县| 宾川县| 宁陕县|