애플리케이션이 독립 실행형으로 실행되지 않는 이유는 무엇입니까?
기술노트 240109
아키텍처:
Arm, Renesas Synergy
컴포넌트:
debugger
업데이트:
2024-01-15 오후 5:59
소개
애플리케이션이 실행되지 않는 데에는 여러 가지 원인이 있을 수 있습니다. 이 기술 노트는 다음 관찰과 관련이 있습니다:
- C-SPY 디버거를 사용할 때 애플리케이션이 작동합니다.
- 애플리케이션은 독립 실행형 모드에서 작동하지 않습니다.
독립형 실행 문제의 가장 일반적인 근본 원인은 다음과 같습니다:
- C-SPY 디버거는 필요한 특수 기능 레지스터(SFR: Special Function Registers)을 설정하는 데 사용할 수 없습니다. 이 원인은 기술 노트 21904에서 다룹니다.
- 해당 부팅 코드를 실행하지 않고 애플리케이션을 실행하려고 합니다. 이 원인은 이 기술 노트에서 다룹니다.
논의
애플리케이션이 'bootloader-application-pair'의 일부인 경우, 애플리케이션 자체는 독립 실행형으로 실행될 수 없습니다. C-SPY 디버거를 사용할 때, C-SPY는 메모리의 어느 위치에서나 실행 파일을 로드하고 실행할 수 있습니다. 즉, 부트로더를 설치하지 않고도 C-SPY에서 애플리케이션을 디버깅할 수 있습니다.
부트로더를 사용하도록 애플리케이션을 빌드하는 경우:
- 그런 다음 애플리케이션은 프로세서의 RESET 시작 주소에서 실행되도록 연결되지 않습니다.
- 따라서 애플리케이션은 시작 시 실행되는 일종의 부팅 코드에 의해 점프될 것으로 예상됩니다.
- 그리고 사용자가 대상을 다시 시작하면(작동하는 부트로더 없이) 애플리케이션이 시작 및 실행되지 않습니다.
독립 실행형을 실행하기 위한 해결 방법은 부트로더를 대상에 다운로드하는 것인 경우가 많습니다. 그러나 다른 조치도 취해야 할 수도 있습니다. 이는 부트로더와 애플리케이션이 상호 작용하는 방식에 따라 다릅니다. (부트로더, 애플리케이션 및 상호 작용의 예는 기술 노트 160822에서 찾을 수 있습니다.)
결론
이 기술 노트는 application-bootloader-pair로 작업할 때 독립 실행형을 실행하는 문제를 다루고, 기술 노트 21904는 C-SPY와 관련된 원인을 다룹니다.
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.