ST-Link로 모든 종류의 SWD 프로그램 가능 칩 (ARM-MCU)을 프로그래밍 할 수 있습니까?
ST-Link로 모든 종류의 SWD 프로그램 가능 칩 (ARM-MCU)을 프로그래밍 할 수 있습니까?
답변:
st-link를 플래시하여 Black Magic Probe 로 변환 할 수도 있습니다 . 동일한 이미지는 Blue Pill 을 BMP로 변환합니다 .
둘 다 했어요 Blue Pill은 BMP 내보내기를 USB-rs232 브리지로 쉽게 사용할 수 있다는 이점이 있습니다.
BMP는
ST 마이크로 일렉트로닉스 STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM4D20, SAM4D, SAM4L, SAM4D, SAM4D, SAM4S21, SAM4D, SAM4D21
북유럽 nRF51, nRF52 (BMP를 사용하는 이유)
BMP는 오픈 소스이며, 상용 프로그래밍에 사용될 수 있으며 하드웨어는 저렴할 수 있습니다 ( "실제"BMP 비용은 약 $ 60, 아마존의 파란 알약 5 팩은 선적 된 $ 20 미만입니다).
기존 답변에 추가하려면 일부 칩이 알려져 있습니다 ST-LINK 및 OpenOCD에서 제대로 작동하지 않는 있습니다.
특히, 대상이 Atmel SAMD21 MCU 제품군에서 온 경우 프로세서가 감지되는 이상한 문제가 발생할 가능성이 있지만 플래시 섹터를 지우려는 시도는 오류와 함께 실패합니다.
그 이유는 오히려 관련이 있습니다 같이 인용하는 것입니다.
AFAIK 문제는 NVMCTRL-> CTRLA 레지스터에 반 워드 (16 비트) 쓰기입니다. STLink는 하프 워드 메모리 액세스를 구현하지 않으며 OpenOCD 에뮬레이션은 2 바이트 작업입니다. 불행히도 CTRLA 레지스터는 키와 명령으로 구성되며 원자로 작성되어야합니다. STLink가 2 바이트를 쓰면 NVM 컨트롤러는 STATUS에 PROGE 비트를 설정합니다. "잘못된 명령 및 / 또는 잘못된 키워드가 NVM 명령 레지스터에 기록되었습니다"
해결 방법은 코드 패치로 OpenOCD를 다시 컴파일하는 것입니다. 재미 없어.
그러나 ST-Link를 다른 ST-Link를 통해 깜박이는 것이 마음에 들지 않으면 이를 CMSIS-DAP 어댑터로 변환 하면 SAMD와 잘 작동하며 STM32 및 기타 Cortex-M에서도 작동합니다. 작은 조각.
예, 시도하지는 않았지만 가능하다고 생각합니다. ST 이외의 프로그래밍 장치를 사용하려는 경우 ST 라이센스 계약을 위반했을 수 있습니다.
예를 들어, Segger (디버거 및 프로그래머의 시장 리더 중 하나)는 ST-Link를 J-link로 변환 (필수적으로 Segger 코드로 ST-Link 칩을 덮어 쓰기)을 지원합니다. 이것은 또한 뒤집을 수 있으므로 ST 링크 장치를 원래 형태로 다시 복원하려는 경우 가능합니다.
그러나 여러 버전의 ST-Link가 있습니다. 추가 정보를 제공하는 다음 링크와이를 수행하는 방법에 대한 안내서를 살펴보십시오.
https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html
예, 가능합니다. Coocox IDE와 함께 stlink v2 (원본 및 중국어 USB 스틱 유형 클론)를 사용하고 있습니다. Coocox 또한 독립형 프로그래머 응용 프로그램을 가지고 - CoFlash 칩의 많은 프로그래밍하는 데 사용할 수 있습니다. SWD 인터페이스를 통한 LPC176x 및 LPC175x의 두 가지 시리즈에 대한 경험이 있습니다. 그리고 나는 그 칩에 아무런 문제가 없습니다. 또한 프로그래머를 위해 특정 변경이나 업데이트를하지 않았습니다 (원래 st 링크가 TVCC (PIN1)에서 고전압 레벨을 필요로하는 것을 제외하고, 그렇지 않으면 칩을 프로그래밍 할 수 없었으므로 직접 핀 19 (3.3vcc)에 연결했습니다) stlink v2의 1 번 핀에 연결).
최신 펌웨어가 포함 된 STLink V2 / V2.1 또는 V3을 PC 호스팅 Blackmagic pc-stlinkv2 플랫폼과 함께 사용할 수도 있습니다. "make PROBE_HOST = pc-stlinkv2"로 컴파일하고 "blackmagic_stlinkv2"로 디버그 서버를 시작한 다음 gdb에서 : 2000에 연결하거나 "blackmagic_stlinkv2"로 바이너리를 직접로드하십시오. 이것은 BMP가 알고있는 모든 대상에서 작동합니다. 그러나 V3는 ST가 아닌 대상에 대한 작업을 적극적으로 거부하지만 V2는 신경 쓰지 않습니다.