ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ STM32 ΠΏΠΎ SWD ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠ°ΠΊΠ°Ρ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ° Ρ SWD ΡΠ°Π·ΡΠ΅ΠΌΠ°. ΠΠ°ΠΊ ΠΏΡΠΎΡΠΈΡΡ STM32 ΡΠ΅ΡΠ΅Π· SWD Ρ ΠΏΠΎΠΌΠΎΡΡΡ ST-Link. ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ SWD. ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ OpenOCD Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ SWD.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SWD ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½
SWD (Serial Wire Debug) — ΡΡΠΎ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ARM Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ². ΠΠ½ ΠΏΡΠΈΡΠ΅Π» Π½Π° ΡΠΌΠ΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ JTAG ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ 2 ΡΠΈΠ³Π½Π°Π»ΡΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ 5 Ρ JTAG
- ΠΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π³ΠΎΡΡΡΠ΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (hot-plug)
- Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ARM
SWD Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32 ΠΈ Π΄ΡΡΠ³ΠΈΡ ARM-ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ². ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π°, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
Π Π°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ° SWD ΡΠ°Π·ΡΠ΅ΠΌΠ°
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ 10-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ SWD ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΡ:

- VCC (ΠΏΠΈΡΠ°Π½ΠΈΠ΅ 3.3Π)
- SWCLK (ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π»)
- GND (Π·Π΅ΠΌΠ»Ρ)
- SWDIO (Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π»ΠΈΠ½ΠΈΡ Π΄Π°Π½Π½ΡΡ )
- NRST (ΡΠ±ΡΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°)
- SWO (ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠΉ Π²ΡΡ ΠΎΠ΄)
- ΠΠ»ΡΡ (ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ°ΠΊΡ)
- NC (Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½)
- GND (Π·Π΅ΠΌΠ»Ρ)
- NC (Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½)
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ 4 Π»ΠΈΠ½ΠΈΠΈ: SWDIO, SWCLK, GND ΠΈ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ VCC. ΠΠΈΠ½ΠΈΠΈ NRST ΠΈ SWO ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½Ρ.
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ STM32 ΠΏΠΎ SWD
ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° STM32 ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ SWD Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ:
- ΠΠΎΠ΄Π°ΡΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° STM32 (ΠΎΠ±ΡΡΠ½ΠΎ 3.3Π)
- Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π»ΠΈΠ½ΠΈΡ SWDIO ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ° Ρ ΠΏΠΈΠ½ΠΎΠΌ PA13 ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°
- Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π»ΠΈΠ½ΠΈΡ SWCLK ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ° Ρ ΠΏΠΈΠ½ΠΎΠΌ PA14 ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°
- Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΏΡΠΎΠ²ΠΎΠ΄ GND
- ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ NRST ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΡΠ±ΡΠΎΡΠ° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°
ΠΠ°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΡ 10 ΠΊΠΠΌ Π½Π° Π»ΠΈΠ½ΠΈΡΡ SWDIO ΠΈ SWCLK. ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ SWD
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΡ/ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ SWD ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
- ST-Link V2/V3 — ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ ΠΎΡ STMicroelectronics
- J-Link ΠΎΡ SEGGER — ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Ρ ΡΠΈΡΠΎΠΊΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ
- Black Magic Probe — ΠΎΡΠΊΡΡΡΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ Π½Π° Π±Π°Π·Π΅ STM32F103
- CMSIS-DAP — ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ARM ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠΉ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
- DAPLink — ΠΎΡΠΊΡΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ CMSIS-DAP ΠΎΡ ARM
Π’Π°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠ»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΠΌΠ΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ SWD, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ STM32 Nucleo ΠΈ Discovery.

ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ STM32 ΡΠ΅ΡΠ΅Π· SWD Ρ ΠΏΠΎΠΌΠΎΡΡΡ ST-Link
ST-Link — ΡΡΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ/ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΎΡ STMicroelectronics Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ STM32. ΠΠ½ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ STM32. ΠΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ST-Link ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΏΠΎ USB
- Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ SWDIO, SWCLK ΠΈ GND ST-Link Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΏΠΈΠ½Π°ΠΌΠΈ Π½Π° STM32
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ STM32CubeProgrammer
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ «Connect»
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠΉ hex ΠΈΠ»ΠΈ bin ΡΠ°ΠΉΠ» ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ «Start Programming» Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡΡ STM32
ST-Link ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ, Π½ΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΊΠΎΠ΄Π°, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΡΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π°, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° OpenOCD Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ SWD
OpenOCD — ΡΡΠΎ open-source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ STM32 ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ SWD. ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ OpenOCD Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:

# ΠΡΠ±ΠΎΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ST-Link V2)
source [find interface/stlink-v2.cfg]
# ΠΡΠ±ΠΎΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° SWD
transport select swd
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
source [find target/stm32f4x.cfg]
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
init
# Π‘Π±ΡΠΎΡ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
reset halt
ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ OpenOCD Ρ ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ:
openocd -f stm32f4_swd.cfg
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ OpenOCD ΡΠ΅ΡΠ΅Π· telnet ΠΈΠ»ΠΈ GDB Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ STM32 ΠΏΠΎ SWD ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SWD Π΄Π»Ρ STM32
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ STM32:
- ΠΠ°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅Π³ΠΎ 2 Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ 5 Ρ JTAG
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ STM32
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΡΠΎΠΊΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ Π΄ΠΎ 4 ΠΠΡ
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π²Π½ΡΡΡΠΈΡΡ Π΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΡ
- Π₯ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΡ STMicroelectronics
- Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠ²
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌ SWD ΡΡΠ°Π» ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ STM32 ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ.

ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ SWD
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° SWD Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ STM32 ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ:
- ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ SWDIO ΠΈ SWCLK
- ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΡ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ² Π½Π° Π»ΠΈΠ½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
- ΠΠ΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Π΅ΠΉ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ° ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°
- Π‘Π»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄Π°, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠΌΠ΅Ρ ΠΈ Π½Π° Π²ΡΡΠΎΠΊΠΈΡ ΡΠ°ΡΡΠΎΡΠ°Ρ
- ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ ΡΠ΅ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ
- ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ° Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅
ΠΠ»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄Π° ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
Swd ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ°
Π‘ ΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ Π½Π΅ Π±ΡΠ΄Ρ. Π’Π°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½Π° ΡΡΠΈΠ»ΠΈΡΠ° ST-Link Utility, ΡΠΊΠ°ΡΠ°ΡΡ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° st. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ firmware ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ°. Π ΠΎΠΊΠ½Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π²Π°ΡΠ΅ΠΌ ΠΠ β ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈ ΡΡΠΈΠ»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΠ.
ΠΠΎΠΈΡΠΊ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΠ°ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠΎΡΡ:
Π‘Ρ Π΅ΠΌΡ, ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ, Π΄Π°ΡΠ°ΡΠΈΡΡ:
ΠΡΠ°ΠΉΡ-Π»ΠΈΡΡΡ, ΡΠ΅Π½Ρ:
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ, ΡΡΠ°ΡΡΠΈ, ΠΌΠ°Π½ΡΠ°Π»Ρ:
ΠΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° Π²ΠΎ Π²ΡΠ΅Ρ Π±Π°Π·Π°Ρ .
ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΡΠ»ΠΊΠ° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
- J-Link 19-pin Cortex-M Adapter
- Supra SWD-403 ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ [1/40]
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ST-link v2 ΠΊ STM32F100C8 - ΠΡΠ»Π°Π΄ΠΊΠ° ΠΏΠΎ SWD STM32.
- ΠΠΎΠΏΡΠΎΡΡ ΠΏΠΎ SWD ΠΈ JTAG ColinkEx
- ARM Cortex-M3 STM32F103C8T6 STM32 ΠΏΠ»Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
- ARM Cortex-M3 STM32F103C8T6 STM32 ΠΏΠ»Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
- ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ Π²Π½ΡΡΡΠΈΡΡ Π΅ΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ/ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ STLINK-V3 Π΄Π»Ρ ΠΠ STM32
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ST-link v2 ΠΊ STM32F100C8
ΠΠΠ‘ΠΠΠ’Π ΠΠ’Π ΠΠΠΠΠ ΠΠ Π’ΠΠΠ: ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΌΠ΅ΡΡ Π·Π°Π΄Π½Π΅Π³ΠΎ Π²ΠΈΠ΄Π°, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. ΠΠ°ΠΌΠ΅ΡΠ° Π·Π°Π΄Π½Π΅Π³ΠΎ Ρ ΠΎΠ΄Π°.
J-Link 19-pin Cortex-M Adapter
ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Arduino, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
Π·Π½Π°Π½ΠΈΠΉ. ΠΡΠ»ΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ»Π°ΡΠ° ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π±Π΅Π· ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π΅Ρ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. ΠΠ»Π°ΡΠ° ΠΎΡΠ½Π°ΡΠ΅Π½Π° USB ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, ΠΈ ΠΏΡΠΎΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π΅Π»ΡΠ·Ρ. ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°ΡΡ Π½Π° ΠΏΠ»Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· microUSB ΡΠ°Π·ΡΠ΅ΠΌ ΠΈΠ»ΠΈ Π½Π° ΠΏΠΈΠ½Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ.
Π Π΅ΠΆΠΈΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°: Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ RESET, ΡΡΠΎΠ±Ρ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ. Π Π°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΏΡΠΎΡΡΠΎ β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡΠΌ ΠΌΠ°ΡΡΠ΅ΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ ΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠΈΠ½ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°ΡΡ Π½Π° ΠΏΠ»Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· microUSB ΡΠ°Π·ΡΠ΅ΠΌ ΠΈΠ»ΠΈ Π½Π° ΠΏΠΈΠ½Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°ΡΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ°. ΠΠ»Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΆΠ°ΠΌΠΏΠ΅ΡΠΎΠ² ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ RESET, ΡΡΠΎΠ±Ρ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ²Π°Π΅ΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ Π΄Π»Ρ ΠΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΡΡΡΠ΅Π²ΠΎΠΌ ΡΠ°Π·ΡΠ΅ΠΌΠ΅, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Ρ ΠΏΠ»Π°ΡΠΎΠΉ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΠΉΠΊΠΈ. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΈΠ½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ ΠΏΡΡΠΌΠΎ ΠΊ ΠΊΠ»Π΅ΠΌΠΌΠ°ΠΌ.
ΠΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΡ USB ΠΏΠΎΡΡΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΈΠ»ΠΈ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠ°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ 2,7 β 3,6Π, Π½ΠΎ Π½Π° ΠΏΠ»Π°ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 5Π. ΠΠ°ΡΠ°ΡΠΈΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. ΠΠΎΠ΄Π°ΡΡ ΡΠ°ΡΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅. ΠΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΠ°Π»ΠΎΠ³ ΡΠΎΠ²Π°ΡΠΎΠ².
ΠΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΎΠΏΡΠΎΠ²ΡΠ΅ ΡΠΎΠ²Π°ΡΡ. ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ»ΡΠ³. ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π°ΡΠ΄ΠΈΠΎ-, Π²ΠΈΠ΄Π΅ΠΎ-, ΡΠΎΡΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠ°ΡΡΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡΡΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π°ΡΠ΄ΠΈΠΎ-Π²ΠΈΠ΄Π΅ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½Π°? ΠΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄Π°Π²ΡΠ°. Π Π½Π°Π»ΠΈΡΠΈΠΈ. ΠΡΠ΅Π½ΠΊΠ° ΡΠΎΠ²Π°ΡΠ°. ΠΠΎΠΊΡΠΏΠΊΠ° Π±Π΅Π· ΡΠΈΡΠΊΠ°. ΠΠ½Π»Π°ΠΉΠ½-ΠΎΠΏΠ»Π°ΡΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΡΡΡΡ Π½Π° ΡΡΠ΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΡΠΎΠ΄Π°Π²ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΌΠΎΡΡΠ° ΠΏΠΎΡΡΠ»ΠΊΠΈ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Π΅ΠΌ ΠΏΡΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ΅. Π‘ΠΊΠΈΠ΄ΠΊΠ° Π΅ΡΠ΅ 16 Π΄Π½Π΅ΠΉ. ΠΡΠΏΠΈΡΡ Π² ΠΊΡΠ΅Π΄ΠΈΡ. ΠΡΠ΅Π΄ΠΈΡ ΠΎΡ Π½Π°ΡΠΈΡ
ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ
ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ². ΠΡΠΎΠ΄Π°Π²Π΅Ρ ΠΈΠ·: Π³. ΠΡΠ°ΡΠΈΠΊ ΡΠ°Π±ΠΎΡΡ. ΠΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄Π°Π²ΡΠ°. Π£ΡΠ»ΠΎΠ²ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°. Π Π΅Π³ΠΈΠΎΠ½Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ.
ΠΠ°ΡΠΈΡΠ°Π΅ΠΌ ΠΏΠΎΠΊΡΠΏΠΊΠΈ Π½Π° 3 Π³ΡΠ½. Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ: ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ: ST Microelectronics Ink. ΠΡΠ·ΡΠ²Ρ ΠΎ ΡΠΎΠ²Π°ΡΠ΅. ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΡΠ·ΡΠ² ΠΎ ΡΠΎΠ²Π°ΡΠ΅. ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΡΠ·ΡΠ² ΠΎ ΠΏΡΠΎΠ΄Π°Π²ΡΠ΅. ΠΠ°Π²Π»ΠΎ Π‘Π΄Π΅Π»ΠΊΠ° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π° Prom. Π¦Π΅Π½Π° Π°ΠΊΡΡΠ°Π»ΡΠ½Π° ΠΠ°Π»ΠΈΡΠΈΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ ΠΠ°ΠΊΠ°Π· Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π²ΠΎΠ²ΡΠ΅ΠΌΡ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ. ΠΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎ. Π Π½Π°Ρ. ΠΡΡΠ³ΠΈΠ΅ ΡΡΡΠ°Π½Ρ. Π‘ΠΊΠΈΠ΄ΠΊΠ° Π΅ΡΠ΅ 16 Π΄Π½Π΅ΠΉ ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ: ΠΡΠΏΠΈΡΡ ΠΡΠΏΠΈΡΡ Π² ΠΊΡΠ΅Π΄ΠΈΡ ΠΡΠ΅Π΄ΠΈΡ ΠΎΡ Π½Π°ΡΠΈΡ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ².
ΠΠ΅ΡΠ°Π»ΡΠ½Π΅Π΅ ΠΠ°ΠΏΠΈΡΠ°ΡΡ. ΠΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π½Ρ. ΠΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π½Π°Π»ΠΈΡΠΈΡ. ΠΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° Π² ΡΡΠΎΠΊ.
Supra SWD-403 ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ [1/40]
ΠΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΠΌΠ° Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. Π‘ΡΠ°Π²ΡΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π½Π° 10 ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² — ΠΎΠ½ Ρ ΠΊΠ»ΡΡΠΎΠΌ. ΠΠ΄Π΅ΡΡ Π΅ΡΠ΅ Π·Π°Π³Π»ΡΠ½ΠΈΡΠ΅. ΠΡΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π³ΠΎΡΠΈΡ, ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π Π°Π·ΡΡΠΌ SWD ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 6 ΠΏΠΈΠ½ΠΎΠ², Ρ.ΠΊ. Π½Π° STM32F4 discovery (ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ) ΠΈΠΌΠ΅Π½Π½ΠΎ 6, Ρ
ΠΎΡΡ Π Π°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ° stm32f Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ST-link v2 ΠΊ STM32F100C8
ΠΠΎΠΉΠ΄ΠΈΡΠ΅ , ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°. Π₯Π°Π±Ρ Geektimes Π’ΠΎΡΡΠ΅Ρ ΠΠΎΠΉ ΠΊΡΡΠ³ Π€ΡΠΈΠ»Π°Π½ΡΠΈΠΌ. ΠΠΎΠΉΡΠΈ Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠ°ΡΠ»ΡΠ½ΠΈΠΊΠΎΠΌ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΎΠ³ΠΎ ST-Link v2. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΠΎ Π½Π΅ ΠΎΡΠΊΡΡΡΠΈΠ΅, Π½ΠΎ ΠΏΡΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΡΠΎΡΡ ΠΏΠΎΠ΄ ΠΊΠ°Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ Π½Π°Π΄ΠΎ? ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STM32 ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· Π²ΡΠ²ΠΎΠ΄ SWO Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎ Π²Π΅ΡΡΠΌΠ° ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΡ Π° Π½ΠΎΠ³Π° Reset Π½ΡΠΆΠ½Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΊΠΎΠΌΡΠΎΡΡΠ½Π΅ΠΉ ΠΏΡΠΎΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD ΠΎΡΠΊΠ»ΡΡΠ΅Π½.
ΠΡΠ»Π°Π΄ΠΊΠ° ΠΏΠΎ SWD STM32.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ d-link dsgMP ΠΈ tp-link tl-sg ΠΏΠΎ ΠΎΠΏΡΠΈΠΊΠ΅ ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ. ΠΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅, Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΠΎ ΠΎΠΏΡΠΈΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ SFP ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΠΎΠ·Π½ΠΈΠΊ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ, ΠΏΡΠΎΡΡ ΠΏΠΎΠΌΠΎΡΠΈ. ΠΠΌΠ΅Π΅ΡΡΡ Π½Π΅ ΡΠ°ΠΌΡΠΉ Π½ΠΎΠ²ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΡΠΎ Π²Ρ ΠΎΠ΄Π°ΠΌΠΈ: VGA ΠΈ
Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡ
ΠΎΠ΄ΠΎΠ² Π½Π° ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π²Ρ
ΠΎΠ΄ΠΎΠ²-Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΠΠ; 3.
ΠΠΎΠΏΡΠΎΡΡ ΠΏΠΎ SWD ΠΈ JTAG ColinkEx
ΠΠ°Π»Π΅Π΅ Π·Π°ΠΊΠ»Π΅ΠΈΠ» ΡΠΊΠΎΡΡΠ΅ΠΌ Π΄ΡΡΠ³ΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π‘ΠΏΠ΅ΡΠ²Π° Π»ΡΠ΄ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅-ΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ±ΠΎΡ ΡΠ°ΡΠΊΡΡΠΈΠ²Π°ΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΈΡΠ°Π»ΠΎΠ²ΠΎ , Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ ΠΏΠ°ΡΠ»ΠΎΠΌ Π»Π΅Π·ΡΡ Marketing proposal for customer feedback. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ°. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ ΠΏΠ»Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎ Π½ΠΈΠΆΠ΅ Π½Π° ΡΠΎΡΠΎ ΠΈ ΡΠ²Π΅ΡΠ»ΠΈΠΌ ΠΏΠΎΠ²Π΅ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΎΡΠ²Π΅ΡΡΡΠΈΡ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ, ΠΎΡΠ²Π΅ΡΡΡΠΈΡ Π»ΡΡΡΠ΅ Π½Π°Π΄ΡΠ²Π΅ΡΠ»ΠΈΠ²Π°ΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΡΠ²Π΅ΡΠ»ΠΈΠ²Π°ΡΡ Ρ Π΄ΡΡΠ³ΠΎΠΉ.
ARM Cortex-M3 STM32F103C8T6 STM32 ΠΏΠ»Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Arduino, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
Π·Π½Π°Π½ΠΈΠΉ. ΠΡΠ»ΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ»Π°ΡΠ° ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π±Π΅Π· ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π΅Ρ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. ΠΠ»Π°ΡΠ° ΠΎΡΠ½Π°ΡΠ΅Π½Π° USB ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ, ΠΈ ΠΏΡΠΎΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π΅Π»ΡΠ·Ρ. ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°ΡΡ Π½Π° ΠΏΠ»Π°ΡΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· microUSB ΡΠ°Π·ΡΠ΅ΠΌ ΠΈΠ»ΠΈ Π½Π° ΠΏΠΈΠ½Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ.
Π Π°Π·ΡΡΠΌ SWD ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 6 ΠΏΠΈΠ½ΠΎΠ², Ρ.ΠΊ. Π½Π° STM32F4 discovery (ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ) ΠΈΠΌΠ΅Π½Π½ΠΎ 6, Ρ ΠΎΡΡ Π Π°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ° stm32f Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ.
ARM Cortex-M3 STM32F103C8T6 STM32 ΠΏΠ»Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· ΠΊΠ΅ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΡ Π»ΠΈΠ½ΠΊ ΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΈΡΠ΅Ρ Π½Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. Re: jtag to swd ΡΠ»Π΅ΠΉΡ stm32, ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΡ Π΅ΠΌΡ. Π’Π°ΠΌ Π½Π° ΡΡΡ. Π‘Π΅ΠΉΡΠ°Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ, Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ».
ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ Π²Π½ΡΡΡΠΈΡΡ Π΅ΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ/ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ STLINK-V3 Π΄Π»Ρ ΠΠ STM32
ΠΠΠΠΠ ΠΠ Π’ΠΠΠ: STM32F103C8T6+ST_LINK V2 SWD ΠΠ Π ΠΠΠΠ’ΠΠΠ’
ΠΡΠ°ΠΊ, ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠ°ΡΠΏΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΆΠ΅ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΏΠ»Π°ΡΡ ΠΌΡΡΠ°ΡΡ. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ STM32 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΡ Π΄Π²ΡΠΌΡ ΠΏΡΡΡΠΌΠΈ. ΠΠ· Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠΎΠ² Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²ΡΠ±ΠΎΡ.
ΠΠΌΡΠ»ΡΡΠΎΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Jetlink ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈΠΈ J-Link Ρ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΡΡΠΎΠΈΠΌΠΎΡΡΡΡ. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ JFlash Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², RDI Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠ΅.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ST-link v2 ΠΊ STM32F100C8
ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ: ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π½Π° ΡΠ°ΠΉΡΠ΅. ΠΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ SMS. Π‘ΡΡΠ°Π½ΠΈΡΠ°: 1 ΠΈΠ· ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΈ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠΎΠΌ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΌΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. ΠΠ΅ΡΠ΅ΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Ρ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠΎΠΊ ΠΈΡ ΡΠ»ΡΠΆΠ±Ρ. ΠΠ°ΠΏΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΡΠ΄Π°ΡΠ°ΠΌ ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΡΠΌ. ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ½ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ, Π²ΡΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ±ΠΎΡΠ°.
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΊΠΎΠΏΠ°Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, Π½Π°ΡΠ»ΠΈ ΠΌΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ STM32 , ΠΏΡΠΈΡΠ΅ΠΌ ΠΈ Π²ΡΠ΅ ΡΡ Π΅ΠΌΡ, ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΡΡΡ. ΠΠ΅ Π±Π΅Π΄Π°! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π² ΡΡΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ΅, Π²Π΅Π΄Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ Π² STM32 Π½Π΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ Π² ΡΡΠ°ΡΡΠ΅ Π΄ΠΎΠ±ΡΡΠ΅ AVR -ΠΊΠΈ, Π° ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅!
ΠΠ°ΠΏΡΡΠΊ SWD ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ OpenOCD ΠΈ FT2232H | arm
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠΈΠ²Π°ΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ (MCU) Π½Π° ΡΠ΄ΡΠ΅ ARM Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° OpenOCD ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΠ΅ FT2232H (ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ [1]).
Π¨ΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅, Π΄Π°Π²Π½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΠ΅ΡΡ Π½Π° ΡΡΠ½ΠΊΠ΅ MCU Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ PIC16F ΠΈ ATmega ΠΎΡ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, ΠΊΠ°ΠΊ ATMEL ΠΈ MICROCHIP, ΡΠ½Π°Π±ΠΆΠ΅Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π΄Π°Π½Π½ΡΡ (flash, eeprom). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ATmega ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠ²ΠΎΠ΄Ρ SPI (MISO, MOSI, SCK), ΠΈΠ½ΠΎΠ³Π΄Π° JTAG, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ΄Π½ΠΎΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ debugWire. PIC ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ 2 Π²ΡΠ²ΠΎΠ΄Π° (PGC, PGD) — ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ ΡΠ°ΠΊΡΠΎΠ², ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ°ΠΊ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ²ΡΠ΅ MCU, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΄ΡΠ° ARM, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ JTAG/SWD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ Joint Test Action Group (JTAG) ΠΈ Serial Wire Debug (SWD)? ΠΡΠ²Π΅Ρ: SWD Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° JTAG Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΊΠΎΡΠΏΡΡΠ° MCU: SWD Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ 5-ΡΠΈΠ³Π½Π°Π»ΡΠ½ΡΠΉ JTAG Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 2 ΡΠΈΠ³Π½Π°Π»Π°.
Π§ΡΠΎΠ±Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅Π»Π΅Π²ΡΠΌ MCU, Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Ρ
ΠΎΡΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ
ΠΎΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ PC Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Windows) ΠΈ Π½Π΅ΠΊΠΈΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ, ΡΠ»ΡΠΆΠ°ΡΠΈΠΉ ΠΌΠΎΡΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Ρ
ΠΎΡΡΠΎΠΌ ΠΈ MCU. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ OpenOCD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Ρ
ΠΎΡΡΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· SWD. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ FT2232H, ΡΡΠΎΠ±Ρ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π»Ρ ΠΏΠΎΡΡΠ° USB Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD.
AP ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° (Access Port).
AHB-AP Π·Π΄Π΅ΡΡ AHB ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΡΡ ΡΠΈΠ½Ρ (Advanced High-performance Bus), ΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΠΈΠ½Π° ΡΠ΄ΡΠ° Cortex.
SWCLK ΡΠΈΠ³Π½Π°Π» ΡΠ°ΠΊΡΠΎΠ² SWD.
SWDIO ΡΠΈΠ³Π½Π°Π» Π΄Π°Π½Π½ΡΡ SWD.
SW-DP Serial Wire Debug Port.
[ΠΠ±Π·ΠΎΡ OpenOCD]
ΠΠ Open On-Chip Debugger (OpenOCD [3]) ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ, ΠΎΡΠΊΡΡΡΡΠΌ (open-source) ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π²Π½ΡΡΡΠΈΡΡ
Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (boundary scan, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ
ΡΡ
Π΅ΠΌΠ°Ρ
) Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ΄Π°ΠΏΡΠ΅Ρ ΡΡΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ, ΡΡΠΎΠ±Ρ ΠΈΡ
ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΎ ΡΠ΅Π»Π΅Π²ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ (MCU).
ΠΡΠ»Π°Π΄ΡΠΈΠΊ OpenOCD «ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΎΠ² Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ OpenOCD [2] (ΡΠ°ΠΊΠΆΠ΅ ΡΠΌ. [3]).
Π§ΡΠΎΠ±Ρ OpenOCD Π·Π°ΡΠ°Π±ΠΎΡΠ°Π», Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π»Π΅Π²ΡΠΌ MCU, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ OpenOCD Π·Π°ΠΏΡΡΡΠΈΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡ (daemon). ΠΡΠΎ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π»Π΅Π²ΡΠΌ MCU. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ OpenOCD Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ GDB, Telnet, ΠΈΠ»ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ, ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Conf ΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π°Π΄Π°ΠΏΡΠ΅Ρ, ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
Log Π²ΡΠ²ΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
[ΠΠ±Π·ΠΎΡ FT2232H]
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° FT2232H ΡΡΠΎ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ Π΄Π²ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² [6]. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΠΎΠΉ Multi-Protocol Synchronous Serial Engine (MPSSE). MPSSE ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΠΊ USB Π² ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ UART/FIFO (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ FT2232H ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ USB ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΎ Π² 2 ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΠΏΠΎΡΡΠ°.
[Π§ΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ OpenOCD]
ΠΡΠ±ΠΎΡ OpenOCD Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ FT2232H — ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Ρ ΠΠ°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π±ΡΠ΄ΠΆΠ΅Ρ. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ OpenOCD Π±Π΅ΡΠΏΠ»Π°ΡΠ΅Π½ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠΌΡΡΠ½ΠΈΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ ΠΈ ΠΎΡΠΊΡΡΡΡΠΌ ΠΠ, Ρ OpenOCD ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±Π°Π³Π°ΠΌΠΈ, ΠΈ Π±ΡΠ΄ΡΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΡ
ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ²ΡΠΎΡΡ ΡΡΠ°ΡΡΠΈ [1] ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ OpenOCD ΠΈ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΡΠΎΡΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ MCU, ΠΈ ΠΎΠ½ Π½Π°Π΄Π΅Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΡΠ»ΡΠΆΠΈΡ ΠΠ°ΠΌ Ρ
ΠΎΡΠΎΡΠΈΠΌ ΠΈ ΠΏΠΎΠ»Π½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ OpenOCD Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ. ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ:
β’ Segger J-Link [4]
β’ ULINK [4]
β’ ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ, ΡΠ°ΡΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² ΠΎΡΠ΅Π½ΠΎΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (evaluation boards) ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°ΠΌΠΈ MCU (Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ STM32, EFM32 ΠΈ Ρ. Π΄.).
[Π§ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ OpenOCD]
ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ:
β’ FT2232H breakout board (Π»ΡΠ±Π°Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠΈΠΏ FT2232H).
β’ Windows ΠΈΠ»ΠΈ Linux Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ OpenOCD.
β’ Π¦Π΅Π»Π΅Π²ΠΎΠΉ MCU Ρ ΠΏΠ°ΠΌΡΡΡΡ flash, ΠΊΠΎΡΠΎΡΡΡ ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ.
FT2232H breakout board. Π’Π°ΠΊΡΡ ΠΏΠ»Π°ΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΡΠΏΠΈΡΡ Π½Π° ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ
ΡΠ°ΠΉΡΠ°Ρ
Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Taobao, Alibaba, AliExpress ΠΈΠ»ΠΈ dx. com ΠΏΠΎ ΡΠ΅Π½Π΅ ΠΏΠΎΡΡΠ΄ΠΊΠ° $14. Π’Π°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΏΠ»Π°ΡΠ° FT2232H Board [7].
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΠΏΠΈΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ FTDI, FT2232H Mini-Module [8], Π½ΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ½Π° ΠΎΠ±ΠΎΠΉΠ΄Π΅ΡΡΡ Π΄ΠΎΡΠΎΠΆΠ΅.
Windows. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π²Π΅ΡΡΠΈΡ OpenOCD ΠΈΠ· Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΠΊ [9].
Linux. OpenOCD ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ· ΠΏΡΠ»Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΠ°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Linux, Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ debian [10]. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ OpenOCD ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π·Π½Π°ΡΠΎΠΊΠΎΠ². ΠΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ, Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠ°ΠΉΡΠ΅ Dangerous Prototypes (Π΄Π»Ρ Windows) [11] ΠΈΠ»ΠΈ eLinux (Π΄Π»Ρ Linux) [12]. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° OpenOCD (ΡΠ°ΠΉΠ»Ρ README.Windows ΠΈ README).
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΏΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² OpenOCD ΡΠ΅ΡΠΈΠ»Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ JTAG Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΠ±ΠΎΡΠΊΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π°Π΄Π°ΠΏΡΠΈΡΡΡΡ ΡΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΡ JTAG. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΠ°ΡΠ° ΡΠ±ΠΎΡΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ JTAG.
[ΠΠ°ΠΏΡΡΠΊ OpenOCD Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ EFM32G200F32]
ΠΠ²ΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΠ»Π°ΡΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ EFM32G200F32, ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ARM Π½Π° ΡΠ΄ΡΠ΅ Cortex-M3, ΠΎΠ΄Π½Π°ΠΊΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ MCU.
ΠΠΎΠΆΠΊΠ° | ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° | Π‘ΠΈΠ³Π½Π°Π» |
25 | PF0 | LETIM0_OUT0#2 / DBG_SWCLK#0/1 |
26 | PF1 | LETIM0_OUT1#2 / DBG_SWDIO#0/1 |
27 | PF2 | ACMP1_0#0 / DBG_SWO#0 |
ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° OpenOCD. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ OpenOCD, ΠΠ°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ΅Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» (.cfg), ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ OpenOCD. ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ·ΡΠΊΠ° Jim-Tcl. ΠΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ OpenOCD ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΠΏΠΊΡ scripts. Π ΡΡΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ interface, board ΠΈ target. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ.
interface: Π·Π΄Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ minimodule.cfg.
board: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΏΠ»Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (Ρ. Π΅. ΠΏΠ»Π°Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠΉ MCU), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ atmel_sam4s_xplained_pro.cfg, olimex_stm32_h207.cfg, Β stm32f4discovery.cfg ΠΈ Ρ. Π΄. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΏΠ°ΠΏΠΎΠΊ interface ΠΈ target.
target: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ ΡΠΈΠΏΠΎΠ² MCU.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ OpenOCD, ΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ Π½Π΅Ρ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎ:
openocd -f config1.cfg -f config2.cfg -f config3.cfg
ΠΠ°Π·ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°. Π‘Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ OpenOCD ΡΠΈΠΏ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ interface. Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΠ°ΡΠ° OpenOCD, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
openocd -c interface_list
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠ΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ FT2232H, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° FTDI:
interface ftdi
Π’Π°ΠΊΠΆΠ΅ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄Π»Ρ OpenOCD Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°Π΄Π°ΠΏΡΠ΅ΡΠ΅ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ VID/PID, serial number ΠΈΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°Π½Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΠ΅ FT2232H, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π΅Ρ 2 ΠΊΠ°Π½Π°Π»Π°.
ftdi_vid_pid 0x0403 0x6010 ftdi_channel 1 ftdi_serial "FTZ7O8O0"
ΠΠ΄Π°ΠΏΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ OpenOCD ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΠ°ΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»:
transport select swd
Π’Π°ΠΊΠΆΠ΅ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ OpenOCD Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠΆΠ΅ΠΊ ΠΏΠΎΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π΄Π°Π½Π½ΡΡ FT2232H (ΡΠ΅Π³ΠΈΡΡΡΡ FTDI GPIO data ΠΈ FTDI GPIO direction, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. [6]) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ftdi_layout_init. Π‘Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 16 Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΊΠ°Π½Π°Π»Π°, ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΠ΄Π΅ΡΡ «1» Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²ΡΡ ΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°, ΠΈ «0» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²Ρ ΠΎΠ΄Π°, ΠΈ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° FT2232H ΠΈΠΌΠ΅Π΅ΡΡΡ 16 Π²ΡΠ²ΠΎΠ΄ΠΎΠ² GPIO.
ftdi_layout_init 0x0018 0x05fb
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ GPIO Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0x0018 (0000 0000 0001 1000), ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0x05fb (0000 0101 1111 1011).
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π°Π΄Π°ΠΏΡΠ΅Ρ, ΡΠΌ. ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ OpenOCD [3].
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ MCU ΠΊ Π°Π΄Π°ΠΏΡΠ΅ΡΡ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡ Π΅ΠΌΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° JTAG ΠΈ SWD (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ½ΡΠΉ Ρ Π°ΠΊ SWD, ΡΠ°ΠΉΠ» swd-resistor-hack.cfg). Π‘ΠΈΠ³Π½Π°Π»Ρ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΡΠ½ΠΊΡΠΈΡΠΎΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: «Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ TDI Ρ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ SWDIO ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ (ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ 220 .. 470 ΠΠΌ, Ρ ΡΡΠ΅ΡΠΎΠΌ Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ MCU ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°). Π‘ΠΈΠ³Π½Π°Π» TDO ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ SWDIO».
ΠΠ΅Π· ΡΠ°ΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ MCU Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π’Π°Π±Π»ΠΈΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ FT2232H ΠΊ EFM32G200F32:
FT2232H | EFM32G200F32 |
||||
ΠΠΎΠΆΠΊΠ° | ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° | JTAG | ΠΠΎΠΆΠΊΠ° | ΠΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ° | SWD |
16 | ADBUS0 | TCK | 25 | PF0 | SWCLK |
18 | ADBUS2 | TDO | 26 | PF1 | SWDIO |
17 | ADBUS1 | TDI (ΡΠ΅ΡΠ΅Π· ΡΠ΅Π·ΠΈΡΡΠΎΡ) |
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ»Π°ΡΠ΅ FT2232H Board [7]:
ΠΠ°ΠΏΡΡΠΊ OpenOCD. Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΠ°ΡΠ΅Π³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ Π΄Π°ΠΉΡΠ΅ Π΅ΠΌΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅Π΅ ΠΈΠΌΡ (MyFT2232H-adapter.cfg). ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·ΡΡΡ Π·Π° ΠΎΠ±ΡΠ°Π·Π΅Ρ (ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ Π² Π½Π΅ΠΌ VID/PID ΠΈ serial, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΠΠ°ΡΠ΅ΠΌΡ Π°Π΄Π°ΠΏΡΠ΅ΡΡ FT2232H, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΠΏΠΎΡΡΡ USB ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°):
# ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ
# "Getting Started with OPENOCD Using FT2232H Adapter for SWD Debugging" [1],
# Π°Π²ΡΠΎΡ Yahya Tawil (yahya.tawil_at_gmail.com).
# ΠΠ΅ΡΡΠΈΡ OpenOCD 0.9.0
interface ftdi
transport select swd
ftdi_vid_pid 0x0403 0x6010
#ftdi_device_desc "USB Serial Converter A"
#ftdi_device_desc "ΠΠΎΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ FT2232H Board"
ftdi_serial "FTZ7O8O0"
#adapter_khz 8
ftdi_layout_init 0x0018 0x05fb
ftdi_layout_signal SWD_EN -data 0
ftdi_layout_signal nSRST -data 0x0010
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Π° SWD_EN Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ OpenOCD, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΡΠΈΠ³Π½Π°Π» ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½. ΠΡΠ»ΠΈ ΠΌΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°:
Error: SWD mode is active but SWD_EN signal is not defined
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ Π² Windows
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ OpenOCD [9], Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ CMD, ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ OpenOCD. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ (ΠΊΠ°Π²ΡΡΠΊΠΈ » ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΡΡ Π΄ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΠ±Π΅Π»Ρ):
cd "c:\Program Files (x86)\openocd-0.9.0\bin"
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ SWD_FT.cfg ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ MCU, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠΈΠΏΠΎΠ² EFM32. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
openocd -f interface/ftdi/SWD_FT.cfg -f target/efm32.cfg
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ Π² Linux
Π ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo openocd -f interface/ftdi/SWD_FT.cfg -f target/efm32.cfg
Π ΠΎΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
Info : FTDI SWD mode enabled adapter speed: 1000 kHz cortex_m reset_config sysresetreq Info : clock speed 1000 kHz Info : SWD IDCODE 0x2ba01477 Info : efm32.cpu: hardware has 6 breakpoints, 4 watchpoints
ΠΡΠ»ΠΈ ΠΡ Π²ΡΡΡΠ΅ΡΠΈΠ»ΠΈΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΡΠΎ ΡΠΌ. Π½ΠΈΠΆΠ΅ Π²ΡΠ΅Π·ΠΊΡ «Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ». Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΊ MCU ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Windows.
ΠΡΠΊΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ telnet. Π Π°Π±ΠΎΡΠ°ΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° OpenOCD Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ telnet Π½Π° TCP-ΠΏΠΎΡΡΡ 4444. ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π½Π΅ΠΌΡ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ CMD, ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
telnet localhost 4444
ΠΠ±ΠΌΠ΅Π½ Ρ ΡΠ΅Π»Π΅Π²ΡΠΌ MCU. ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ (halt) ΡΠ΅Π»Π΅Π²ΠΎΠΉ MCU:
reset halt
Π ΠΎΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
target state: halted target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x00000bbc msp: 0x20002000
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΠ°ΡΠ΅Π³ΠΎ MCU, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΡ ΠΎΠ±ΡΠ°Π· flash Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ flash, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π±Π°Π½ΠΊΠΈ flash. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π±Π°Π½ΠΊ, ΠΊΠ°ΠΊ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ efm32.cfg. Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
flash info 0
ΠΠ»ΠΈ:
flash list flash banks
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
#0 : efm32.flash (efm32) at 0x00000000, size 0x00008000, buswidth 0, chipwidth 0
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΡ ΠΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΏΠ°ΠΌΡΡΡ flash, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ write_image. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ°ΠΉΠ» Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°: Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ bin (binary), ihex (Intel HEX), elf (ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ELF), s19 (Motorola s19), mem ΠΈΠ»ΠΈ builder-ΡΠΎΡΠΌΠ°ΡΡ.
flash write_image erase "Desktop/FirstApp.hex"
Π ΠΎΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
auto erase enabled wrote 1536 bytes from file Desktop/FirstApp.hex in 0.124740s (12.025 KiB/s)
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
reset run
Π§ΡΠΎΠ±Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Telnet, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΌ. ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ OpenOCD [3].
Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠΈΠΌΠ΅Ρ 1, ΠΎΡΠΈΠ±ΠΊΠ°:
Error: unable to open ftdi device: usb_open() failed
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ·Π²Π°Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ libusb Π² Windows, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ OpenOCD ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ, WinUSB.
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΡ Π΄Π°Π»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Windows Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ:
ΠΠ°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅Ρ FTDI ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΎΡ FTDI, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ CDM Uninstaller x.x — Windows Device Driver Uninstaller [13]. ΠΠ»Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅ΡΡΠΈ VID ΠΈ PID Π²Π°ΡΠ΅Π³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° Ρ ΡΠΈΠΏΠΎΠΌ FT2232H.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ FTDI Vendor ID (VID) ΡΠ°Π²Π΅Π½ 0x0403. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Product ID (PID) ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
ΠΠ΄Π½ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΡΠΈΠΏΡ Ρ Π±ΡΠΊΠ²ΠΎΠΉ R): 0x6001
ΠΠ²ΡΡ
ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΡΠΈΠΏΡ FT2232C, FT2232D, FT2232H): 0x6010
Π§Π΅ΡΡΡΠ΅Ρ
ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΡΠΈΠΏΡ FT4232H): 0x6011
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ CDM Uninstaller ΡΠΌ. [14].
ΠΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Zadig Tool [15] Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° WinUSB.
ΠΡΠΈΠΌΠ΅Ρ 2, ΠΎΡΠΈΠ±ΠΊΠ°:
Info : clock speed 1000 kHz in procedure 'init' in procedure 'ocd_bouncer'
ΠΡΠΈΡΠΈΠ½Π° ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ TDI ΠΈ TDO (ΡΠΌ. ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΡΠ΅). ΠΠ± ΡΡΠΎΠΌ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΡΠ°ΠΉΠ»Π° swd-resistor-hack.cfg.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ftdi_layout_init Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
ftdi_layout_init 0x0018 0x05fb
ΠΡΠΈΠΌΠ΅Ρ 3, ΠΎΡΠΈΠ±ΠΊΠ°:
Error: libusb_open() failed with LIBUSB_ERROR_ACCESS Error: no device found Error: unable to open ftdi device with vid 0403, pid 6010, description '*' and serial 'FTZ7O8O0'
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ OpenOCD Π² Linux Π±Π΅Π· ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ root. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° OpenOCD Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ sudo (sudo opeocd).
[Π‘ΡΡΠ»ΠΊΠΈ]
1. Getting Started with OPENOCD Using FT2232H Adapter for SWD Debugging site:allaboutcircuits.com.
2. OpenOCD Debug Adapter Hardware site:openocd.org.
3. OpenOCD: ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π°ΡΠ°Π»ΠΎ.
4. Segger J-Link site:segger.com.
5. ULINK Debug and Trace Adapters site:keil.com.
6. FT2232H: Π΄Π²ΡΡ
ΠΊΠ°Π½Π°Π»ΡΠ½Π°Ρ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½Π°Ρ USB ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΠ° Π΄Π»Ρ I/O.
7. FT2232H Board — ΠΌΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Π½Π° Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΌ ΡΠΈΠΏΠ΅ ΠΌΠΎΡΡΠ° USB ΡΠΈΡΠΌΡ FTDI.
8. FT2232H Mini-Module site:ftdichip.com.
9. Getting OpenOCD site:openocd.org.
10. OpenOCD Intel x86 site:packages.debian.org.
11. Compile OpenOCD for Windows site:dangerousprototypes.com.
12. Compiling OpenOCD v0.7.0 on Ubuntu 13.04 site:elinux.org.
13. CDM Uninstaller Windows Device Driver Uninstaller site:ftdichip.com.
14. Readme Future Technology Devices International Ltd CDM Uninstaller site:ftdichip.com.
15. Zadig Tool site:zadig.akeo.ie.
16. Using OpenOCD as a Standalone FLASH Programmer (a simple tutorial) site:olimex.com.
17. Getting Started with the ARM GCC Compiler on Windows, Part 5: Debugging with OpenOCD site:thehackerworkshop.com.
18. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° OpenOCD Π΄Π»Ρ AT91SAM7SE.
19.Β 170918SWD-OpenOCD-FT2232H.zip — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΡΠΈΠ»ΠΈΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅ ΡΡΠ°ΡΡΠΈ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° J-Link
ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ
-   ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
- ΠΠΈΠ΄Π΅ΠΎ
- ΠΠ»ΠΎΠ³
- Π£ΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ
J-Link ΠΈ J-Trace ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΠΌ JTAG, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ARM Multi-ICE. Π Π°Π·ΡΠ΅ΠΌ JTAG ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ 20-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ Ρ ΠΏΡΠΎΡΠ΅Π·ΡΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ (IDC) Ρ ΠΊΠ»ΡΡΠΎΠΌ (ΡΡΠ΅ΠΊΠ΅Ρ 2,54 ΠΌΠΌ), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΡΠ°Π·ΡΠ΅ΠΌΠ°ΠΌΠΈ IDC, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π½Π° Π»Π΅Π½ΡΠΎΡΠ½ΠΎΠΌ ΠΊΠ°Π±Π΅Π»Π΅.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π²ΡΠ²ΠΎΠ΄Ρ J-Link/J-Trace JTAG:
* Π Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ J-Link, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ J-Link ULTRA+, ΡΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ GND Π² ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ JTAG/SWD Π² ΡΠ΅Π»ΠΎΠΌ.Π Π°Π·ΡΠ΅ΠΌ J-Link ΠΈ J-Trace JTAG ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ ARM Serial Wire Debug (SWD).
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π²ΡΠ²ΠΎΠ΄Ρ J-Link / J-Trace SWD.
* Π Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ J-Link, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ J-Link ULTRA+, ΡΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ GND Π² ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ JTAG/SWD Π² ΡΠ΅Π»ΠΎΠΌ.ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ SWO/SWV ΡΠΌ. Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ :
Β
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ CoreSight β Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Cortexβ’-M3 β Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
cJTAG.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π²ΡΠ²ΠΎΠ΄Ρ J-Link / J-Trace cJTAG.
Π¨ΡΠΈΡΡ | Π‘ΠΈΠ³Π½Π°Π» | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|---|
1 | VTref | ΠΡ ΠΎΠ΄ | ΠΡΠΎ ΡΠ΅Π»Π΅Π²ΠΎΠ΅ ΠΎΠΏΠΎΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ Ρ ΡΠ΅Π»ΠΈ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠΎΠ²Π½ΡΠΌΠΈ ΡΠ΅Π»ΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ ΠΏΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Vdd ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΡ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ°. |
2 | Vsupply | NC | ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ Π² J-Link. ΠΠ½ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ ΠΊ Vdd ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΎΡΠΊΡΡΡΡΠΌ Π² ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. |
3 | ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | NC | ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ J-Link ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ cJTAG. |
5 | ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | NC | ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ J-Link ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ cJTAG.![]() |
7 | TMSC | ΠΠ²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ | ΠΠ²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ TDI, TMS ΠΈ TDO |
9 | TCKC | ΠΡΡ ΠΎΠ΄ | Π’Π°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠ³Π½Π°Π» Π΄Π»Ρ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π¦Π. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠΎΡ Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ» Π²ΡΡΡΠ½ΡΡ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ TCK ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. |
11 | ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | NC | ΠΡΠΎΡ Π²ΡΠ²ΠΎΠ΄ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ J-Link ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ cJTAG. |
13 | ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | NC | ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ J-Link ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ cJTAG. |
15 | nΠ‘ΠΠ ΠΠ‘ | ΠΠ²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ | Π‘ΠΈΠ³Π½Π°Π» ΡΠ±ΡΠΎΡΠ° ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π¦Π. ΠΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ RESET ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π¦Π, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«nRSTΒ», Β«nRESETΒ» ΠΈΠ»ΠΈ Β«RESETΒ». ΠΡΠΎΡ ΡΠΈΠ³Π½Π°Π» ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ. |
17 | ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | ΠΠ | ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ Π² J-Link.![]() |
19 | ΠΠΈΡΠ°Π½ΠΈΠ΅ 5 Π | ΠΡΡ ΠΎΠ΄ | ΠΡΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ»Π°Ρ eval. |
ΠΠΎΠ½ΡΠ°ΠΊΡΡ 4, 6, 8, 10, 12, 14, 16, 18, 20 β ΡΡΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ GND, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊ GND Π² J-Link. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ GND Π² ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
* Π Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ J-Link, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ J-Link ULTRA+, ΡΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ GND Π² ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π΄Π»Ρ cJTAG Π² ΡΠ΅Π»ΠΎΠΌ.Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ: ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° | ΠΡΠΎΠ΅ΠΊΡ STM32-base
Π ΡΡΠΎΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΊ ΠΌΠ°ΠΊΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅. ΠΡΡΡ Π΄Π²Π° ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°Π·ΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ SWD (Serial Wire Debug) ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ JTAG.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ ST Nucleo ΠΈ Discovery
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ
ΠΏΠ»Π°Ρ ST Nucleo ΠΈΠ»ΠΈ Discovery, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ. ΠΡΠΈ ΠΏΠ»Π°ΡΡ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ ST-LINK/V2. ΠΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠ»Π°ΡΡ ΡΠ΅ΡΠ΅Π· USB ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΠΈ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠ°Π±ΠΎΡΠ΅!
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΏΠ»Π°Ρ
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΏΠ»Π°Ρ, Π²Π°ΠΌ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΠΏΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π‘Π’-ΠΠΠΠ/V2.
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡ ΠΊ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΡ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 4-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ SWD, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΡΡ. ΠΡΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΡΠΆΡΠΊΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ dupont, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈ ΠΆΠ΅Π½ΡΠΊΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΡ, ΠΊΠΎΠ½ΡΠ°ΠΊΡ +3,3 Π, ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π½Π΅Ρ.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡ +3,3 Π, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ°Π΅ΡΠ΅ ΠΏΠ»Π°ΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ
ΠΌΠ°ΠΊΠ΅ΡΠ½ΡΡ
ΠΏΠ»Π°Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π·Π°ΡΠΈΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°Ρ
ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡ, ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΠ.
Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΠ±Π·ΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
Π€ΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ° | Π¨ΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° | Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΡΠΈΡΡ |
---|---|---|
Π¨ΡΠΈΡΡ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΡ | ΠΠ΅ΠΌΠ»Ρ | ΠΠ΅ΠΌΠ»Ρ |
ΠΠΎΠ½ΡΠ°ΠΊΡ +3,3 Π | ΠΠΠ / ΠΠΠ / 3,3 Π | ΠΠΠ¦ / ΠΠΠ / 3,3 Π |
Π§Π°ΡΠΎΠ²ΠΎΠΉ ΡΡΠΈΡΡ | SWCLK / SWCK | CLK / SWCLK |
ΠΠΎΠ½ΡΠ°ΠΊΡ Π΄Π°Π½Π½ΡΡ | Π‘ΠΠΠΠ | DIO / SWDIO |
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΌΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ 4-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΠΌΠ° SWD, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΈΠΌΠ΅Π΅Ρ 20-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ JTAG. ΠΡΠΎΡ ΡΠ°Π·ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ JTAG. Π‘ΡΠ΄Π° Π²Ρ
ΠΎΠ΄ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ SWD. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½ΠΈΠΆΠ΅ Π΄Π»Ρ ΠΎΠ±Π·ΠΎΡΠ° ΡΠΈΠΏΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ARM JTAG.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡ +3,3 Π, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ°Π΅ΡΠ΅ ΠΏΠ»Π°ΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ ΠΌΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π·Π°ΡΠΈΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡ, ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΠ.
Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΠ±Π·ΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
Π€ΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ° | Π¨ΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° | Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΡΠΈΡΡ |
---|---|---|
Π¨ΡΠΈΡΡ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΡ | ΠΠ΅ΠΌΠ»Ρ | ΠΠ΅ΠΌΠ»Ρ |
ΠΠΎΠ½ΡΠ°ΠΊΡ +3,3 Π | ΠΠΠ / ΠΠΠ / 3,3 Π | ΠΠΠ¦ |
Π§Π°ΡΠΎΠ²ΠΎΠΉ ΡΡΠΈΡΡ | SWCLK / SWCK | Π‘ΠΠΠΠ |
ΠΠΎΠ½ΡΠ°ΠΊΡ Π΄Π°Π½Π½ΡΡ | Π‘ΠΠΠΠ | Π‘ΠΠΠΠ |
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ GPIO
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Π±Π΅Π· ΡΠ°Π·ΡΠ΅ΠΌΠ° SWD ΠΈΠ»ΠΈ JTAG, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΠΎΡΡΠ°ΠΌ GPIO. ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π· SWD ΠΈΠ»ΠΈ JTAG-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Ρ
ΠΎΡΡ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡ +3,3 Π, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ°Π΅ΡΠ΅ ΠΏΠ»Π°ΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ ΠΌΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π·Π°ΡΠΈΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°Ρ ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡ, ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΠ.
Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΠ±Π·ΠΎΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
Π€ΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ° | Π¨ΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° | Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΡΠΈΡΡ |
---|---|---|
Π¨ΡΠΈΡΡ Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΡ | ΠΠ΅ΠΌΠ»Ρ | ΠΡΠ±ΠΎΠΉ GND ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ |
ΠΠΎΠ½ΡΠ°ΠΊΡ +3,3 Π | ΠΠΠ / ΠΠΠ / 3,3 Π | ΠΡΠ±ΠΎΠΉ +3,3 Π ΠΊΠΎΠ½ΡΠ°ΠΊΡ |
Π§Π°ΡΠΎΠ²ΠΎΠΉ ΡΡΠΈΡΡ | SWCLK / SWCK | ΠΠ14 |
ΠΠΎΠ½ΡΠ°ΠΊΡ Π΄Π°Π½Π½ΡΡ | Π‘ΠΠΠΠ | ΠΠ13 |
ΠΡΠ»Π°Π΄ΡΠΈΠΊΠΈ
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ
ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠ².
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ST-LINK/V2
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ST-LINK/V2 β ΡΡΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ST Microelectronics, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΠΏΠΈΡΡ Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΡΠΎΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΈ. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ ST-LINK/V2, ST ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²Π°ΡΠΈΠ°Π½Ρ ST-LINK/V2-ISOL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΠΎΠΉ. ΠΡΠ° ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎ 1000Π Π‘ΠΠ .
ΠΡΠΎΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ 20-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ IDC Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅Π»Π΅Π²ΡΠΌ ΠΏΠ»Π°ΡΠ°ΠΌ. Π Π°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΡ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½ΠΈΠΆΠ΅.
Nucleo ST-LINK/V2
ST-LINK/V2, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² ΠΏΠ»Π°ΡΡ Nucleo-64 ΠΈ Nucleo-144, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΠΈ Ρ CN2
(Nucleo-64) ΠΈΠ»ΠΈ CN4
(Nucleo-144). Π’ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CN4
(Nucleo-64) ΠΈΠ»ΠΈ CN6
(Nucleo-144) Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π²Π°ΡΠ΅ΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅.
ΠΡΠΎΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ 6-ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ dupont Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ°Π·ΡΠ΅ΠΌΡ SWD Π½Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅.