배경
가지다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을 설치 하면작동하지 않습니다(이것도기묘)
질문
"추가 실험"에 따르면 런타임에 사용되는 다른 종속성이 있어야 합니다. 이러한 종속성을 어떻게 결정합니까?