目標:編譯STM32F4固件並刷入到我們的開發板:STM32F407VET6
1.在Linux系統下進行編譯操作,windows用戶可以在虛擬機下運行Linux系統,推薦下載kali Linux系統:https://www.kali.org/downloads/,推薦使用虛擬機對應的系統包,虛擬機安裝方法請到百度上獲取。
2.進入Linux系統后,打開終端(打開方法:點擊魚頭指向的圖標):
3.輸入指令:sudo apt-get install git 敲擊回車
目的:安裝git工具
git的功能:下載數據
4.輸入指令:sudo apt-get install gcc
輸入指令:sudo apt-get install gcc-arm-none-eabi
目的:安裝交叉編譯器,交叉編譯器的功能是對高級語言(比如:python、c語言...)翻譯成低級語言(比如:匯編語言、機器語言...)的操作
5.輸入指令:(必須采用git clone方式下載到Linux里面,不然會出錯)
git clone --recursive https://github.com/micropython/micropython.git
或
git clone --depth=1 https://github.com/micropython/micropython.git
目的:利用git工具來下載我們目標文件--micropython源碼
下載完成:會在home目錄下找到名為micropython的文件夾
請閱讀該文件夾下的README.md文件,里面有詳細介紹各個文件的功能。
在micropython/ports/stm32/boards文件夾里面可以看到支持的處理器和開發板。
6.輸入指令:cd micropython
目的:從home根目錄下進入到下一級micropython文件夾里面
指令:ls可以列出當前目錄下面的文件
7.輸入指令:cd ports/stm32/boards
目的:進入該目錄選擇我們的開發板芯片型號(STM32F407VET6),但是里面並沒有該型號的對應版本,而是該系列的STM32F4DISC,所有我們使用該源文件編譯出我們需要的STM32F4的固件文件。
8.輸入指令:cp -r STM32F4DISC STM32F407VET6
目的:復制該源文件並重新命名為:STM32F407VET6
9.輸出指令: cd ..
cd ..
cd ..
目的:cd ..指令是返回到上一級目錄,目的是要返回至micropython目錄下 (注意cd后面有一個空格)
10.輸入指令:cd mpy-cross
make
目的:先編譯一下MicroPython cross-compiler (micropython交叉編譯器)
11.輸入指令:cd ..
git init
git submodule update --init
目的:返回到micropython目錄下,獲取submodule子模塊並更新
12.cd ports/stm32/make BOARD=STM32F407VET6
目的:進入stm32目錄下進行編譯操作,生成固件文件DFU或HEX或ELF......,BOARD=STM32F407VET6是用於指定到要編譯的開發板(就是讀取里面的源文件)
等待編譯完成:編譯成功會在stm32目錄下生成一個build-STM32F407VET6文件夾,找到firmware.dfu或firmware.hex...固件文件拷貝到windows桌面。
13.去ST官方網站下載DfuSe工具:https://www.stmicroelectronics.com.cn/content/st_com/zh/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html
14.開發板硬件設置boot0:1,boot1:0,使用USB連接電腦,打開DfuSe軟件,連接上時會在DFU Devices下面會顯示,有顯示就是連接上了,然后點擊右下角的Choose選擇固件文件,然后點擊Upgrade燒錄,等待顯示燒錄成功。
github上stm32f407vet6升級版源碼:https://github.com/mcauser/MCUDEV_DEVEBOX_F407VET6