Stlink: STM32L476 DISCOVERY : st-flash ์“ฐ๊ธฐ ์‹คํŒจ

์— ๋งŒ๋“  2020๋…„ 06์›” 13์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: stlink-org/stlink

stlink ํ”„๋กœ์ ํŠธ์— ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž ๋ฐ ๋‹ค๋ฅธ ๊ธฐ์—ฌ์ž๊ฐ€ ๊ฐ ๋ฌธ์ œ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ  ๋Œ€์ƒ์œผ๋กœ ์‚ผ์„ ์ˆ˜ ์žˆ๋„๋ก ์‹œ๊ฐ„์„๋‚ด์–ด ํŠน์ • ๋ฌธ์ œ์— ์ ํ•ฉํ•œ ๋‹ค์Œ ํ•ญ๋ชฉ์„ ๊ฐ๊ฐ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ / ๋ณด๋“œ ์œ ํ˜• : Stlink / v2-1
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ ํŽŒ์›จ์–ด ๋ฒ„์ „ : STM32L476 DISCOVERY์™€ ํ†ตํ•ฉ ๋œ ๋ฒ„์ „
  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „ : Linux 5.5.0-1-amd64
  • Stlink ๋„๊ตฌ ๋ฒ„์ „ ๋ฐ / ๋˜๋Š” git ์ปค๋ฐ‹ ํ•ด์‹œ : v1.6.1 (๋ฆด๋ฆฌ์Šค .tar.gz์—์„œ)
  • Stlink ๋ช…๋ น ์ค„ ๋„๊ตฌ ์ด๋ฆ„ : st-flash
  • ๋Œ€์ƒ ์นฉ (๋ฐ ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ๋ณด๋“œ) : STM32L476 DISCOVERY

๋˜ํ•œ ๋‹ค์Œ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ง€ ๋œ ๋ฌธ์ œ๋ฅผ ๊ฐ€๋Šฅํ•œ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ช…๋ น ์ค„ ์ถœ๋ ฅ :

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 ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž

bufixed buregression componenst-flash componenstlink-lib erroflash-loader programmestlinkv2-1 staturesolved targestm32l4

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Nucleo STM32L476RG ๋ณด๋“œ์™€ ์˜จ๋ณด๋“œ ST-LINK / V2-1์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜์—์„œ ํŒจ์น˜๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜๋Š” ํšŒ๊ท€๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์กฐ์‚ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  5 ๋Œ“๊ธ€

๋‚˜๋Š” 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 : ๊ทธ๋Ÿผ ์ด๊ฑธ ๋งก๊ธธ ๊ฒŒ์š” ...

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰