디버깅 및 진단¶
SF32 디버깅은 시리얼 로그부터 시작하십시오. 칩, SDK 릴리스, 프로젝트 설정에 따라 크래시 덤프 도구, 트레이스 캡처, RT-Thread 셸도 사용할 수 있습니다. 대상에 대해 문서화된 절차만 따르십시오.
1차 디버깅¶
시리얼 콘솔을 사용하여 다음을 수집합니다.
- 부트 로그.
- 애플리케이션 출력.
- 프로젝트에서 활성화한 경우 RT-Thread 셸 출력.
- 폴트 메시지.
- 다운로드 및 리셋 동작.
로그는 보드 리비전, SDK 브랜치, 빌드 명령, 플래시 명령, 시리얼 설정과 함께 보관하십시오.
디버깅 순서¶
- 같은 펌웨어로 재현합니다.
- 리셋 후에 재현합니다.
- 전체 재플래싱 후에 재현합니다.
- 요구 사항과 가장 비슷한 SDK 예제에서 재현합니다.
- 제품 변경 사항을 한 번에 하나씩 다시 추가합니다.
이렇게 하면 하드웨어, 보드 지원, 미들웨어, 애플리케이션 문제를 구분하는 데 도움이 됩니다.
알아 두어야 할 도구¶
표: 알아 두어야 할 도구
| 도구 | 용도 |
|---|---|
sftool |
지원 칩의 플래시 읽기/기록/지우기와 리셋을 위한 시리얼 명령줄 도구입니다. 옵션은 칩과 스토리지에 따라 다릅니다. |
SiFli_Trace |
대상 보드에서 지원하는 절차에 따라 로그 출력을 캡처하고 확인합니다. |
UsartServer |
SF32LB52X와 SF32LB56X의 내장 Debug IP를 통한 UART 디버그 워크플로에 필요한 보조 도구입니다. 모든 타깃에 적용된다고 가정하면 안 됩니다. |
AssertDump 및 크래시 덤프 도구 |
해당 칩과 SDK 릴리스에서 제공되는 경우에만 사용합니다. 해당 릴리스에 문서화된 캡처 및 분석 절차를 따르십시오. |
| RT-Thread 셸 | 프로젝트 설정에서 셸을 활성화한 경우에만 런타임 검사와 명령을 사용할 수 있습니다. |
먼저 확인할 항목¶
표: 먼저 확인할 항목
| 증상 | 우선 확인 사항 |
|---|---|
| 하드 폴트 또는 어서트 | 스택 크기, 널 포인터, DMA 버퍼, 캐시 관리. |
| 주변 장치가 응답하지 않음 | 핀 먹스, 클럭, 전원 레일, 보드 이름, 드라이버 활성화. |
| Bluetooth 불안정 | RF 클럭, 안테나 경로, Bluetooth 스택 설정, 연결 파라미터. |
| 디스플레이 화면 이상 | 패널 타이밍, 버퍼 포맷, 캐시/DMA 동기화. |
| 무작위 리셋 | 워치독, 전원 레일, 브라운아웃, 스택 오버플로. |
크래시 리포트 체크리스트¶
크래시를 보고할 때는 다음을 포함하십시오.
- 보드와 리비전.
- 칩 변형(variant).
- SDK 브랜치 또는 커밋.
- 정확한 예제 또는 프로젝트.
- 빌드 명령과 보드 이름.
- 펌웨어 기록 명령.
- 리셋 시점부터의 시리얼 부트 로그.
- 크래시 덤프 또는 어서트 출력.
- 변경하지 않은 SDK 예제에서도 문제가 재현되는지 여부.
최종 업데이트: