J-link 디버거의 SWD Pin map은 다음과 같다.
J-link 인터페이스
Segger사의 J-link 디버거는 JTAG과 SWD인터페이스를 제공한다.
JTAG pin-out
SWD를 사용하기위해서는 위 20핀에서 필요한 4핀만 연결하면 된다. 여기서 VTref신호는 디버거에서 타겟보드의 전압을 체크하고 전압레퍼런스로 사용하기 때문에 타겟 보드의 전원을 연결하고, 프로그래밍을 할 MCU의 전압과 연결해야 한다. 그렇지 않을 경우 VTref is 0.xxxxV라고 에러메시지가 나면서 연결이 되지 않는다.
*참고로 J-link와 같은 디버거를 DIY형태로 개발을 해서 OSHW로 판매를 하는 것이 있다. OSHChip_CMSIS_DAP_V1.0
IAR 컴파일러에서 J-LINK 사용하기 2 – EWARM5.41
이전 포스트 “IAR 컴파일러에서 J-LINK 사용하기” 는 EWARM4.xx 버전에서 동작하는 것이였습니다.
컴파일러 버젼을 5.41로 바꿨는데, 이전 버젼에서 사용하던 메뉴들이 없어졌네요.
이전 버젼과 호환성을 유지를 해줘야 하는데… -_-;;
J-link와 연결은 되는데, “Programming flash memory” 창이 떠서 멈줘있는 현상이 있어서 다시 확인을 하니 몇가지 주의해야 할 설정이 있습니다.
컴파일러 옵션 설정에서
- Output Converter => intel extended
- Linker/ Config => icf 파일 을 제대로 설정
- Debugger / Download => board 파일을 제대로 설정
IAR 컴파일러에서 J-LINK 사용하기
먼저 segger사의 홈페이지(http://www.segger.com/download_jlink.html)에서 J-LINK 관련파일을 다운 받아서 설치한다.
보드의 JTAG 소켓에 J-LINK의 JTAG 케이블을 연결을 하고 USB 연결을 한다.
ST서의 STM32의 경우 BOOT0핀이 High로 되어 있어야 한다.
보드의 전원을 켜고 다음과 같이 컴파일러 설정을 한다.
부연 설명을 하면 C-CPY 선택해주어야 Extra output 이 설정할수 있고, 여기서 simple-code로 되어야 합니다.
Sim 파일은 ARM의 axf 파일 같은 역할로, 디버그 정보가 포함된 이미지 파일입니다.
이파일이 만들어져야 브레이크 포인트나 잡을 때 레이블 값을 가지고와 소스와 같이 연계되어 볼 수 있습니다.
설정을 저장을하고, Project > Debug를 실행을 하면 컴파일된 바이너리를 보드에 로드를 하고 디버거에서 설정한 대로 main()함수까지 실행을 한후 멈춰있는다.