변수 로깅 정보를 텍스트 파일로 만들 수 없나요?
"변수 로깅 정보를 텍스트 파일로 만들 수 없나요? "에 대한 답변입니다.
만약 realtime에 근거한 로깅 정보를 텍스트 파일로 저장하고자 한다면 아래와 같이 두가지 방법이 있습니다.
- JTAG인터페이스가 아닌 확장된 디버그 로직(NEUXS, ETM, OCDS, AURORA 등)을 사용하는 방법
- Snooper를 이용하는 방법
위 두가지 경우는 모두 CPU에 따라 다르게 적용될 수 있는 내용이기에 자세한 것은 별도로 기술지원 요청 바랍니다.
여기에서는 realtime이 아닌 특정 주기마다 변수 로깅 정보를 텍스트 파일로 만드는 방법에 대해 언급하도록 하겠습니다.
이 기능을 사용하려면 runtime memory access가 가능해야 합니다. 대부분의 Automotive에서 사용하는 CPU들은 이를 위해 DUALPORT라는 기능을 제공합니다.
아래와 같이 cmm파일을 작성합니다.
타겟이 동작되고 있는 상태에서 위 cmm파일을 실행하면 vchar라는 변수에 대해 logging 정보를 받아오게 됩니다.
이후 타겟을 멈추면 logging 정보도 더 이상 받아오지 않으며,
해당 정보를 txt파일에 최종 저장하기 위해 반드시 area.close mylog 라는 명령을 입력하셔야 합니다.
추가로 위 예제에서는 1ms마다 vchar변수 값을 logging 하도록 설정해 놨으나 CPU에 따라 최고 속도는 달라질 수 있습니다.
로깅 정보에 대한 결과는 아래와 같이 확인 할 수 있습니다.