1、前言
OEMiROT 的燒錄腳本是有兩種形式,一種是 Bash 格式,一種是 BAT。我們可以從STM32CubeRepositorySTM32Cube_FW_H5_V1.3.0ProjectsNUCLEOH563ZIROT_ProvisioningOEMiROT 目錄能看到這一點。
無論是 Bash 格式還是 BAT, 基于 STM32Cube 生態(tài)工具,都可以在 Windows 上運行。但是這兩種格式在 OEMiROT 上下文里并不能由著我們的開發(fā)習(xí)慣隨意使用。本文就來說明正確使用的規(guī)則和混用的方法。
2、規(guī)則
Bash 和 Bat 文件是否可以隨意選擇使用,從STM32CubeRepositorySTM32Cube_FW_H5_V1.3.0ProjectsNUCLEOH563ZIROT_ProvisioningOEMiROT 是看不出來的。也就是說,如果你不去修改編譯代碼,可能什么問題都沒有。答案是在 STM32CubeRepositorySTM32Cube_FW_H5_V1.3.0ProjectsNUCLEOH563ZIApplicationsROTOEMiROT_Boot 的幾個 IDE 的腳本里。我們可以看到,對于STM32CubeIDE(STM32CubeIDE 目錄)使用的是 postbuild.sh。
3、STM32CubeIDE 用戶如何使用 Bash
STM32CubeIDE 用戶使用 Bash,可以安裝一個 Git Bash 軟件,那么在 Git Bash 的命令行就可以執(zhí)行 ROT_Provisioning 的腳本。
4、解決 Bash 和 Bat 混用的問題舉例
假設(shè)我們使用 STM32CubeIDE 進行編譯。我們知道 OEMiROT 的默認行為是Overwrite,也就是新的固件會覆蓋舊的固件,原理上只需要注解掉位于STM32CubeRepositorySTM32Cube_FW_H5_V1.3.0ProjectsNUCLEOH563ZIApplicationsROTOEMiROT_BootInc的 flash_layout.h 中的宏。不過,因為 OVERWRITE 到 SWAP 會引起 Flash 布局的改變,因此,改動之后,假如我們習(xí)慣 BAT,那么使用STM32CubeRepositorySTM32Cube_FW_H5_V1.3.0ProjectsNUCLEOH563ZIROT_ProvisioningOEMiROT 的 provisioning.bat 燒錄后,串口終端會出現(xiàn)錯誤。
5、小結(jié)
本文針對 OEMiROT 里提供的 Bash 和 BAT 提供了辨析,讓 STM32 開發(fā)人員能夠正確選擇相應(yīng)的腳本進行運行,或者修改相應(yīng)的腳本符合個人的使用習(xí)慣。