2014-10-01 2 views
0

SWO (ITM 사용)를 통해 출력 디버그 정보를 만들고 싶습니다. Core Cortex M3로 할 수 있습니다.특권 모드의 Cortex M3

ITM은 운영 체제 (OS)와 응용 프로그램 이벤트를 추적 할 수의 printf 스타일의 디버깅을 지원 및 진단 시스템 정보를 방출하는 응용 프로그램 구동 추적 소스 ...이를 위해 link

입니다 ITM 레지스터를 구성해야합니다. 그 중 일부는 권한 모드에서만 쓸 수 있습니다.

ITM 추적 권한 등록 사용 포트는 사용자 코드에 의해 액세스 할 수있는 자극을 제어하기 위해 운영 체제를 활성화하는 ITM 추적 권한 등록. 참고 : 이 레지스터는 권한 모드에서만 쓸 수 있습니다. see ITM Trace Privilege Register

IRQs SVC, PendSV, SysTick이 이미 사용 된 경우 권한 모드에서 전환하는 가장 좋은 방법은 무엇입니까? (저는 FreeRTOS를 사용합니다) 진짜입니까?

+0

아마도이 레지스터에 한 번만 쓸 필요가 있기 때문에 나중에 모드 전환을 시도하는 대신 OS 시작 코드에서이 작업을 수행 할 수 없습니까? – Notlikethat

+0

물론 할 수 있습니다. 하지만 dbg_init() 함수에서 ITM 레지스터를 초기화하고 싶습니다. – Lyrri

답변

0

FreeRTOS를 시작하기 전에 (권한없는 모드에서 FreeRTOS 작업을 실행하는 경우) ITM을 구성하십시오.
또는 새 SVC에 대한 지원을 추가하십시오. FreeRTOS SVC는 svc 0을 사용하고 새로운 svc에 대한 지원을 추가 할 수 있습니다. svc 1으로 전화하고 은 svc 0을 FreeRTOS 또는 svc 1으로 ITM 구성 코드로 리디렉션합니다.