完整的S32K144的學習彙總如下:
https://github.com/GreyZhang/g_s32k144
繼續學習S32K144,結合這個芯片學習一下FreeRTOS的實際應用。這一次,我想先學習一下隊列的應用。
按照文檔的解讀,這個隊列其實確實是有着一個先後關係的意思。但是,這個隊列的作用更多的是一個消息傳遞。今天,我需要做的工作如下:
- 使能FreeRTOS中的隊列功能;
- 創建一個隊列信號,實現一個深度的隊列信號的的收發測試;
- 創建一個多元素的隊列,測試多元素隊列的行爲。
之後,代碼生成,增加如下的代碼設計。
創建一個task,接收隊列信號。隊列信號的發送通過1000ms的task。
隊列信號在這裏發送,每次增加 1。
這個任務,接收到信號之後執行任務體,每次打印一個字符。這樣,軟件運行的效果如下:
看的出,與我們預期的效果一致。
接下來,試試隊列深度的修改。上面的字符其實一共是9個,我們直接把隊列深度修改爲10,然後,一次發送9個隊列信號。
隊列深度修改。
發送方式修改。至於接收隊列的task,不需要修改。軟件編譯燒寫之後運行效果:
依然如此,但是,這一次的字符串能夠感覺得出,一下子全都打印出來了而不像之前每秒鐘只有一個字符。其實,這個功能可以給我們一些啓示,那就是我們可以藉助於這個功能完成一個資源佔用不大的printf。
增加隊列的註冊功能,允許最多2個隊列註冊。
完整的S32K144的學習彙總如下: