加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1 STM32 CubeIDE創(chuàng)建LED工程
    • 2 燒錄程序測試
    • 3 總結(jié)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

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

01/09 12:20
3655
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

STM32MP157具有A7內(nèi)核核M4內(nèi)核,前面介紹的一些文章,都是在A7內(nèi)核上進行的,本篇來介紹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工程

第一次會進行一些文件的下載

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

    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個可切換的窗口的標簽:

    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進行LED控制,根據(jù)文檔,對應(yīng)的是PH7引腳,高電平點亮:

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

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

點擊左邊的System Core,再點到GPIO,可以進行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ū)域之間:

然后點擊“小錘子”圖標進行編譯,可以看到如上圖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)險等級 參考價格 更多信息
CB3LV-3I-18M4320 1 CTS Corporation OSC 18.4320 MHZ 3.3V SMD

ECAD模型

下載ECAD模型
$1.43 查看
HFBR-1414Z 1 Broadcom Limited Transmitter, 792nm Min, 865nm Max, 160Mbps, ST Connector, DIP, Panel Mount, Through Hole Mount, ROHS COMPLIANT PACKAGE
$27.48 查看
SN65HVD230DR 1 Texas Instruments 3.3 V CAN Transceiver with Standby Mode 8-SOIC -40 to 85

ECAD模型

下載ECAD模型
$2.94 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

控制科學(xué)與工程碩士,日常分享單片機、嵌入式、C/C++、Linux等學(xué)習(xí)經(jīng)驗干貨~