클럭이 공급되지 않거나 전원이 꺼진 주변 장치의 레지스터에 엑세스

기술노트 160909

아키텍처:

ARM

컴포넌트:

debugger

업데이트:

2021-07-15 오후 7:06

소개

C-SPY에서 클럭이 공급되지 않거나 혹은 전원이 꺼진 주변 장치의 레지스터에 엑세스하면 예기치 않은 결과가 발생할 수 있습니다.

 

논의

디버깅하는 동안 클럭이 공급되지 않거나 전원이 꺼진 주변 장치의 레지스터에 액세스하면 예기치 않은 동작이 발생할 수 있습니다. 잘못된 데이터를 읽을 수 있거나, 쓰기 작업이 예기치 않은 결과를 가져오거나 영향을 미치지 않을 수 있습니다. 경우에 따라 쓰기 또는 읽기로 인해 CPU가 재설정되거나 디버그 연결이 끊어질 수 있습니다.

이러한 경우 정확한 동작은 장치 구현에 따라 달라집니다.

메모리 창에 주변 메모리 주소 범위를 표시하거나 레지스터 창에 주변 레지스터를 표시하는 것만으로도 이러한 효과를 발생시킬 수 있습니다.

커스텀 레지스터 그룹을 사용

일부 레지스터를 보는 한 가지 방법은 클럭이 공급되지 않거나나 전원이 꺼진 주변 레지스터에 액세스하는 것을 피하는 것이며 응용 프로그램별 레지스터 그룹을 만드는 것입니다. 그렇게 하려면 디버그 세션 중에 View > Registers > Register User Groups Setup 을 선택합니다. 문제 없이 액세스할 수 있는 레지스터만 사용하여 사용자 레지스터 그룹을 생성합니다.

사전 정의된 레지스터 그룹(예: UART 및 GPIO 레지스터 조합)의 레지스터를 포함하는 결합 그룹을 생성할 수 있습니다.

결론

클럭이 공급되지 않거나, 전원 차단 또는 기타 비활성화된 주변 장치의 레지스터에 액세스하면 충돌이 발생하거나 프로그램 동작이 변경되는 경우 이를 방지하기 위한 단계를 수행해야 합니다. 다음 대안을 고려하십시오:

  • 레지스터에 접근하는 것을 피하기
  • 예를 들어 C-SPY 매크로를 통해 주변 장치를 활성화하여 C-SPY가 레지스터 컨텐츠에 액세스할 때 주변 장치가 활성화되었는지 확인합니다.

C-SPY 매크로와 Register User Groups에 대한 더 자세한 정보를 위해서, Help > C-SPY Debugging guide를 선택하세요.

 

모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.