• 正文
    • 1 STM32 CubeIDE創(chuàng)建LED工程
    • 2 燒錄程序測試
    • 3 總結(jié)
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

STM32MP157D-DK1 STM32CubeID使用與M核開發(fā)

2024/01/09
2821
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

STM32MP157具有A7內(nèi)核核M4內(nèi)核,前面介紹的一些文章,都是在A7內(nèi)核上進(jìn)行的,本篇來介紹M4內(nèi)核的開發(fā),以及開發(fā)時要用到的STM32 CubeIDE軟件的使用。

1 STM32 CubeIDE創(chuàng)建LED工程

STM32CubeIDE是一體式多操作系統(tǒng)開發(fā)工具,是STM32Cube軟件生態(tài)系統(tǒng)的一部分。

下載地址:https://www.st.com/zh/development-tools/stm32cubeide.html#st-get-software

首先要先安裝STM32 CubeIDE,普通的exe安裝,這里不展開介紹。

1.1 新建工程

文件,新建,STM32工程

第一次會進(jìn)行一些文件的下載

等待下載完成后界面如下,有4個窗口切換標(biāo)簽:

    MCU/MPU Selector:MCU/MPU芯片選擇窗口Board Selector:ST官方的一些開發(fā)板選擇窗口Example Selector:示例程序選擇窗口,ST官方開發(fā)板的一些現(xiàn)有示例Corss Selector:交叉引用工具窗口,選擇對應(yīng)的CPU型號,會彈出一個相同系統(tǒng)的CPU型號的資源對比界面

在搜索框輸入STM32MP157D后,右邊可以看到4個具體的型號,其中STM32MP157DAC1中描述的是STM32MP157D-DK1開發(fā)板,那就選這個:

點Next之后,設(shè)置工程的名稱,例如01_LED,可以勾選Use default location指定位置:

再Next之后,點擊Firmware Updater可修改固件包的位置:

點Finish之后,會彈出Open Associated Perspective的窗口,點Yes即可:

下載某些文件需要登錄ST賬號,沒登錄可能會提示類似如下失敗的彈窗,可以先不管,后面再處理。

然后來到這個界面,又有4個可切換的窗口的標(biāo)簽:

    Pinout & Configuration:引腳配置窗口Clock & Configuration:時鐘配置窗口Project Manager:項目管理配置窗口Tool:相關(guān)工具配置窗口

剛才說到,因為沒登錄ST的賬號,有些文件沒下載成功?,F(xiàn)在可以再來下載,點擊菜單Help中的Manage embedded software packsges,彈出如下窗口,找到STM32MP1,勾選Pachage,點擊安裝:

然后就會再次下載:

下載完成,關(guān)聯(lián)成功,就會變成綠色的方塊:

可以在下載位置查看下載的文件:

1.2 配置引腳

使用LED中的LD7進(jìn)行LED控制,根據(jù)文檔,對應(yīng)的是PH7引腳,高電平點亮:

搜索PH7引腳,設(shè)置為Output模式:

然后再右鍵,設(shè)置Pin Reserved,選擇Cortex-M4 FW。

點擊左邊的System Core,再點到GPIO,可以進(jìn)行GPIO配置,如上下拉、速率等:

然后,時鐘可以不用再配置,項目管理這里,注意勾選如下兩項:

    • Copy only the necessary library files,工程會從 STM32Cube MCU 軟件包中拷貝需要用到的 HAL 庫文件,
    • 沒用到的不會拷貝Generate peripheral initialization as a pair of '.c/.h' files per peripheral ,表示讓每個外設(shè)生成獨立的'.c/.h'文件,如果此項不勾選,那么外設(shè)相關(guān)的初始化代碼將會生成在 man.c 中了

最后Ctrl+S保存,會提示要生成代碼,點Yes即可:

然后還會有一個彈窗,點Yes即可:

1.3 修改代碼并編譯

在main.cpp中,添加控制LED亮滅邏輯代碼:

HAL_GPIO_WritePin(LD7_GPIO_Port,LD7_Pin,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(LD7_GPIO_Port,LD7_Pin,GPIO_PIN_RESET);
HAL_Delay(500);

注意代碼添加的位置,要添加在成對出現(xiàn)的BEGIN和END的區(qū)域之間:

然后點擊“小錘子”圖標(biāo)進(jìn)行編譯,可以看到如上圖0錯誤0警告。

2 燒錄程序測試

2.1 切換BOOT啟動模式

開發(fā)板的BOOT配置BOOT0為OFF,BOOT1為ON,板子的ST-LINK接口連接板子到電腦。

2.2 配置ST-Link

菜單中Run中選擇Debug Configurations...

然后,雙擊STM32 Cortex-M C/C++ Application 就會自動創(chuàng)建和打開名為HAL_LED_CM4 Debug 的配置項:

切換到調(diào)試器窗口,選擇thru JTAG/SWD link:

然后點擊 Aply,Debug 開始調(diào)試。

第一次在 STM32CubeIDE 用 ST-Link 下載程序的話,系統(tǒng)會提示更新 ST-LINK 固件:

彈出的窗口中,選擇ST-LINK:

然后再重新插拔USB線,點擊Open in update mode,彈出如下界面:

點擊 Upgrade 更新 ST-Link 固件,等待更新完成即可

2.3 調(diào)試運行程序

然后繼續(xù)在剛才的調(diào)試器窗口,點擊Debug 開始調(diào)試

全速運行后,可以看到LD7的橘色燈會循環(huán)亮滅:

2.4 通過Linux系統(tǒng)運行elf固件

將板子的BOOT開關(guān)切換到從SD卡啟動Linux系統(tǒng),然后將STM32 CubeIDE編譯出的elf文件:

如01_LED_CM4.elf拷貝到開發(fā)板的/lib/firmware目錄中,添加可執(zhí)行權(quán)限,然后使用如下指令即可運行M4內(nèi)核的程序:

#加載固件
echo 01_LED_CM4.elf >/sys/class/remoteproc/remoteproc0/firmware  
#啟動固件
echo start >/sys/class/remoteproc/remoteproc0/state

3 總結(jié)

本篇介紹了STM32MP157D-DK1開發(fā)板M核程序的開發(fā)流程,包括STM32CubeIDE創(chuàng)建工程,引腳配置與程序編寫,最終實現(xiàn)了基礎(chǔ)了LED亮滅實驗。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
CM200C32768DZFT 1 Citizen Finedevice Co Ltd Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, SMD, 4 PIN
$1.56 查看
ECS-.327-12.5-1210-TR 1 ECS International Inc Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, SMD, 2 PIN

ECAD模型

下載ECAD模型
$1.09 查看
MOC3021SMT&R 1 Isocom Components Triac Output Optocoupler, 1-Element, 5300V Isolation, SURFACE MOUNT PACKAGE-6
$1.66 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄