參考網址
- bootloader: vial-kb/vibl
- 支援 vibl 的 qmk: vial-kb/vial-qmk
必須使用特製的 st-flash,stlink-stm32f10-opt-bytes,提供 "program option bytes" 的功能。其在燒錄 vibl 後,可將對
From the root of vial-qmk, run python3 util/vial_generate_keyboard_uid.py in order to generate a unique Vial keyboard ID:
ajax@stm-dev /work/vial-qmk $ python3 util/vial_generate_keyboard_uid.py
#define VIAL_KEYBOARD_UID {0xA3, 0xA1, 0xFF, 0x29, 0xE9, 0x28, 0xCC, 0xCC}
-----------------
其
使用 STM32 ST-LINK Utility 比較穩定可靠。另外,必須將開發板的 Boot0 切換到 1 (3.3V),ST-LINK Utility 才能連上。Boot0 不接時,會下拉成 0。但是使用 st-flash 則不用管 Boot0 的位置。
使用 ST-LINK Utility 寫入的順序如下。
- opt-default.bin (size: 0x0010) => 0x1FFFF800
- opt-head.bin (size: 0x0002) => 0x1FFFF800
- bootloader-magic_tpk_68.bin => 0x8000000
- opt-tail.bin => 0x1FFFF802
在寫入保護之後,假若執行 "Erase Chip",會出現 "Some flash pages are write protected!" 的錯誤。
再次從 0x8000000 寫入資料會顯示如下的資料。
09:28:20 : [bootloader-magic_tpk_68.bin] opened successfully.
09:28:20 : [bootloader-magic_tpk_68.bin] checksum : 0x00043E9E
09:28:29 : Some flash sectors are write protected.
The write protection will be disabled then restored after flash programming
in case there is no option bytes segment within the file.
09:28:29 : Memory programmed in 0s and 343ms.
09:28:29 : Verification...OK
但反覆測試,不太確定正確的該如何做。假如不成功,就試另一種方法吧。