米爾基于STM32MP135開發(fā)板裸機(jī)開發(fā)應(yīng)用筆記,MCU友好過渡MPU
以前微處理器(MPU)與微控制器(MCU)是截然不同的兩種設(shè)備,MPU支持豐富的軟件系統(tǒng),如Linux和相關(guān)的軟件堆棧,而MCU通常將專注于裸機(jī)和RTOS。近年來,隨著MCU的性能越來越高,MCU和MPU之間的區(qū)別變得越來越模糊。
STM32MP135是一款入門級(jí)的高性價(jià)比MPU,適用于MCU性能達(dá)不到要求或者需要跑Linux的場(chǎng)景。米爾的STM32MP135開發(fā)板提供基于STM32Cube的Bare metal裸機(jī)開發(fā)的軟件,能夠進(jìn)一步加強(qiáng)實(shí)時(shí)性能支持以滿足用戶實(shí)現(xiàn)硬實(shí)時(shí)應(yīng)用的需求。這一點(diǎn)尤其對(duì)習(xí)慣于使用MCU開發(fā)的用戶來說非常友好,可以讓開發(fā)者在使用MPU強(qiáng)大性能的同時(shí)獲得類似MCU的開發(fā)體驗(yàn)。米爾提供了支持裸機(jī)開發(fā)環(huán)境,接下來就讓我們介紹如何在米爾的STM32MP135開發(fā)板上進(jìn)行裸機(jī)開發(fā)。
米爾基于STM32MP135核心板及開發(fā)板
1. 環(huán)境搭建
1.1. 獲取源碼
下載米爾提供的 04_Sources/STM32CubeMP13-1.0.0源碼包,并使用 STM32CubeIDE 導(dǎo)入STM32Cube_FW_MP13_V1.0.0\Projects\STM32MP135C-DK\Examples\DDR\DDR_Init文件,點(diǎn)擊File->Import->Existing Projects into Workspace。
1.2. 編譯源碼
成功導(dǎo)入工程后進(jìn)行編譯,點(diǎn)擊進(jìn)行編譯,當(dāng)下方出現(xiàn)0 errors, 0 warnings表示編譯成功。
1.3. 開發(fā)板接線
當(dāng)工程源碼編譯完后,開發(fā)板需要連接ST-Link進(jìn)行調(diào)試,并且將撥碼開關(guān)撥到工程模式1-4:1000,用到的接口是J7,由于出廠時(shí)沒有將引腳焊接,需要用戶自行焊接,接線方式如下圖:
1.4. 調(diào)試工程
? 在2.3中編譯完后,接下來進(jìn)行調(diào)試的操作,點(diǎn)擊調(diào)試,如圖:
? 進(jìn)入到界面之后點(diǎn)擊全速運(yùn)行,看到開發(fā)板的藍(lán)燈在閃爍說明ddr初始化成功:
2. 應(yīng)用加載
2.1. 應(yīng)用環(huán)境配置
在初始化完ddr后,接下來就是讓應(yīng)用程序跑在ddr上,這里我們選用MYD-YF13X-20230601\STM32CubeMP13-1.0.0\Projects\STM32MP135C-DK\Templates\BSP_BasicTemplates路徑下的工程應(yīng)用:
? 根據(jù)1.1中的方法導(dǎo)入工程,看到工程成功導(dǎo)入之后,右鍵點(diǎn)擊工程文件名,然后點(diǎn)擊properties:
? 在執(zhí)行以上操作后彈出Enter Value后添加USE_DDR字符并保存:
? 繼續(xù)右鍵點(diǎn)擊工程文件名,然后點(diǎn)擊properties:
? 按照以上步驟打開STM32CubeMP13-1.0.0\Projects\STM32MP135C-DK\Templates\BSP_BasicTemplates\STM32CubeIDE\MP13_BSP_BasicTemplates路徑下的stm32mp13xx_a7_sysram.ld文件:
? 將REGION_ALIAS("RAM", DDR_BASE);部分的注釋刪除,再把REGION_ALIAS("RAM", SYSRAM_BASE)給注釋掉,保存并選中:
2.2. 調(diào)試應(yīng)用
將以上環(huán)境配置完成之后,在應(yīng)用調(diào)試階段也需要進(jìn)行一個(gè)配置,打開工程的調(diào)試設(shè)置界面,點(diǎn)擊startup,將monitor reset刪除,保存并調(diào)試:
將開發(fā)板接上串口,全速運(yùn)行,串口會(huì)打印Hello World - USE_STM32MP135 BOARD,至此應(yīng)用調(diào)試成功。
3. 創(chuàng)建應(yīng)用
3.1. 適配硬件
以米爾MYD-YF13x開發(fā)板上的心跳燈為例,首先要確定心跳燈用到的GPIO口。查看硬件原理圖可以看到心跳燈連接的是SPI5_MOSI:
通過查看米爾的Pin List可知道SPI5_MOSI對(duì)應(yīng)的引腳是PH12,那么接下來就開始創(chuàng)建工程來配置心跳燈的閃爍。
3.2. 工程創(chuàng)建
米爾創(chuàng)建的工程位于STM32CubeMP13-1.0.0\Projects\STM32MP135C-DK\Examples\GPIO\GPIO_EXTI路徑下,根據(jù)1.1中的方法導(dǎo)入工程,如下:
開始對(duì)心跳燈進(jìn)行配置,修改stm32mp13xx_disco.h里的心跳燈引腳配置:
修改完后回到main.c文件里在while函數(shù)中添加心跳燈的代碼:
編譯并調(diào)試后,讓程序全速運(yùn)行,可以看到開發(fā)板上的藍(lán)燈閃爍:
至此創(chuàng)建的工程調(diào)試成功。
產(chǎn)品介紹
米爾STM32MP135開發(fā)板,基于STM32MP13系列處理器,單核 Cortex-A7 設(shè)計(jì),運(yùn)行頻率高達(dá)1GHz,專為入門級(jí)Linux、裸機(jī)或RTOS系統(tǒng)設(shè)計(jì)。開發(fā)板采用12V/2A直流供電,搭載了2路千兆以太網(wǎng)接口、1路USB2.0協(xié)議MINI PCIE插座的4G模塊接口、1路RGB顯示接口、1路音頻輸入輸出接口、2路USB HOST Type A、1路 USB OTG Type-C接口、1路Micro SD接口等。開發(fā)板接口豐富,適用于能源電力、工業(yè)控制、工業(yè)網(wǎng)關(guān)、工業(yè)HMI等場(chǎng)景。