Stlink: [κΈ°λŠ₯] GD32F303VGT6 지원(μ•Œ 수 μ—†λŠ” coreid)

에 λ§Œλ“  2019λ…„ 02μ›” 15일  Β·  12μ½”λ©˜νŠΈ  Β·  좜처: stlink-org/stlink

  • [X] ν”„λ‘œκ·Έλž˜λ¨Έ/λ³΄λ“œ μœ ν˜•: Stlink/v2
  • [X] 운영 체제: Ubuntu 18.04.1
  • [X] Stlink 도ꡬ 버전 및/λ˜λŠ” git 컀밋 ν•΄μ‹œ: v1.5.1-15-g3295ab4
  • [X] Stlink λͺ…령쀄 도ꡬ 이름: st-flash
  • [X] λŒ€μƒ μΉ©(및 μ˜΅μ…˜ λ³΄λ“œ): GD32F303VGT6

칩은 잘 μ§€μ›Œμ§€μ§€λ§Œ μ“°κΈ° 루틴에 λ„λ‹¬ν•˜λ©΄ "μ•Œ 수 μ—†λŠ” 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 밀도

codfeature-request errounknown-coreid generadocumention olinux programmestlinkv2 targegd32f3

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•, μ‹œμ§€ν† .
ν”„λ‘œμ νŠΈκ°€ μ•½κ°„ λ³€κ²½λ˜μ—ˆμ§€λ§Œ μ •λ ¬ν•˜λŠ” 것은 맀우 μ‰½μŠ΅λ‹ˆλ‹€.

/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 μœ ν‹Έλ¦¬ν‹°λ₯Ό μ»΄νŒŒμΌν•΄μ•Ό ν•˜λ©° μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€...

λͺ¨λ“  12 λŒ“κΈ€

GD32 λ§ˆμ΄ν¬λ‘œμ»¨νŠΈλ‘€λŸ¬λŠ” μ‹€μ œ ST Microelectronics의 클둠이라고 μƒκ°ν•©λ‹ˆλ‹€. 그듀을 μ§€μ›ν•˜λŠ” 것은 μ’‹μ§€λ§Œ 이 문제 #761μ—μ„œμ²˜λŸΌ κΈ°μ‘΄ μ§€μ›λ˜λŠ” 마이크둜컨트둀러λ₯Ό μ€‘λ‹¨ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€.

μ°Έκ³ : http://www.gigadevice.com/products/microcontrollers/gd32/arm-cortex-m4/mainstream-line/gd32f303-series/

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,
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

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 μœ ν‹Έλ¦¬ν‹°λ₯Ό μ»΄νŒŒμΌν•΄μ•Ό ν•˜λ©° μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€...

μ•ˆλ…•, μ‹œμ§€ν† .
ν”„λ‘œμ νŠΈκ°€ μ•½κ°„ λ³€κ²½λ˜μ—ˆμ§€λ§Œ μ •λ ¬ν•˜λŠ” 것은 맀우 μ‰½μŠ΅λ‹ˆλ‹€.

/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 μœ ν‹Έλ¦¬ν‹°λ₯Ό μ»΄νŒŒμΌν•΄μ•Ό ν•˜λ©° μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€...

μ•ˆλ…•ν•˜μ„Έμš” λ±μŠ€λ³΄λΉ„μΉ˜μž…λ‹ˆλ‹€.
도움을 μœ„ν•΄ μœ„μ™€ 같이 νŒŒμΌμ„ λ³€κ²½ν–ˆμ§€λ§Œ "ν”Œλž˜μ‹œ λ§Œλ“€κΈ°" λͺ…령을 μ‚¬μš©ν•  λ•Œ μ‹œμŠ€ν…œμ΄ "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.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰