배경

배경

배경

가지다gcc 오류Cortex M0 아키텍처에 미치는 영향v5.4.1에서 도입된 것 같습니다.(...트렁크에 고정되어 있는 것으로 보이지만 ATM 옵션에는 관심이 없습니다.)

이 문제를 해결하기 위해 Debian 8.4 이미지가 있는 가상 머신을 사용 gcc-arm-none-eabi하고 패키지를 설치했습니다.

$ gcc-arm-none-eabi -dumpversion
4.8

가상 머신에서 코드를 컴파일하고 대상 장치에 로드하면 문제가 사라지고 모든 것이 원활하게 진행됩니다.

질문

가상 머신을 분리하려면,

  • 나는 gcc-arm-none-eabi v5.3에서 다운로드했다개발자.arm.com/…
  • $PATH이에 따라 변수에 다운로드 경로를 추가하십시오.
  • 달리기make

그러나 생성된 코드는 마이크로컨트롤러에서 예상대로 작동하지 않습니다. 이는 호스트 시스템에서 gcc-arm-none-eabi-5.3을 사용하여 코드를 컴파일할 수 없음을 의미합니다.

추가 실험

문제의 범위를 좁히기 위해,

  • 같은 방법으로 애플리케이션 코드(앱)를 컴파일했습니다.GCC 5.3가상 머신에서(설치 후32비트 지원). 생성된 바이너리는 대상(마이크로컨트롤러)에서 실행됩니다.예상대로.
  • 신청서를 정리했어요GCC 7.3.1하지만작동하지 않을 것으로 예상. 그러나 결과 바이너리는 마이크로 컨트롤러에서 올바르게 실행됩니다. 이것은예상치 못한.
  • 이전 시도를 삭제 gcc-arm-none-eabi하고 다시 시도했습니다. apt-get remove애플리케이션 바이너리는 마이크로컨트롤러에서 계속 실행될 수 있습니다.이건 예상되지 않는다.
  • gcc-arm-none-eabi-4.8설치를 진행하기 전에 VM을 복원했습니다 apt. gcc-arm-none-eabi-7.3다운로드 경로에서 직접 사용합니다 .쓸모 없는예상대로
  • gcc-arm-none-eabi-5.3나는 그것이 작동하기를 바라면서 로 애플리케이션을 컴파일했습니다 . 그러나 마이크로컨트롤러에서는 작동하지 않습니다. 이것은예상치 못한.
  • apt-get install gcc-arm-none-eabi이 시점 에서 다음을 사용하여 툴체인(v4.8)을 설치하면예상치 못한그리고기묘.
  • VM을 새로 설치하여 다시 복원하고 apt-get install gcc-arm-none-eabi gdb-arm-none-eabi스톡 컴파일러를 사용하여 v4.8을 설치 하면작동하지 않습니다(이것도기묘)

질문

"추가 실험"에 따르면 런타임에 사용되는 다른 종속성이 있어야 합니다. 이러한 종속성을 어떻게 결정합니까?

관련 정보