stm32debug-skill은(는) 무엇을 하나요?
이 스킬은 AI 에이전트(예: 대규모 언어 모델 기반 프로그래밍 도우미)를 위한 STM32 디버깅 스킬 패키지입니다. 일반적으로 사용되는 STM32 펌웨어 컴파일, 플래싱, 디버깅, 레지스터 조회 및 변수 실시간 모니터링 기능을 캡슐화하여 AI 도우미가 개발자의 STM32 임베디드 개발을 원활하고 효율적으로 지원할 수 있도록 설계되었습니다.
개요
STM32 마이크로컨트롤러 개발에서 디버깅과 플래싱은 반복적이고 오류가 발생하기 쉬운 작업입니다. 이 스킬은 다음과 같은 핵심 기능을 제공합니다:
- 펌웨어 컴파일:
make및arm-none-eabi-gcc도구 체인을 사용한 자동화된 빌드 - 타겟 플래싱:
OpenOCD를 사용한 STM32 타겟에 바이너리 기록 - 디버깅 세션:
arm-none-eabi-gdb를 사용한 대화형 디버깅 - 레지스터 조회: 핵심 주변 장치 및 코어 레지스터 값 읽기/쓰기
- 변수 감시: 중단점 및 워치포인트를 통한 실시간 변수 모니터링
전제 조건
스킬을 사용하기 전에 다음 도구가 시스템에 설치되어 있어야 합니다:
arm-none-eabi-gcc(GNU Arm Embedded Toolchain)OpenOCD(On-Chip Debugger)make(빌드 자동화 도구)arm-none-eabi-gdb(GNU Debugger for Arm)
사용 예시
펌웨어 컴파일
make clean
make
타겟 플래싱
openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program build/firmware.elf verify reset exit"
GDB 디버깅 세션 시작
arm-none-eabi-gdb build/firmware.elf -ex "target remote localhost:3333"
중단점 설정 및 실행
break main
continue
레지스터 값 읽기
info registers
print/x RCC->CR
변수 감시 설정
watch myVariable
continue
스킬 명령어
| 명령어 | 설명 |
|---|---|
build | 현재 프로젝트 펌웨어 빌드 |
flash | 타겟 마이크로컨트롤러에 펌웨어 플래싱 |
debug | GDB 디버깅 세션 시작 |
reset | 타겟 리셋 및 실행 다시 시작 |
registers | 현재 CPU 레지스터 상태 표시 |
watch | 변수에 워치포인트 설정 |
지원 플랫폼
- STM32 시리즈: STM32F0, STM32F1, STM32F4, STM32L0, STM32L4 등
- 디버거/프로그래머: ST-Link, J-Link, Black Magic Probe 등
- 호스트 OS: Linux, macOS, Windows (WSL 또는 Cygwin 필요)
상세 문서
자세한 사용법과 구성 옵션은 GitHub 저장소를 참조하세요.