C-SPY에서 외장 QSPI 메모리 접근하기

기술노트 200211

아키텍처:

ARM

컴포넌트:

debugger

업데이트:

2021-05-12 오전 11:03

소개

본 기술 노트에서 C-SPY가 외장 QSPI 플레시 메모리에 접근하도록 하는 방법에 대해 기술합니다. 외장 QSPI 메모리를 위해 flash loader를 사용할 때, (예를 들어 우리가 출시한 몇몇 기판 IAR-STM32F746xx-SK board 등) 적용됩니다. 이 설정 과정에서 다운로드 확인을 위해 메모리 매핑이 필요합니다. 그리고 C-SPY 메모리 창이 예상대로 작동합니다.

논의

IAR-STM32F746xx-SK 기판에선, flash loader를 사용할 수 있습니다: $TOOLKIT_DIR$\config\flashloader\ST\FlashSTM32F7xx_STM32F746xx-SK.board.

flash loader를 위한 완전한 소스코드는 이곳에서 찾을 수 있습니다. $TOOLKIT_DIR$\ src\flashloader\ST\FlashSTM32F7xx_QSPI.

flash loader는 의도한 대로 잘 동작합니다. 하지만 flash 로딩 과정이 끝나고 나면, (C-SPY Debugging Guide의 Debugging code in flash 챕터에서 기술되어 있듯이), 마지막 CPU리셋 과정이 남아있습니다. 리셋이 끝나고 나면, QSPI는 메모리 맵이 되어 있지 않기에, QSPI 메모리는 더이상 접근이 가능하지 않습니다.

Project > Options > Debugger > Download > Verify Download 옵션을 활성화 하면 Debug log에 다음과 같은 에러 메시지가 발생합니다:

Verify error at address 0x90000000, target byte: 0x00, byte in file: 0x01

또한 C-SPY 메모리 창에 QSPI 메모리 범위에 대한 올바른 내용이 표시되지 않을 수 있습니다.

메모리 맵핑 QSPI memory

외장 QSPI 메모리에 대한 C-SPY 접근을 가능하게 하려면, 반드시 메모리 맵핑이 이루어져야 합니다. STM32F746xx를 위해 해결 방안에 대한 예제는 C-SPY 매크로 파일 enable_qspi.mac 에서 찾을 수 있습니다:

ST > STM32F7xx > IAR-STM32F746xx-SK > Audio Demo

Project > Options > Debugger > Setup > Setup macros 에서 enable_qspi.mac 이 선택되었다면 다운로드 검증은 예상대로 작동합니다. 또한 QSPI 메모리 범위에 대한 내용은 메모리 창에 올바르게 표시될 것입니다.
enable_qspi.mac 파일은 execUserPreload C-SPY 매크로를 구현합니다. 어떻게 동작하는지에 대해 자세히 살펴보려면 C-SPY Debugging Guide의 Debugging code in flash 챕터를 확인하세요.

결론

검증과 외장 QSPI 메모리 읽기가 C-SPY 디버거에서 가능하려면, 반드시 메모리 매핑이 되어야 합니다. 프로젝트 예제를 통해 시연한 것처럼, C-SPY 매크로로 이 작업을 할 수 있습니다.

 

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