S32K144作為NXP推出車規(guī)級ARM Cortex M4內(nèi)核MCU,在很多領(lǐng)域開始被廣泛的應(yīng)用,在其開發(fā)過程中,官方支持的S32 Design Studio IDE開發(fā)工具可以免費(fèi)使用,并且集成了ProcessorExpert ,可以很方便的初始化外設(shè)并生成驅(qū)動(dòng)。FreeRTOS作為免費(fèi)的RTOS應(yīng)用更是廣泛,那么在S32DS中開發(fā)使用FreeRTOS的項(xiàng)目,很多情況下需要對OS的運(yùn)行情況進(jìn)行了解和分析,此時(shí)Segger免費(fèi)的工具SystemView無疑是最合適的。接下來我們一起學(xué)習(xí)一下如何在S32DS中使用SystemView分析FreeRTOS。
一、首先下載工具:
S32DS:
https://www.nxp.com/cn/support/developer-resources/run-time-software/s32-design-studio-ide/s32-design-studio-ide-for-arm-based-mcus:S32DS-ARM?tab=Design_Tools_Tab
SystemView:
https://www.segger.com/downloads/free-utilities/#SystemView
McuOnEclipse組件:
https://sourceforge.net/projects/mcuoneclipse/files/PEx%20Components
二、安裝工具
S32DS根據(jù)提示安裝即可,SystemView的PC端軟件下載的是壓縮文件,解壓縮后運(yùn)行可執(zhí)行程序SystemView.exe即可。這里重點(diǎn)描述一下McuOnEclipse組件,這個(gè)組件可以說是NXP為其基于Eclipse的各種IDE開發(fā)的組件庫,應(yīng)用起來非常方便。
啟動(dòng)S32DS后,在主菜單的Processor Expert中選擇下拉菜單中的import component。
在打開的窗口中找到解壓縮過的McuOnEclipse組件,選擇Part1_Beans_01.07.2018.PEupd,點(diǎn)擊打開進(jìn)行安裝。
完成后再安裝Part2_Beans_01.07.2018.PEupd,此時(shí)默認(rèn)會(huì)把組件安裝到當(dāng)前用戶目錄的MyComponents目錄中。
安裝完成后,還需要把解壓縮文件夾中的一些頭文件拷貝到安裝目錄響應(yīng)位置。
三、新建工程
打開S32DS,在File菜單中選擇New/S32DS Application Project。
填寫項(xiàng)目名稱,選擇處理器為S32K144,單擊Next。
SDKs選擇0.8.6,Debugger需要使用SeggerJlink。
生成工程后,配置一個(gè)GPIO為輸出,用來控制LED燈。
在main.c中增加初始化代碼,至此,基礎(chǔ)工程創(chuàng)建完成。
四、創(chuàng)建FreeRTOS任務(wù)
在組件庫中搜索FreeRTOS,找到新安裝的FreeRTOS,雙擊,會(huì)在組件瀏覽中增加FreeRTOS和一些相關(guān)的組件。
在McuLibConfig組件右擊選擇inspector,修改組件SDK為S32K SDK。
修改FreeRTOS配置中的處理器架構(gòu)為Cortex-M4F,生成PE代碼。
添加以下代碼到main.c文件
static void Components_Init(void) { #define CPU_INIT_MCUONECLIPSE_DRIVERS}
復(fù)制Cpu.c中的初始化代碼。
粘貼到main.c中,完成初始化工作。
取消 Events.c的編譯。
引入Events.h和Events.c
創(chuàng)建任務(wù),并開啟任務(wù)調(diào)度器。
編譯下載后,開發(fā)板的LED燈已經(jīng)開始閃爍了,F(xiàn)reeRTOS任務(wù)創(chuàng)建成功。
五、添加SystemView
在組件庫中搜索systemview,檢索出SeggerSystemView組件,雙擊添加到工程,這個(gè)過程會(huì)自動(dòng)增加一些相關(guān)的組件。
修改RTT組件屬性,設(shè)置上傳和下載通道都為2。
確保SystemView組件屬性中RTT通道序號為1。
最后,啟用FreeRTOS組件屬性中的Segger System Viewer跟蹤。
重新生成PE代碼后,復(fù)制Cpu.c中的初始化代碼。
在main.c中覆蓋之前的初始化代碼。
重新編譯工程,下載到開發(fā)板。
在PC上啟動(dòng)之前下載的SystemView.exe
點(diǎn)擊start recording,彈出對話框,確定即可。
此時(shí)SystemView就開始記錄FreeRTOS的所有活動(dòng)情況了,包括了每個(gè)任務(wù)的時(shí)間占用,任務(wù)的調(diào)度過程,任務(wù)的CPU資源占用。
總結(jié):SystemView是一個(gè)非常好用的RTOS分析工具,對于掌握和了解各種RTOS的任務(wù)運(yùn)行情況,內(nèi)部事件,資源占用等等各種信息非常方便,在項(xiàng)目開發(fā)過程中可以很好的幫助開發(fā)者分析系統(tǒng)運(yùn)行狀況,并依據(jù)具體狀況對系統(tǒng)的任務(wù)進(jìn)行調(diào)節(jié)和應(yīng)用。
評論