91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

王超的小站
認證:VIP會員
所在專題目錄 查看專題
FreeRTOS移植詳解1-專題概覽(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解2-滴答定時器實現(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解3-內核裁剪(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解4-中斷配置(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解5-臨界段處理(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解6-任務堆棧初始化和啟動(基于Microchip dsPIC33C系列芯片)
作者動態 更多
PIC24 & dsPIC33 MCU Bootloader開發
2021-11-08 15:12
PIC16 & PIC18 MCU Bootloader開發
2021-11-08 15:00
Python開發環境搭建(for Bootloader)
2021-11-08 14:58
Python開發環境搭建 (for Control)
2021-01-27 18:43
MCU擴展CAN/CAN FD接口方案-MCU軟件動手實驗
2020-11-25 14:11

FreeRTOS移植詳解3-內核裁剪(基于Microchip dsPIC33C系列芯片)

      在實際應用中并不會用到FreeRTOS的所有功能,因此可以對RTOS內核進行裁剪,這樣也可以節省MCU的Flash和RAM資源。FreeRTOS內核的裁剪是使用名為FreeRTOSConfig.h的配置文件進行定制的,關于FreeRTOSConfig.h 的詳細解析在FreeRTOS官網有詳細說明,參見鏈接https://www.freertos.org/a00110.html

      FreeRTOSConfig.h 是特定于工程,而不是RTOS自身的,對于基于FreeRTOS的任何工程所有的RTOS文件都是不需要做任何更改的除了這個FreeRTOSConfig.h。下圖是例程工程示例圖,可以看出將FreeRTOSConfig.h放在了頭文件的Config目錄下,而沒有和FreeRTOS的頭文件和C源文件放在一起。

      從上圖中我們可以看出另一個信息,工程用了大約5%的RAM(1186 bytes5 )和6%的Flash(5551 words ),花費并不是很大,這還包括與器件的初始化相關等非FreeRTOS內容,如MCC Generated Files文件夾下內容。同時這是在用免費的XC16編譯器,代碼優化等級為0的情況下獲得的。如此小的代價換來的是最基本的FreeRTOS搶占式內核開發環境,這將給邏輯任務開發帶來極大的便利,如定義了優先級遞減的100us、1ms、10ms和100ms時基任務,這些任務的調度會自動進行,用戶不用在考慮某一瞬間100us、1ms、10ms、100ms的任務撞到一起而導致100us的任務不能及時執行。

      FreeRTOS的配置和裁剪,是借助FreeRTOSConfig.h 中各種宏的值通過條件編譯的方法實現的,不需要的功能就不用編譯,這樣就可以根據實際需求來減少系統占用的Flash和RAM的大小。這里首先介紹“config”開頭的宏, 例程中“config”開頭的宏配置如下。

      接著介紹“INCLUDE_”開頭的宏,使用“INCLUDE_ ”開頭的宏用來表示使能或禁止FreeRTOS中的相應API函數,作用就是用來配置FreeRTOS中的可選API函數,例程中配置如下。

      最后,在實際的項目中如應用程序各個任務里有較多的局部變量,那么configTOTAL_HEAP_SIZE要定義的更大些;如果用到了互斥信號量、遞歸互斥信號量和計數值信號量等,則相應的宏定義開關要打開。這也就是FreeRTOSConfig.h 是特定于具體的工程項目的意思。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 6
收藏 4
關注 43
成為作者 賺取收益
全部留言
0/200
  • 天賜時間 2020-11-07 18:28
    思路清晰,受益匪淺
    回復
主站蜘蛛池模板: 齐齐哈尔市| 蒙城县| 揭西县| 和林格尔县| 闽侯县| 志丹县| 府谷县| 潮州市| 大邑县| 额敏县| 桦南县| 忻州市| 元氏县| 临邑县| 榆林市| 古蔺县| 于都县| 上思县| 邢台县| 大安市| 昌江| 阿图什市| 三明市| 山阳县| 莒南县| 静乐县| 清流县| 铜川市| 全州县| 定州市| 黎城县| 张家港市| 临泽县| 治多县| 鄂托克前旗| 铁力市| 祥云县| 罗平县| 鄂尔多斯市| 阿荣旗| 马边|