μΉ©μ μ μ§μμ§μ§λ§ μ°κΈ° 루ν΄μ λλ¬νλ©΄ "μ μ μλ coreid, μ¬μ©ν νλμ λ‘λκ° λ¬΄μμΈμ§ νμ€νμ§ μμ΅λλ€. μ€λ¨ν©λλ€! coreid: 2ba01477, chipid: 430" μ€λ₯κ° λ°μν©λλ€.
μ°μΆ:
Flash page at addr: 0x080ff800 erased
2019-02-14T18:14:06 INFO common.c: Finished erasing 512 pages of 2048 (0x800) bytes
2019-02-14T18:14:06 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2019-02-14T18:14:06 ERROR flash_loader.c: unknown coreid, not sure what flash loader to use, aborting! coreid: 2ba01477, chipid: 430
2019-02-14T18:14:06 WARN flash_loader.c: Failed to write flash loader to sram!
2019-02-14T18:14:06 ERROR common.c: stlink_flash_loader_init() == -1
2019-02-14T18:14:06 DEBUG common.c: *** stlink_read_debug32 ffffffff is 0x8000000
2019-02-14T18:14:06 DEBUG common.c: *** stlink_write_reg
data_len = 2 0x2
81 00
2019-02-14T18:14:06 DEBUG common.c: *** stlink_read_debug32 ffffffff is 0x8000004
2019-02-14T18:14:06 DEBUG common.c: *** stlink_write_reg
data_len = 2 0x2
80 00
2019-02-14T18:14:06 DEBUG common.c: *** stlink_run ***
stlink_fwrite_flash() == -1
2019-02-14T18:14:06 DEBUG common.c: *** stlink_exit_debug_mode ***
2019-02-14T18:14:06 DEBUG common.c: *** stlink_write_debug32 a05f0000 to 0xe000edf0
2019-02-14T18:14:06 DEBUG common.c: *** stlink_close ***
ST-LINK μ νΈλ¦¬ν°λ λ€μκ³Ό κ°μ΄ λ§ν©λλ€.
```
μ₯μΉ ID: 0x430
μ₯μΉ νλμ ν¬κΈ°: 1MB
μ₯μΉ μ νκ΅°: STM32F10xx XL λ°λ
GD32 λ§μ΄ν¬λ‘컨νΈλ‘€λ¬λ μ€μ ST Microelectronicsμ ν΄λ‘ μ΄λΌκ³ μκ°ν©λλ€. κ·Έλ€μ μ§μνλ κ²μ μ’μ§λ§ μ΄ λ¬Έμ #761μμμ²λΌ κΈ°μ‘΄ μ§μλλ λ§μ΄ν¬λ‘컨νΈλ‘€λ¬λ₯Ό μ€λ¨ν΄μλ μ λ©λλ€.
μλ
νμΈμ μ¬λ¬λΆ,
STM32F103C8T6μ ν΄λ‘ μΈ CS32F103C8T6 μΉ©μμλ λμΌν λ¬Έμ μ μ§λ©΄νμ΅λλ€.
무μμ΄ μλͺ»λμλμ§ νμ νλ λ° λ§μ μκ°μ΄ κ±Έλ ΈκΈ° λλ¬Έμ κΈ°μμκ² μ μ©ν κ²μ λλ€. - λ€μκ³Ό κ°μ λ°©μμΌλ‘ μΉ©μ μ½μ΄ IDλ₯Ό μΆκ°νμ΅λλ€.
diff --git a/include/stlink.h b/include/stlink.h
index abacd12..582de7b 100644
--- a/include/stlink.h
+++ b/include/stlink.h
@@ -53,6 +53,7 @@ extern "C" {
/* cortex core ids */
// TODO clean this up...
#define STM32VL_CORE_ID 0x1ba01477
+#define CS32VL_CORE_ID 0x2ba01477
#define STM32F7_CORE_ID 0x5ba02477
// Constant STM32 memory map figures
diff --git a/src/flash_loader.c b/src/flash_loader.c
index 7684680..72ed495 100644
--- a/src/flash_loader.c
+++ b/src/flash_loader.c
@@ -262,6 +262,7 @@ int stlink_flash_loader_write_to_sram(stlink_t *sl, stm32_addr_t* addr, size_t*
loader_code = loader_code_stm32l;
loader_size = sizeof(loader_code_stm32l);
} else if (sl->core_id == STM32VL_CORE_ID
+ || sl->core_id == CS32VL_CORE_ID
|| sl->chip_id == STLINK_CHIPID_STM32_F3
|| sl->chip_id == STLINK_CHIPID_STM32_F3_SMALL
|| sl->chip_id == STLINK_CHIPID_STM32_F303_HIGH
μ΄ ν - λͺ¨λ μμλλ‘ μλνμ΅λλ€. μΉ©μ΄ λ€λ₯΄κΈ° λλ¬Έμ 볡μ ν΄μΌ νλ μ½μ΄ μλ³μλ₯Ό λ€μ νμΈνμμμ€.
μλ , λ³Όλ‘λλ―Έλ₯΄.
st-link(v2)λ 'κ°λ μ₯μ'μ
λλ€. λ°©κΈ nrf51822(λ
Έλ₯΄λ μΈλ―Έμ»¨λΈ soc)λ₯Ό κΉλ°μμ΅λλ€.
https://devzone.nordicsemi.com/f/nordic-qa/13869/openocd-promgram-nrf51822-with-st-link-v2-mini
https://devzone.nordicsemi.com/f/nordic-qa/12316/program-bluetooth-for-nrf51822-yunjia-board-with-stlink-v2
νμ§λ§ λλ openocdλ₯Ό μ¬μ©νμ§λ§ lol
μμ μ st-linkλ₯Ό νμ΄νλΌμΈ λͺ¨λλ‘ μ¬μμ
ν΄μΌ ν μλ μλ€λ κ²μ
λλ€.
st-linkλ μΌλ° swd λκΈλ‘ κ±°μ μ¬μ©λκ³ μμ΅λλ€. openocdλ λκΈ μ¦ st-linkμ λμ socλ₯Ό λΆλ¦¬νλ€κ³ μκ°ν©λλ€(μ: stm32f103). λλ¨Έμ§λ 'νλ¬κ·ΈμΈ' λλ stm32μ λ€λ₯Ό μ μλ μΆκ° socsκ° νμν μ μμ΅λλ€. (μ¬μ§μ΄ κ·Έ ν΄λ‘ λ)
μλ νμΈμ μ¬λ¬λΆ,
STM32F103C8T6μ ν΄λ‘ μΈ CS32F103C8T6 μΉ©μμλ λμΌν λ¬Έμ μ μ§λ©΄νμ΅λλ€.무μμ΄ μλͺ»λμλμ§ νμ νλ λ° λ§μ μκ°μ΄ κ±Έλ ΈκΈ° λλ¬Έμ κΈ°μμκ² μ μ©ν κ²μ λλ€. - λ€μκ³Ό κ°μ λ°©μμΌλ‘ μΉ©μ μ½μ΄ IDλ₯Ό μΆκ°νμ΅λλ€.
diff --git a/include/stlink.h b/include/stlink.h index abacd12..582de7b 100644 --- a/include/stlink.h +++ b/include/stlink.h @@ -53,6 +53,7 @@ extern "C" { /* cortex core ids */ // TODO clean this up... #define STM32VL_CORE_ID 0x1ba01477 +#define CS32VL_CORE_ID 0x2ba01477 #define STM32F7_CORE_ID 0x5ba02477 // Constant STM32 memory map figures diff --git a/src/flash_loader.c b/src/flash_loader.c index 7684680..72ed495 100644 --- a/src/flash_loader.c +++ b/src/flash_loader.c @@ -262,6 +262,7 @@ int stlink_flash_loader_write_to_sram(stlink_t *sl, stm32_addr_t* addr, size_t* loader_code = loader_code_stm32l; loader_size = sizeof(loader_code_stm32l); } else if (sl->core_id == STM32VL_CORE_ID + || sl->core_id == CS32VL_CORE_ID || sl->chip_id == STLINK_CHIPID_STM32_F3 || sl->chip_id == STLINK_CHIPID_STM32_F3_SMALL || sl->chip_id == STLINK_CHIPID_STM32_F303_HIGH
μ΄ ν - λͺ¨λ μμλλ‘ μλνμ΅λλ€. μΉ©μ΄ λ€λ₯΄κΈ° λλ¬Έμ 볡μ ν΄μΌ νλ μ½μ΄ μλ³μλ₯Ό λ€μ νμΈνμμμ€.
μλ , λ³Όλ‘λλ―Έλ₯΄.
cs32μ νλμνκΈ° μν΄ μ΄ μ½λλ₯Ό μ΄λμ μΆκ°νλμ§ μλ €μ£Όμ€ μ μμ΅λκΉ?
λλ Ubuntuλ₯Ό μ¬μ©νμ¬ μ½λλ₯Ό νλμνκ³ λμΌν coreid λ¬Έμ κ° μμ§λ§ λ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μμ μ½λλ₯Ό 볡μ¬ν μμΉκ° μμ΅λλ€.
νμ΄
μλ
, μμ§ν .
νλ‘μ νΈκ° μ½κ° λ³κ²½λμμ§λ§ μ λ ¬νλ κ²μ λ§€μ° μ½μ΅λλ€.
/include/stm32.hλ₯Ό λ€μκ³Ό κ°μ΄ λ³κ²½ν©λλ€.
// νΌμ§ μ½μ΄ ID
src/flash_loader.c - λ΄λΆ ν¨μ stlink_flash_loader_write_to_sramμ λ€μκ³Ό κ°μ΄ λ³κ²½ν©λλ€(~λΌμΈ 264).
} else if (sl->core_id == STM32VL_CORE_ID
|| sl->core_id == CS32VL_CORE_ID
|| sl->μΉ©_id == STLINK_CHIPID_STM32_F1_MEDIUM
|| sl->μΉ©_id == STLINK_CHIPID_STM32_F3
κ·Έλ° λ€μ ν΄λΉ λ³κ²½ μ¬νμΌλ‘ stlink μ νΈλ¦¬ν°λ₯Ό μ»΄νμΌν΄μΌ νλ©° μλν΄μΌ ν©λλ€...
μλ , μμ§ν .
νλ‘μ νΈκ° μ½κ° λ³κ²½λμμ§λ§ μ λ ¬νλ κ²μ λ§€μ° μ½μ΅λλ€./include/stm32.hλ₯Ό λ€μκ³Ό κ°μ΄ λ³κ²½ν©λλ€.
// νΌμ§ μ½μ΄ IDSTM32VL_CORE_ID 0x1ba01477 μ μ
CS32VL_CORE_ID 0x2ba01477 μ μ
STM32F7_CORE_ID 0x5ba02477 μ μ
src/flash_loader.c - λ΄λΆ ν¨μ stlink_flash_loader_write_to_sramμ λ€μκ³Ό κ°μ΄ λ³κ²½ν©λλ€(~λΌμΈ 264).
} else if (sl->core_id == STM32VL_CORE_ID
|| sl->core_id == CS32VL_CORE_ID
|| sl->μΉ©_id == STLINK_CHIPID_STM32_F1_MEDIUM
|| sl->μΉ©_id == STLINK_CHIPID_STM32_F3κ·Έλ° λ€μ ν΄λΉ λ³κ²½ μ¬νμΌλ‘ stlink μ νΈλ¦¬ν°λ₯Ό μ»΄νμΌν΄μΌ νλ©° μλν΄μΌ ν©λλ€...
μλ
νμΈμ λ±μ€λ³΄λΉμΉμ
λλ€.
λμμ μν΄ μμ κ°μ΄ νμΌμ λ³κ²½νμ§λ§ "νλμ λ§λ€κΈ°" λͺ
λ Ήμ μ¬μ©ν λ μμ€ν
μ΄ "flash_loader.c"μ μ΄μ μ½ν
μΈ λ₯Ό μ¬μ©νκ³ μλ€λ μλ‘μ΄ λ¬Έμ κ° λ°μνμ΅λλ€.
PCλ₯Ό μ¬λΆν
νλ €κ³ νμ§λ§ λμΌν λ¬Έμ κ° λ°μν©λλ€. κ·Έλ λ΄κ° λ§λ μ λ³κ²½ μ¬νμ μ½μ§ μμ΅λλ€.
κ·Έμκ² μ νμΌμ μ¬μ©νλλ‘ κ°μ νλ λ°©λ²μ μκ³ μλ€λ©΄ μ μκ² μ°λ½νμμμ€.
νμ΄
λλ make clean
μ μνκ³ μ€μ λ¬Έμ μ λ§₯λ½μμ 보μ΄μ§ μλ νμλ₯Ό μ΅μ’
μ μΌλ‘ ν΄κ²°νκΈ° μν΄ λ€μ λΉλν©λλ€. μΆκ° λμμ΄ νμνλ©΄ μΈμ λ μ§ μ΄μ λν μ ν°μΌμ μ μΆνμμμ€. ;-)
@eugenesia : μ΄ MCUμ λν μ‘μΈμ€ κΆνμ΄ μμ κ°λ₯μ±μ΄ λ§€μ° λμ§λ§ μ κ° λ³΄κΈ°μλ μ΄ μ₯μΉκ° μ μ μλ³μ μΈ‘λ©΄μμ CKS32F103κ³Ό μ΄λ»κ²λ κ΄λ ¨μ΄ μλ κ²μ²λΌ 보μ λλ€. λν λ¬Έμ λ₯Ό ν΄κ²°νλ €λ μλλ νκ·(#757)λ₯Ό λμ ν CKS32F103μ 첫 λ²μ§Έ μ κ·Ό λ°©μκ³Ό λμΌν©λλ€. λ°λΌμ μ΄κ²μ #805λ‘λ ν΄κ²°λμμ μ μμ΅λλ€. λΉμ μ΄ κ·Έκ²μ λν΄ μ΄λ»κ² μκ°νμλκΉ?
@rayslinky : #805λ‘ νμΈν μ μλμ?
@eugenesia : μ΄ MCUμ λν μ‘μΈμ€ κΆνμ΄ μμ κ°λ₯μ±μ΄ λ§€μ° λμ§λ§ μ κ° λ³΄κΈ°μλ μ΄ μ₯μΉκ° μ μ μλ³μ μΈ‘λ©΄μμ CKS32F103κ³Ό μ΄λ»κ²λ κ΄λ ¨μ΄ μλ κ²μ²λΌ 보μ λλ€. λν λ¬Έμ λ₯Ό ν΄κ²°νλ €λ μλλ νκ·(#757)λ₯Ό λμ ν CKS32F103μ 첫 λ²μ§Έ μ κ·Ό λ°©μκ³Ό λμΌν©λλ€. λ°λΌμ μ΄κ²μ #805λ‘λ ν΄κ²°λμμ μ μμ΅λλ€. λΉμ μ΄ κ·Έκ²μ λν΄ μ΄λ»κ² μκ°νμλκΉ?
@Nightwalker-87λ, μλ νμΈμ, CS32 μΉ© https://github.com/texane/stlink/issues/756#issuecomment -605629968μ λλ¬μΌ μ¬κ±΄μ μ°λκΈ°λ₯Ό μ΄ν΄λ³΄μμ΅λλ€. μ΄κ²μ μ½κ°μ μ€λ₯ μ½λ―Έλμ΄λ©° ν΄κ²°νμ§ μμλ€λ©΄ κ³μ μ§νλμμ κ²μ λλ€. κ·Έλμ λ§μΉ¨λ΄ κ·Έλ κ² ν΄ μ£Όμ μ κ°μ¬ν©λλ€.
STLINK_CHIPID_STM32_F1_MEDIUM
(0x410)μ μΉ© IDμ λν κ°μ§ κΈ°λ₯μ΄ μΆκ°λμκΈ° λλ¬Έμ #805κ° μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ€κ³ μκ°νμ§ μμ΅λλ€. https://github.com/texane/stlink/issues/769#issue -410536487μμ μ΄ GD32 보λμ μΉ© IDλ 0x430(0x410 μλ)μ΄κ³ μ½μ΄ IDλ 0x2ba01477μ
λλ€.
μΉ© IDλ‘ GD32 보λλ₯Ό μλ³νλ κ²μ μλ§λ μλνμ§ μμ κ²μ
λλ€. μ΅μ λ²μ μ _chipid.h_λ μΉ© ID κ° 0x430μ STM32F1 보λ STLINK_CHIPID_STM32_F1_XL
μνλ κ²μΌλ‘ μ€λͺ
ν©λλ€. λ°λΌμ ν΄λΉ κ°μ GD32 보λ(STM32F303 보λμ 볡μ λ³Έ)μ ν λΉνλ©΄ "STM32_F1_XL" 보λμ λν μλ³μ΄ κΉ¨μ§λλ€.
μ½μ΄ IDλ‘ μ΄ λ³΄λλ₯Ό μλ³ν μ μμ§λ§ μ½μ΄ ID 0x2ba01477μ λ€λ₯Έ 보λμ μ΄ IDκ° μμΌλ―λ‘ λ¬Έμ κ° μμμ μκ³ μμ΅λλ€. μ΄κ²μ΄ #757μ μμ μ¬νμ΄ #761μ νκ·λ₯Ό λμ ν μ΄μ μ λλ€.
μ΄ λ³΄λμ λν΄ μμ§ν μ μλ μ 보λ λ€μκ³Ό κ°μ΅λλ€.
보λ | μ μ‘°μ¬ | ν΄λ‘ | μ½μ΄ | μ½μ΄ ID | μΉ© ID | μ°Έκ³ λ¬Έν
--- | --- | --- | --- | --- | --- | ---
CS32F103C8T6 | μ€κ΅ ν€ μμ€ν
(CKS) | STM32F103C8T6 | ARM Cortex-M3 | 0x2ba01477 | 0x410 ( STLINK_CHIPID_STM32_F1_MEDIUM
) | #756
STM32F401 | μ± | ν΄λΉ μμ(μλ³Έ) | ARM Cortex-M4 | 0x2ba01477 | ? (λλ κ°μ§κ³ μμ§ μλ€) | https://github.com/texane/stlink/issues/761#issuecomment -462068740
GD32F303VGT6 | κΈ°κ°λλ°μ΄μ€ | STM32F303 | ν νΌμ§-M4 | 0x2ba01477 | 0x430 | https://github.com/texane/stlink/issues/769#issue -410536487 GigaDevice GD32 μ ν νμ΄μ§
μ°λ¦¬κ° κ°μ§ λ¬Έμ μμ ν΄λ‘ μΉ©μ IDλ μ λ’°ν μ μλ κ² κ°μ΅λλ€. https://github.com/texane/stlink/issues/761#issuecomment -462868649 μμ μ μν λλ‘ λͺ λ Ήμ€ μΈμλ₯Ό λμ μ¬μ©νμ¬ νλμ λ‘λλ₯Ό μ νν μ μμ΄μΌ ν©λλ€.
μμ μ루μ μ μ½μ΄ IDμ μΉ© IDλ‘ ν΄λ‘ 보λλ₯Ό μλ³νλ κ²μΌ μ μμ΅λλ€. μ΄ IDλ μΆ©λΆν κ³ μ ν΄μΌ ν©λκΉ?
STLINK_CHIPID_STM32_F1_MEDIUM
(0x410)μ μΉ© IDμ λν κ°μ§ κΈ°λ₯μ΄ μΆκ°λμκΈ° λλ¬Έμ #805κ° μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ€κ³ μκ°νμ§ μμ΅λλ€. #769(μ½λ©νΈ)μμ μ΄ GD32 보λμ μΉ© IDλ 0x430(0x410 μλ)μ΄κ³ μ½μ΄ IDλ 0x2ba01477μ λλ€.μΉ© IDλ‘ GD32 보λλ₯Ό μλ³νλ κ²μ μλ§λ μλνμ§ μμ κ²μ λλ€. μ΅μ λ²μ μ chipid.hλ STM32F1 보λ STLINK_CHIPID_STM32_F1_XLμ μνλ μΉ© ID κ° 0x430μ μ€λͺ ν©λλ€. λ°λΌμ ν΄λΉ κ°μ GD32 보λ(STM32F303 보λμ 볡μ λ³Έ)μ ν λΉνλ©΄ "STM32_F1_XL" 보λμ λν μλ³μ΄ κΉ¨μ§λλ€.
λΉμ μ΄ λ°λ‘ μ¬κΈ°μ μμ΅λλ€. μμ§ν μ’ λ μμΈν λ€μ¬λ€λ΄€λλΌλ©΄ μ€μ€λ‘ μμλΌ μ μμμ ν λ° - μ κ²½μ°μ§ λ§μΈμ...
λλ core-id + chip-id + μ μ‘°μ 체λ₯Ό νλ νμ¬ λ³΄λλ₯Ό μ¬λ°λ₯΄κ² μλ³νλ λ°©λ²μ μ¬μ©νλ μμ΄λμ΄λ₯Ό μ’μν©λλ€. ꡬλ³νλ λ° λμμ΄ λ μ μλ 4λ²μ§Έ 맀κ°λ³μκ° μμ μλ μμ΅λλ€. κ·Έμ λν μ°κ΅¬λ₯Ό ν΄μΌ ν©λλ€. μ΄μ¨λ κ·Έκ²μ λͺ κ°μ§ μλͺ»λ μλ³μ νΌνκΈ° μν μ κ·Ό λ°©μμ΄ λ μ μμ΅λλ€. κ·Έλ¬λ μ΄κ²μ λͺ λ Ήμ€ μΈμ μμ΄ νλμ½λ©λ μ μμ΅λλ€.
μμ μμ μ μ¬ν 룩μ
ν
μ΄λΈμ λ¬Έμμ λ£λ μμ΄λμ΄λ μ κ΄μ μμλ λ°λμ§ν©λλ€. /include/stlink/chipid.h
λ° /include/stm32.h
μ λͺ©λ‘μ κΈ°λ°μΌλ‘ ν μ μμ΅λλ€. μ΄κ²μ λν (λΆλΆμ μΌλ‘) ꡬμμ΄λΌκ³ μκ°νλ /doc/testedboards.md
λ₯Ό λ체ν μ μμ΅λλ€. κ·Έλ¬λ κ±°κΈ°μμ μ¬μ© κ°λ₯ν μ 보λ μ΄λ¬ν ν
μ΄λΈμ ν¬ν¨λ μ μμ΅λλ€.
κ΄λ ¨ #903.
κ°μ₯ μ μ©ν λκΈ
μλ , μμ§ν .
νλ‘μ νΈκ° μ½κ° λ³κ²½λμμ§λ§ μ λ ¬νλ κ²μ λ§€μ° μ½μ΅λλ€.
/include/stm32.hλ₯Ό λ€μκ³Ό κ°μ΄ λ³κ²½ν©λλ€.
// νΌμ§ μ½μ΄ ID
STM32VL_CORE_ID 0x1ba01477 μ μ
CS32VL_CORE_ID 0x2ba01477 μ μ
STM32F7_CORE_ID 0x5ba02477 μ μ
src/flash_loader.c - λ΄λΆ ν¨μ stlink_flash_loader_write_to_sramμ λ€μκ³Ό κ°μ΄ λ³κ²½ν©λλ€(~λΌμΈ 264).
} else if (sl->core_id == STM32VL_CORE_ID
|| sl->core_id == CS32VL_CORE_ID
|| sl->μΉ©_id == STLINK_CHIPID_STM32_F1_MEDIUM
|| sl->μΉ©_id == STLINK_CHIPID_STM32_F3
κ·Έλ° λ€μ ν΄λΉ λ³κ²½ μ¬νμΌλ‘ stlink μ νΈλ¦¬ν°λ₯Ό μ»΄νμΌν΄μΌ νλ©° μλν΄μΌ ν©λλ€...