기존에 Nucleo 보드를 활용해 STM32CubeIDE를 활용하던 터라 잔오류 없이 동작하는 IDE의 정교함에 감탄만 하다, 오늘 처음으로 위의 오류를 보았다.
위의 사진은 오류 발생을 알리는 팝업창이며, 콘솔 로그는 아래와 같이 남는다.
STMicroelectronics 사의 정품 ST-LINK 이용하던 이용자들은 아마 본적이 없는 에러일테지만,
아래의 정품이 아닌 호환 ST-Link V2를 이용하는 사람들은 STM32CubeIDE의 Run, 또는 Debug 시에 위의 문제를 마주할 수 있다.
STM32CubeIDE 부터 Run, Debug시에 업로드 장비가 ST의 장비인지 확인하는 프로세스가 있어 그 부분에서 걸리는 것으로 추정이 된다.
따라서, 빌드시에 형성되는 .bin 파일을 직접 STM32CubeProgrammer을 통해 업로드 하는 방식으로 우회할 수 있다.
시험 환경
칩셋 : stm32f103c8t6
보드 : Blue Pill
STM32CubeProgrammer를 켜고,
우측 상단의 Connect 클릭을 통해 ST-LINK와 연결하면 현재 칩셋의 내부 메모리의 상태를 확인할수 있다.
좌측 상단의 Open file을 클릭해 올리고자 하는 .bin 파일을 선택하자. 위에서 설명한것과 같이 프로젝트 폴더 내부의 Debug 경로 아래에 존재한다.
파일이 열리면, 아까 본 메모리맵과 같은 형태로 확인할 수 있다. 다운로드 이후 메모리가 잘 세팅되었는지 확인하는데 도움이 되니 문자 몇개는 눈에 담아두면 좋다.
우측 상단의 Download를 클릭하면 ST-Link를 통해 다운로드가 진행되고, 메모리맵이 업데이트 된다. 아까 처음에 연결 직후 확인했던것과 달리 STM32CubeIDE를 통해 빌드한 .bin 과 같은 값을 보이는 것 또한 확인할 수 있다.
이런 방식으로 기존의 호환 ST-Link를 활용할 수 있기는 하지만, 급할 때 임시 방편으로만 쓰고 최대한 정품을 이용하도록 하는것이 좋을 것 같다.
요약
1. STM32CubeIDE에서 프로젝트를 빌드 (.bin 파일 생성)
2. STM32CubeProgrammer에서 ST-Link 연결
3. 생성한 .bin 파일을 STM32CubeProgrammer을 통해 다운로드