STM 32 고급 개발 (16) - CMSIS DAP 디 버 깅 프로젝트
9255 단어 STM32
[http://akb77.com/g/stm32/cmsis-dap-adapter/](http://akb77.com/g/stm32/cmsis-dap-adapter/)
[https://github.com/x893/CMSIS-DAP](https://github.com/x893/CMSIS-DAP)
이 디 버 거 방안 은 매우 저렴 하 다 고 할 수 있 습 니 다. SWD 인터페이스 속 도 는 10m 의 전속력으로 달 할 수 있 고 115200 bps 까지 지원 하 는 직렬 포트 도 추가 되 어 있 습 니 다. 또한 하나의 선 을 연결 하면 두 개의 장치 로 식별 할 수 있 습 니 다. 하나의 디 버 거 로 도 사용 할 수 있 고 다른 항목 의 PCB 판 에 모 아 판 재 디 버 거 와 USART 직렬 포트 기능 회로 로 도 사용 할 수 있 습 니 다.
Keil 에서 CMSIS DAP 를 사용 합 니 다.
내 가 테스트 하 는 과정 에서 Keil 5 만 CMSIS DAP 를 성공 적 으로 식별 할 수 있 는 것 같 았 다. 그 설정 방법 은 기본적으로 다른 디 버 거 사용 방법 과 다 름 이 없 었 다. 왜냐하면 CMSIS DAP 는 자신 을 USB HID 와 CDC ACM 장치 로 표시 해서 사용 한 것 이 고 전 자 는 디 버 깅 기능 의 인터페이스 이 며 후 자 는 직렬 인터페이스 이 며 Windows 에서 자동 으로 식별 할 수 있 기 때문에 구동 을 설치 할 필요 가 없 었 다.하지만 하드웨어 디 버 깅 포트 에 하드웨어 리 셋 포트 를 설치 하지 않 았 다 면 Keil 디 버 깅 설정 에서 Connect & Reset Option 에서 Reset 을 시스템 소프트 인 터 럽 트 로 설정 해 야 한 다 는 것 을 기억 하 세 요.
직렬 포트 기능 에 대해 서 는 직렬 도 우미 로 디 버 거 에 대응 하 는 COM 포트 를 직접 열 면 된다.
Ubuntu 에서 OpenOCD + CMSIS DAP 사용 하기
질문
이 시리즈 의 한 편 으로서 자 연 스 럽 게 우 분투 에 담 긴 내용 이 야 말로 우리 가 이야기 해 야 할 중점 이다.처음에 하드웨어 를 연결 해서 새로운 OpenOCD 설정 을 사 용 했 을 때 CMSIS DAP 에 연결 할 수 없 는 문 제 를 얻 었 습 니 다.
openocd -f interface/cmsis-dap.cfg -f target/stm32f1x.cfg
하룻밤 동안 Google 은 몇 가지 문제 의 키 워드 를 자세히 연구 한 끝 에 시도 하 는 태도 로 새로운 OpenOCD 를 설치 하 는 과정 에서 이전의 문 제 를 발 견 했 습 니 다.원래 당시 에 OpenOCD 를 설치 할 때 두 가지 문제 가 있 었 다.
OpenOCD 다시 설치
문 제 를 말 하고 우 리 는 이어서 해결 방법 을 소개 해 야 한다.
우선, 분명히 우 리 는 컴 파일 을 다시 설정 하고 OpenOCD 를 설치 하여 CMSIS DAP 에 대한 지원 코드 를 시작 해 야 한다. 그러나 그 전에 우 리 는 hid 라 이브 러 리 를 설치 해 야 한다. 왜냐하면 리 눅 스에 서 기본적으로 HID 장치 가 구동 되 지 않 기 때문이다.
$ sudo apt-get install libhidapi-dev
설치 가 완료 되면 OpenOCD 의 소스 코드 경로 에 들 어가 명령 으로 컴 파일 파 라 메 터 를 설정 합 니 다.
$ ./configure --enable-cmsis-dap
설정 스 크 립 트 가 완 료 될 때 까지 기다 리 면 다음 과 같은 내용 이 표 시 됩 니 다.
OpenOCD configuration summary
--------------------------------------------------
MPSSE mode of FTDI based devices yes (auto)
ST-Link JTAG Programmer yes (auto)
TI ICDI JTAG Programmer yes (auto)
Keil ULINK JTAG Programmer yes (auto)
Altera USB-Blaster II Compatible yes (auto)
Versaloon-Link JTAG Programmer yes (auto)
OSBDM (JTAG only) Programmer yes (auto)
eStick/opendous JTAG Programmer yes (auto)
Andes JTAG Programmer yes (auto)
USBProg JTAG Programmer yes (auto)
Raisonance RLink JTAG Programmer yes (auto)
Olimex ARM-JTAG-EW Programmer yes (auto)
CMSIS-DAP Compliant Debugger yes
Cypress KitProg Programmer yes (auto)
Altera USB-Blaster Compatible no
ASIX Presto Adapter no
OpenJTAG Adapter no
SEGGER J-Link Programmer yes (auto)
이 중 CMSIS - DAP 가 활성화 되 었 음 을 볼 수 있 습 니 다. 그 후에 우 리 는 명령 을 사용 하여 새 OpenOCD 를 컴 파일 하고 설치 합 니 다. (이전 버 전 을 삭제 할 필요 가 없습니다)
$ sudo make
$ sudo make install
설치 가 완료 되면 contrib 디 렉 터 리 에 들 어가 명령 을 사용 하여 60 - openocd. rules 파일 을 / etc / udev / rules. d / 디 렉 터 리 에 복사 합 니 다.
$ sudo cp 60-openocd.rules /etc/udev/rules.d/
이 파일 에는 디 버 거 를 지원 하 는 모든 USB 인터페이스 설명 이 포함 되 어 있 기 때문에 이 파일 에 복 사 된 규칙 파일 을 삭제 해 야 합 니 다. 예 를 들 어 49 - stlinkv 1. rules 49 - stlinkv 2. rules 49 - stlinkv 2 - 1. rules 99 - jlink. rules 등 입 니 다.
$ rm 49-stlinkv1.rules 49-stlinkv2.rules 49-stlinkv2-1.rules 99-jlink.rules
시스템 을 다시 시작 해서 규칙 을 다시 불 러 옵 니 다.OpenOCD 명령 으로 연결 하면 큰 성 과 를 거 둘 수 있 습 니 다 ~
디 버 거 사용
시스템 을 다시 시작 한 후 우 리 는 다시 명령 을 사용 하여 목표 판 을 연결 합 니 다.
$ openocd -f interface/cmsis-dap.cfg -f target/stm32f1x.cfg
Open On-Chip Debugger 0.10.0+dev-00197-g2168c47 (2017-10-14-08:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "swd". To override use 'transport select ' .
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
none separate
cortex_m reset_config sysresetreq
Info : CMSIS-DAP: SWD Supported
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : CMSIS-DAP: FW Version = 1.0
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : clock speed 1000 kHz
Info : SWD DPIDR 0x1ba01477
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
연결 성공 ~
PS: 연결 이 실패 하면 CMSIS DAP 의 USB 인 터 페 이 스 를 다시 꽂 아 보 세 요. 저 는 이런 문제 에 부 딪 혔 습 니 다.
직렬 포트 설정
CDC ACM 의 구동 을 사용 하기 때문에, 우리 의 직렬 이름 은 ttyUSB 0 이 아니 라 ttyACM 0 입 니 다. 명령 을 사용 하여 Minicom 의 설정 을 변경 합 니 다.
$ sudo minicom -s
Ctrl+a,o。직렬 인 자 를 설정 합 니 다.serial port setup 에서 직렬 장치 번호 와 포트 율, 기 오 검사 위치 등 인 자 를 설정 한 다음 save setup as dfl 을 선택 한 후 minicom 을 다시 시작 하면 직렬 설정 이 완 료 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STM32CubeIDE를 사용해 보자 How To STM32CubeIDE 일본어판 (11) I2C를 사용해 보자 4 Si7020+ssd1306편STM32CubeIDE를 사용해 보자 How To STM32CubeIDE 일본어판 (10) I2C를 사용해 보자 3 ssd1306편의 계속입니다. Nucleo 보드와 Si7020, SSD1306을 연결합니다. 이번에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.