stlink ํ๋ก์ ํธ์ ํผ๋๋ฐฑ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๊ฐ๋ฐ์ ๋ฐ ๋ค๋ฅธ ๊ธฐ์ฌ์๊ฐ ๊ฐ ๋ฌธ์ ๋ฅผ ๊ฒฉ๋ฆฌํ๊ณ ๋์์ผ๋ก ์ผ์ ์ ์๋๋ก ์๊ฐ์๋ด์ด ํน์ ๋ฌธ์ ์ ์ ํฉํ ๋ค์ ํญ๋ชฉ์ ๊ฐ๊ฐ ์์ฑํ์ญ์์ค.
st-flash
๋ํ ๋ค์ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๊ฐ์ง ๋ ๋ฌธ์ ๋ฅผ ๊ฐ๋ฅํ ์์ธํ๊ฒ ์ค๋ช ํ๊ณ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋๋ฒ๊ทธ ์ถ๋ ฅ์ ์ถ๊ฐํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
๋ช ๋ น ์ค ์ถ๋ ฅ :
tabemann<strong i="18">@sirius</strong>:~/projects/zeptoforth$ st-flash write zeptoforth.bin 0x08000000
st-flash 1.6.1
2020-06-12T22:42:05 INFO common.c: L4xx: 96 KiB SRAM, 1024 KiB flash in at least 2 KiB pages.
file zeptoforth.bin md5 checksum: d1e51663b9f8971cf1167145c9e76850, stlink checksum: 0x001cfa29
2020-06-12T22:42:05 INFO common.c: Attempting to write 23324 (0x5b1c) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Page:0x0 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08000000 erased
EraseFlash - Page:0x1 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08000800 erased
EraseFlash - Page:0x2 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08001000 erased
EraseFlash - Page:0x3 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08001800 erased
EraseFlash - Page:0x4 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08002000 erased
EraseFlash - Page:0x5 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08002800 erased
EraseFlash - Page:0x6 Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08003000 erased
EraseFlash - Page:0x7 Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08003800 erased
EraseFlash - Page:0x8 Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08004000 erased
EraseFlash - Page:0x9 Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08004800 erased
EraseFlash - Page:0xa Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08005000 erased
EraseFlash - Page:0xb Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08005800 erased
2020-06-12T22:42:06 INFO common.c: Finished erasing 12 pages of 2048 (0x800) bytes
2020-06-12T22:42:06 INFO common.c: Starting Flash write for F2/F4/L4
2020-06-12T22:42:06 INFO flash_loader.c: Successfully loaded flash loader in sram
size: 23324
2020-06-12T22:42:06 ERROR flash_loader.c: flash loader run error
2020-06-12T22:42:06 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1
์์ / ์ค๋ช :
์ด st-flash๋ 0x08000000์์ STM32L476 MCU์ ํ๋์ ๋ฉ๋ชจ๋ฆฌ์ zeptoforth.bin์ ์ฑ๊ณต์ ์ผ๋ก ๊ธฐ๋กํฉ๋๋ค.
์๋ฆผ :์ด ๋ฒ๊ทธ ๋ณด๊ณ ์๋ ์ถฉ๋ถํ ์ ๋ณด๊ฐ ์ ๊ณต๋์ง ์์ผ๋ฉด ์ถ๊ฐ ํต์ง์์ด ์ข ๋ฃ ๋ ์ ์์ต๋๋ค!
์ฌ๋ฌ๋ถ์ ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
stlink ํ๋ก์ ํธ ๊ด๋ฆฌ์
๋๋ Nucleo L476RG ๋ณด๋์์ stlink 1.5.0๊ณผ 1.6.0 ๋ชจ๋์์ ๋์ผํ ํ๊ท๋ฅผ ๊ฒฝํํ์ง๋ง git์ ์ต์ ๋ฒ์ ์์ด ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค (USB ๋ก๊ทธ ๋ฉ์์ง๋ฅผ stdout์ผ๋ก ์คํธํ๋ ๊ฒ์ ์ค์ง ํ ํ).
st-flash 1.6.0-370-g05f79e1-dirty
2020-06-13T07:03:42 INFO common.c: L4xx: 96 KiB SRAM, 1024 KiB flash in at least 2 KiB pages.
file /home/crest/mecrisp-stellaris-2.5.4/mecrisp-stellaris-source/stm32l476-ra-nucleo/mecrisp-stellaris-stm32l476.bin md5 checksum: 2a291252c8ab59ec649217f666b78d4, stlink checksum: 0x001f2ba2
2020-06-13T07:03:42 INFO common.c: Attempting to write 20304 (0x4f50) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Page:0x0 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08000000 erased
EraseFlash - Page:0x1 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08000800 erased
EraseFlash - Page:0x2 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08001000 erased
EraseFlash - Page:0x3 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08001800 erased
EraseFlash - Page:0x4 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08002000 erased
EraseFlash - Page:0x5 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08002800 erased
EraseFlash - Page:0x6 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08003000 erased
EraseFlash - Page:0x7 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08003800 erased
EraseFlash - Page:0x8 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08004000 erased
EraseFlash - Page:0x9 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08004800 erased
2020-06-13T07:03:42 INFO common.c: Finished erasing 10 pages of 2048 (0x800) bytes
2020-06-13T07:03:42 INFO common.c: Starting Flash write for F2/F4/L4
2020-06-13T07:03:42 INFO flash_loader.c: Successfully loaded flash loader in sram
size: 20304
2020-06-13T07:03:43 ERROR flash_loader.c: flash loader run error
2020-06-13T07:03:43 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1
ํ์ด๋ฐ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค. stm32l432์์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ flash_loader.c์์ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ์ต๋๋ค. ๊ทธ๊ฒ์ด ๊ทผ๋ณธ ์์ธ์ด๋ผ๊ณ ๋งํ๊ธฐ๊ฐ ์ฃผ์ ํฉ๋๋ค.
@@ -368,7 +368,7 @@ int stlink_flash_loader_run(stlink_t *sl, flash_loader_t* fl
, stm32_addr_t targe
// by increasing the sleep-per-round to the same order-of-magnitude as
// the tick-rounding that the OS uses, the wait until the error message is
// reduced to the same order of magnitude as what was intended. -- REW.
-#define WAIT_ROUNDS 100
+#define WAIT_ROUNDS 200
/* wait until done (reaches breakpoint) */
for (i = 0; i < WAIT_ROUNDS; i++) {
usleep(1000);
@geoffreymbrown : @tabemann ๋ฐ / ๋๋ @Crest๊ฐ ํ์ธ๋๋ ์ฆ์ PR๋ก ์ ์ถํด ์ฃผ์๊ฒ ์ต๋๊น?
Nucleo STM32L476RG ๋ณด๋์ ์จ๋ณด๋ ST-LINK / V2-1์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ ๋ธ๋์น์์ ํจ์น๋ฅผ ํ ์คํธํ์ต๋๋ค. ํจ์น๋ ํ๊ท๋ฅผ ์์ ํ์ต๋๋ค. ์กฐ์ฌํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@geoffreymbrown : ๊ทธ๋ผ ์ด๊ฑธ ๋งก๊ธธ ๊ฒ์ ...
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Nucleo STM32L476RG ๋ณด๋์ ์จ๋ณด๋ ST-LINK / V2-1์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ ๋ธ๋์น์์ ํจ์น๋ฅผ ํ ์คํธํ์ต๋๋ค. ํจ์น๋ ํ๊ท๋ฅผ ์์ ํ์ต๋๋ค. ์กฐ์ฌํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.