์๋ ํ์ธ์,
STM32F407 ๋์ค์ปค๋ฒ๋ฆฌ ๋ณด๋๋ก SWD๋ฅผ ํตํด STM32F103 ๋ณด๋๋ฅผ ํ๋์ํ๋ ค๊ณ ํฉ๋๋ค. ๋ถํํ๋ STM32F103 ๋ณด๋์์๋ง ์๋ํ์ง ์์ต๋๋ค.
st-flash
์ฐ์ถ:
st-flash write prog.bin 0x8000000
2017-01-24T18:44:14 INFO src/stlink-common.c: Loading device parameters....
2017-01-24T18:44:14 INFO src/stlink-common.c: Device connected is: F1 High-density device, id 0x10036414
2017-01-24T18:44:14 INFO src/stlink-common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0 bytes (0 KiB) in pages of 2048 bytes
๋ณด์๋ค์ํผ, ๋ค์๊ณผ ๊ฐ์ ์๊ธฐ์น ์์ ๊ฒ์ ์ ๊ณตํฉ๋๋ค.
Flash: 0 bytes (0 KiB) in pages of 2048 bytes
st-info --probe
Found 1 stlink programmers
serial: 303030303030303030303031
openocd: "\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x31"
flash: 0 (pagesize: 2048)
sram: 65536
chipid: 0x0414
descr: F1 High-density device
์๋ฌด๋ ๊ทธ๊ฒ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๊น?
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
ST Link ์ ํธ๋ฆฌํฐ๋ก ํด๊ฒฐ ๋์์ต๋๋ค.
๋ณด๋๊ฐ _์ฐ๊ธฐ ๋ฐฉ์ง_๋์์ต๋๋ค.
๋ณด๊ณ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด๊ฒ์ผ๋ก ์คํจํ์ง ์๋๋ก ๋ฌธ์์ ์ถ๊ฐํ ๊ฒ์ ๋๋ค.
์๋ ํ์ธ์, ๊ทธ ์ผ์ ๋์์ฃผ์๊ฒ ์ต๋๊น? ์ฐ๊ธฐ ๋ฐฉ์ง๋ฅผ ๋นํ์ฑํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ์ ๋ ๋งฅ OSX๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ณต์ St-link ์ ํธ๋ฆฌํฐ ๋๊ตฌ๋ Windows ์ ์ฉ์ ๋๋ค.
๋น์ ์ ์๋ง๋ ๋จผ์ ๋๋์ผ๋ก ์ง์ธ ์ ์๊ณ ๋๋ ์ฐ๊ธฐ ๋ฐฉ์ง๊ฐ ๊ทธ ๋ค์์ ์ง์์ง๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋๋ ์ผ๋ถ openocd ๋ช ๋ น(texane/stlink๋ณด๋ค ๋ ๋ง์ ๊ธฐ๋ฅ์ด ์์)์ ์ฌ์ฉํฉ๋๋ค.
๋น ๋ฅธ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ํ๋์๋ฅผ ์ง์ฐ๋ ค๊ณ ์๋ํ์ง๋ง ์๋ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ ๋จ์ ์์ต๋๋ค. ๋๋ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ๋ณด๊ธฐ ์ํด ์ผ๋ถ Windows ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. :\
README์์ ์ด๊ฒ์ ๋ณธ ์ ์ด ์์ต๋๊น?
https://github.com/texane/stlink/commit/0f9e4990ba0cdc295875b219b354fdf42f30a9aa
OpenOCD๋ฅผ ์ฌ์ฉํ ๋ monitor stm32f1x unlock 0
๋ช
๋ น์ ํธ์ถํ ์ ์์ต๋๋ค(ํ
์คํธ๋์ง ์์). http://openocd.org/doc/html/Flash-Commands.html์ ์ฐธ์กฐํ์ญ์์ค
ST-LINK ์ ํธ๋ฆฌํฐ(Windows์์)๋ฅผ ์คํํ๊ณ ๋์ > ์ต์ ๋ฐ์ดํธ... > ์ฝ๊ธฐ ๋ฐฉ์ง ๋นํ์ฑํ(์ฝค๋ณด ์์)๋ก ์ด๋ํ์ต๋๋ค. ์๋ฃ, ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
http://www.openstm32.org/forumthread562 ๋งํฌ์์ openOCD๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๊ธฐ ๋ณดํธ๋ฅผ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋จ์๋ฅผ ์ฐพ์ ์
์๋ ํ์ธ์, openocd ํฐ๋ฏธ๋ ์ธ์ ์์ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ stm32 bluepill์ ์ ๊ธ์ ํด์ ํ๋ ๋ฐ ์ฑ๊ณตํ์ต๋๋ค.
๋ฆฌ์ ์ ์ง
ํ๋์ ๋ฑ ํฌ
stm32f1x ๋๋ ์ง์ฐ๊ธฐ 0
stm32f1x ์ ๊ธ ํด์ 0
๊ทธ ํ, ์ฅ์น๋ ๋ค์ ํ๋ก๊ทธ๋๋ฐํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
@jeroavf ๊ฐ์ฌํฉ๋๋ค! ์ด๊ฒ์ ์ ์๊ฒ ํจ๊ณผ์ ์ด์๊ณ --probe
์ด์ 65536
๋ฐํํ๊ณ (๋ช๋ช 64kb ๋ชจ๋ธ ์ค ํ๋๋ฅผ ์ป์ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค) ์ฌ๋ฐ๋ฅด๊ฒ ๊น๋ฐ์
๋๋ค.
์ฌ๋ฏธ์๋ ์ ์ mass_erase
๋จ๊ณ๋ฅผ ์ํํ ๋ 128kb๋ผ๊ณ ์๊ฐํ๊ธฐ๋ ํ์ง๋ง ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค.
STM32 flash size failed, probe inaccurate - assuming 128k flash
flash size = 128kbytes
๊ฐ์ฌํฉ๋๋ค. Windows ST-Link ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด ์นฉ ์ง์ฐ๊ธฐ๋ก ์ผ๋ถ STM32F437์ ํด์ ํ ์ ์์์ต๋๋ค. ์ด์ ์ด๊ฒ์ด Linux st-link์์ ๋ค์ ์๋ํฉ๋๋ค :-)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์, openocd ํฐ๋ฏธ๋ ์ธ์ ์์ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ stm32 bluepill์ ์ ๊ธ์ ํด์ ํ๋ ๋ฐ ์ฑ๊ณตํ์ต๋๋ค.
๊ทธ ํ, ์ฅ์น๋ ๋ค์ ํ๋ก๊ทธ๋๋ฐํ ์ค๋น๊ฐ ๋์์ต๋๋ค.