проблемы с кросс-компилятором arm-elf-gcc на OS X - PullRequest
1 голос
/ 03 ноября 2011

Я пытаюсь скомпилировать свою первую программу linux ARM hello world, и когда я копирую и запускаю двоичный файл на свою целевую плату linux (linuxstamp Atmel arm 9g20), я получаю «Недопустимая инструкция»

Я использую arm-elf-gcc-4.6 на OS X из macports. Я использую Eclipse для и IDE. Похоже, что сборка предназначена скорее для автономной не ОС-программы, а не для запуска кода в пользовательском пространстве Linux. Может ли кто-нибудь указать мне правильное направление? Спасибо.

код:

#include<stdio.h>

int main(){
    printf("hello world\n");
    return 0;
}

Сборка конфигурации Релиз для проекта ArmTest **

сделать все Построение цели: ArmTest.elf Вызов: ARM Mac OS X GCC C Linker /opt/local/bin/arm-elf-gcc-4.6 -nostartfiles -Wl, -Map, ArmTest.map -mcpu = arm920 -mthumb -o "ArmTest.elf" ./main.o
/opt/local/lib/gcc/arm-elf/4.6.0/../../../../arm-elf/bin/ld: предупреждение: не удается найти символ ввода _start; по умолчанию 0000000000008000 Готовая цель строительства: ArmTest.elf

Вызов: ARM Mac OS X GNU Создание образа Flash / opt / local / bin / arm-elf-objcopy -O бинарный ArmTest.elf "ArmTest.hex" Готовое здание: ArmTest.hex

Вызов: ARM Mac OS X GNU Создать список / opt / local / bin / arm-elf-objdump -h -S ArmTest.elf> "ArmTest.lst" Готовое здание: ArmTest.lst

Вызов: ARM Mac OS X GNU Print Size / opt / local / bin / arm-elf-size --format = berkeley ArmTest.elf текстовые данные bss dec hex имя файла 8112 2104 232 10448 28d0 ArmTest.elf Готовое здание: ArmTest.siz

1 Ответ

0 голосов
/ 05 ноября 2011

Я запускаю arm-elf-gcc-4.6 на OS X из macports [...] Похоже, что сборка предназначена скорее для автономной не ОС-программы, а не для запуска кода в пользовательском пространстве Linux.

Действительно, это для встроенных устройств ARM без ОС Linux.Вариант Linux для gcc в качестве кросс-компилятора для ARM должен иметь где-то в названии «linux», например «arm-linux-gcc».

...