Подтвердить что ты не робот

Exit.c:(. текст + 0x18): undefined ссылка на `_exit 'при использовании arm-none-eabi-gcc

Я новичок в области микроконтроллеров. Мне нужно подключить среду IDE, которая компилирует программы для микроконтроллеров AVR для компиляции программ для микроконтроллеров ARM. Я только что заменил компилятор с AVR на ARM и добавил некоторые параметры, как сказал кто-то. Ниже приведена команда:

\ARM-GCC\bin\arm-none-eabi-gcc -O0 -ffunction-sections -Wall -std=gnu99 -mfloat-abi=soft 
-Wa,-adhlns="[email protected]" -fmessage-length=0 -mcpu=cortex-m0 -mthumb -g3 -gdwarf-2 -Wl,
--gc-sections -o <Dir_name>\Build_Files\Blink_arm.cpp.elf  <Dir_name>\Build_Files\Blink_arm.cpp.o <Dir_name>\Build_Files\core.a 
-L<Dir_name>\Build_Files -lm 

Когда я его выполню, я получаю следующую ошибку:

tools/arm-gcc/bin/../lib/gcc/arm-none-eabi/4.6.2\libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text+0x18): undefined reference to `_exit'  
collect2: ld returned 1 exit status

Могу ли я получить помощь по поводу этой ошибки и как ее решить. А также я не знаю, что задают эти параметры в командной строке.

4b9b3361

Ответ 1

Это происходит при компиляции файла с arm-none-eabi-gcc в одной машине/архитектуре для его загрузки на целевой машине ARM. Скорее всего, вы не используете semihosting, вы хотите перенацелить.

Инструментальная компилятор ARM® Версия 4.1 указывает:

Семиохость - это механизм, который позволяет коду, запущенному на цели ARM, общаться и используйте средства ввода/вывода на главном компьютере, на котором запущен отладчик.

Из toolchain readme.txt(в папке .../gcc-arm-none-eabi-VERSION/share/doc/gcc-arm-none-eabi):

** non-semihosting/retarget

Если вы используете retarget, ссылку: $arm-none-eabi-gcc --specs = nosys.specs $(OTHER_LINK_OPTIONS)

Для меня --specs=nosys.specs было достаточно;)