こんにちは、やましょうです。
STM32 で量産書込みがしたい。。
ということで、今まではStm32 ST-link Utilityを使用していた訳ですが。
Stさん曰く、Stm32 Cube programerをお使いくださいということで、
Stm32 Cube Programer で書込みしたいと思います。
まず量産書込みでGUIは超絶面倒ですので、CLIを使用します。
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.EXEを実行するのみです。
書込み方法としては
①SWDで接続
-c port=SWD
②OPTION BYTEのRDPをLEVEL0 = 0XAAにするこれよってリード可能
-ob rdp=0xaa
③全エリアイレース
-e all
④HEX書込み-w yours.hex
⑤ベリファイ
-v
⑥OPTION BYTEのRDPをLEVEL0 = 0XBBにするこれよってリード不可能
-ob rdp=0xbb
という順で行います。
引数に設定すれば良いので。
STM32_Programmer_CLI -c port=SWD -e all -w yours.hex -v -ob rdp=0xbb
とすればできます。
実行結果は、
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI -c port=SWD -ob rdp=0xaa -e all -w yours.hex -v -ob rdp=0xbb
-------------------------------------------------------------------
STM32CubeProgrammer v2.7.0
-------------------------------------------------------------------
ST-LINK SN : 34FFxxxxxxxxxxxxxxxx
ST-LINK FW : V2J37S7
Board : --
Voltage : 3.24V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x457
Revision ID : Rev Z
Device name : STM32L01x/L02x
Flash size : 16 KBytes
Device type : MCU
Device CPU : Cortex-M0+
UPLOADING OPTION BYTES DATA ...
Bank : 0x00
Address : 0x4002201c
Size : 104 Bytes
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
Bank : 0x01
Address : 0x1ff80000
Size : 16 Bytes
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
PROGRAMMING OPTION BYTES AREA ...
Bank : 0x01
Address : 0x1ff80000
Size : 16 Bytes
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
Reconnecting...
Reconnected !
UPLOADING OPTION BYTES DATA ...
Bank : 0x00
Address : 0x4002201c
Size : 104 Bytes
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
Bank : 0x01
Address : 0x1ff80000
Size : 16 Bytes
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
OPTION BYTE PROGRAMMING VERIFICATION:
Option Bytes successfully programmed
Mass erase ...
Mass erase successfully achieved
Memory Programming ...
Opening and parsing file: yours.hex
File : yours.hex
Size : 1 Bytes
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 7]
Download in Progress:
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
File download complete
Time elapsed during download operation: 00:00:01.053
Verifying ...
Read progress:
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
Download verified successfully
PROGRAMMING OPTION BYTES AREA ...
Bank : 0x01
Address : 0x1ff80000
Size : 16 Bytes
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
Reconnecting...
Reconnected !
UPLOADING OPTION BYTES DATA ...
Bank : 0x00
Address : 0x4002201c
Size : 104 Bytes
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
Bank : 0x01
Address : 0x1ff80000
Size : 16 Bytes
ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ 100%
OPTION BYTE PROGRAMMING VERIFICATION:
Option Bytes successfully programmed
という形で完了します。
ここで疑問さて、HEXは良いとしてもOPTION BYTEの正当性確認どうするんじゃろう?
(謎)
以上
やましょうでした。