在過去Cortex-M單晶片開發經驗中,使用過新唐、Renesas、STM32和TI,搭配使用過的開發IDE有IAR、e2studio、STM32CUBE、keilc、和CCS,主要focus在算法/功能的開發,從來沒認真探討過這些MCU的底層基礎建設(HAL、BSP、bootloader、RTOS)以及IDE背後是如何對MCU進行Compile and fLASH(Cross Compile),並且透過Uart在電腦端進行real-time debug,所以這次想透過STM32加上Ubuntu的開源環境,對整個嵌入式系統編譯過程進行學習。
如此未來在開發嵌入式系統時就不會被該產品的IDE綁定,能使用各種opensource的editor如vim、vscode、atom等,此外能對RTOS的系統有更深入的了解。
另外開發經驗中都是以bare-metal的方式,簡單以幾個interrupt priority設定完成整個專案所需功能,但當整個系統越來越複雜non-OS的開發方式肯定是不夠的,考慮到模組化開發需要有分時多工(TDM)的程式架構,所以這次也會透過STM32所提供的Motor Control(MC) SDK中的FreeRTSO範例對MCU底層基礎建設和RTOS概念進行一個完整的學習,並且以RTOS的角度去分析stm32的MCSDK。
DAY1 實驗環境建制
:pushpin: 我的開發環境
開發板 STM32 NUCLEO G474RE