模板下載:
html
連接:https://pan.baidu.com/s/1N32Hx7cTbDoRinuzTUB3zw 提取碼:6aox 編輯器
一、MDK使用MDK5.26及其以上版本。函數
二、IAR使用IAR8.30及其以上版本。學習
三、教程直能夠先看以前發佈的,除了新增的一些功能,其它功能基本沒區別:
http://www.javashuo.com/article/p-pmtzqfge-bv.htmlspa
/* ********************************************************************************************************* * * 模塊名稱 : 主程序模塊。 * 文件名稱 : main.c * 版 本 : V1.0 * 說 明 : 本實驗主要學習FreeRTOS的串口調試方法(打印任務執行狀況) * 實驗目的: * 1. 學習FreeRTOS的串口調試方法(打印任務執行狀況)。 * 2. 爲了獲取FreeRTOS任務的執行狀況,須要執行以下三個操做 * a. 在FreeRTOSConfig.h文件中使能以下宏 * #define configUSE_TRACE_FACILITY 1 * #define configGENERATE_RUN_TIME_STATS 1 * #define configUSE_STATS_FORMATTING_FUNCTIONS 1 * #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ulHighFrequencyTimerTicks = 0ul) * #define portGET_RUN_TIME_COUNTER_VALUE() ulHighFrequencyTimerTicks * b. 建立一個定時器,這個定時器的時間基準精度要高於系統時鐘節拍,這樣獲得的任務信息才準確。 * c. 調用函數vTaskList和vTaskGetRunTimeStats便可獲取任務任務的執行狀況。 * 實驗內容: * 1. 按下按鍵K1能夠經過串口打印任務執行狀況(波特率115200,數據位8,奇偶校驗位無,中止位1) * ================================================= * 任務名 任務狀態 優先級 剩餘棧 任務序號 * vTaskUserIF R 1 318 1 * IDLE R 0 118 5 * vTaskLED B 2 490 2 * vTaskMsgPro B 3 490 3 * vTaskStart B 4 490 4 * * 任務名 運行計數 使用率 * vTaskUserIF 467 <1% * IDLE 126495 99% * vTaskMsgPro 1 <1% * vTaskStart 639 <1% * vTaskLED 0 <1% * 串口軟件建議使用SecureCRT(V7光盤裏面有此軟件)查看打印信息。 * 各個任務實現的功能以下: * vTaskTaskUserIF 任務: 接口消息處理 * vTaskLED 任務: LED閃爍 * vTaskMsgPro 任務: 消息處理,這裏是用做LED閃爍 * vTaskStart 任務: 啓動任務,也就是最高優先級任務,這裏實現按鍵掃描 * 2. 任務運行狀態的定義以下,跟上面串口打印字母B, R, D, S對應: * #define tskBLOCKED_CHAR ( 'B' ) 阻塞 * #define tskREADY_CHAR ( 'R' ) 就緒 * #define tskDELETED_CHAR ( 'D' ) 刪除 * #define tskSUSPENDED_CHAR ( 'S' ) 掛起 * #define tskRUNNING_CHAR ( 'X' ) 運行 * 注意事項: * 1. 本實驗推薦使用串口軟件SecureCRT,要不串口打印效果不整齊。此軟件在 * V7開發板光盤裏面有。 * 2. 務必將編輯器的縮進參數和TAB設置爲4來閱讀本文件,要不代碼顯示不整齊。 * * 修改記錄 : * 版本號 日期 做者 說明 * V1.0 2019-05-02 Eric2013 1. ST固件庫到V1.3.0版本 * 2. BSP驅動包V1.2 * 3. FreeRTOS版本V10.2.0 * * Copyright (C), 2019-2030, 安富萊電子 www.armfly.com * ********************************************************************************************************* */