stand-alone 모드에서 프로그램이 실행되지 않는 이유

기술노트 21904

아키텍처:

Arm, Renesas Synergy

컴포넌트:

debugger

업데이트:

2021-07-15 오후 7:09

소개

프로그램이 실행되지 않는 데는 여러 가지 이유가 있을 수 있습니다. 본 기술 노트는 다음 상황에 초점을 맞추었습니다.

상황은 다음과 같습니다:

  • 프로그램이 C-SPY 디버거를 사용하고 연결된 디버거 프로브와 동작을 합니다.
  • 프로그램이 stand-alone 모드(즉, 보드의 연결을 끊고 전원을 껐다가 켠 후)에서 작동하지 않습니다.

배경

C-SPY 디버거를 사용하여 응용프로그램을 실행하는 것과 stand-alone 프로그램을 실행하는 것 사이에는 큰 차이가 있습니다.
C-SPY 디버거로 응용 프로그램을 디버깅할 때 다음과 같이 많은 SFR이 설정됩니다:

  • 플래시로더 소스코드
  • 플래시로더가 사용하는 mac 파일
  • 프로그램이 사용하는 mac 파일

응용 프로그램이 독립 실행 시 이 SFR은 응용 프로그램이 시작/초기화 코드로 설정해야 합니다.
또한 응용 프로그램이 독립 실행형 모드에서 작동하지 않는 이유에 대한 다른 설명도 있습니다. 아래 솔루션을 참조하십시오.

해결방법

  1. 플래시 로더가 사용 중인지 확인합니다(Options > Debugger > Download). 플래시 로더가 구성되어 있으면 플래시 로더 매크로 파일이 사용되는 것일 수 있습니다. .board 및 .flash 파일에서 매크로 파일 .mac에 대한 참조를 확인합니다. 매크로 파일을 열고 해당 파일의 기능을 확인합니다. 응용 프로그램 시작 코드에서 이 작업을 수행해야 하는지 고려하십시오. 플래시 로더를 사용하지 않도록 설정하면 확인할 수 있습니다.
  2. 응용 프로그램이 Setup 매크로 파일(Options > Debugger > Setup)을 사용하고 있는지 확인합니다. 매크로 파일을 열고 해당 파일의 기능을 확인합니다. 응용 프로그램 시작 코드에서도 같은 작업을 수행해야 합니까? 설치 매크로 파일을 사용하지 않도록 설정하면 쉽게 확인할 수 있습니다.
  3. 응용 프로그램 코드에서 printf()를 사용하면 프로젝트 설정에 따라 디버거가 연결되어 있지 않을 때 응용 프로그램이 영구적으로 중단될 수 있습니다. printf()의 사용을 확인하는 방법은 Options > General Options > Library Configuration > Library low-level interface 를 'None'으로 설정하는 것이다.
    ARM Cortex의 경우 호출을 printf()로 유지할 수 있습니다. 그렇다면 Options > General Options > Library Configuration > stdout/stderr이 'Via SWO'로 설정되어 있는지 확인하십시오.
  4. 비 비활성화 Options > General Options > Library Configuration > stdout/stderr > 'Via Semihosting' 은 응용 프로그램이 BKPT-명령어로 중지될 수 있습니다. 이러한 BKPT는 세미호스팅을 위해 SWI 인터럽트를 전송할 때 세미호스팅 시스템에 의해 사용된다. (Options > General Options > Library Configuration > Library low-level interface 설정: 'None')

  5. 대상 장치의 특정 하드웨어는 초기화하는 데 시간이 필요할 수 있습니다(PLL 등 응용 프로그램이 이러한 종류의 적응을 기다리지 않으면 문제가 발생할 수 있습니다. 디버거에서 실행할 때 응용 프로그램이 중지되는 경우가 많습니다(). 이렇게 하면 초기화할 시간이 생기지만 독립 실행 장치를 실행할 때는 추가 지연이 발생하지 않습니다. 확인하려면 긴 지연 루프를 main()의 첫 번째 항목으로 추가합니다. 이 방법이 도움이 될 경우 장치 초기화를 대기 위해 코드를 추가해야 함을 나타냅니다.

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

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