Для создания программ под другие аппаратные платформы нежели наш ПиСюк
пользуемся специально заточенными toolchain’ами (связкой программ, с
помощью которых преобразовываем исходники в исполняемую программу).
Toolchain’ов - тьма. Потому в них я и запутался.
Сейчас я стал постигать ARM процессоры. Линукс и т.п..
Примеры тулчейнов:
1) arm-linux-*
2) arm-none-linux-gnueabi-*
3) arm-none-eabi-*
4) arm-elf-*
5) arm-eabi-*
Примечание! где под * понимается суффикс “gcc” или “ar”, или “as”, или “g++” и т.п. (например, arm-none-linux-gnueabi-as или arm-none-linux-gnueabi-gcc )
Чтоб не запутываться, существует клише наименования:
arch[-vendor][-OS]-abi
- arch - архитектура (architecture): arm, mips, x86
- vendor - “поставщик” тулчейна: apple, linaro
- OS - для какой ОС сделан тулчейн: linux, none (bare metal - означает, исполнение программы на голом железе - без ОС)
- abi - используемый бинарный интерфейс приложения: eabi, gnueabi, gnueabihf
В соответствии с этим, например:
2) arm-none-linux-gnueabi-* - это тулчейн (может устанавливаться на Debian системы), целевой архитектурой которого является
ARM, без вендора. При помощи него создаются бинарники, которые запускаются на Линукс ОС и используют gnueabi.
3) arm-none-eabi-* - у этого тулчейна целевая архитектура ARM, без вендора. Бинарники создаются с его помощью не для запуска на ОС, а для запуска на “голом железе” и компилируются с ARM EABI. Очень хорошее объяснение здесь http://www.kunen.org/uC/gnu_tool.html
Теперь перейдем к Qemu. В разных источниках по-разному порой запускается qemu.
При клонировании удаленного репозитория с Qemu, либо после
распаковывания tar-архива мы получаем исходники Qemu. После же сборки
Qemu у нас будет два объектных файла:
qemu-arm - используется для исполнения/эмуляции ARM бинарников (так называемый режим эмуляции User-mode)
qemu-system-arm - для загрузки ARM ОС ( Режим System-mode)
Отличная статья. Я на днях просидел в интернете, нигде не мог найти нормальную информацию по именованию тулчейнов
ОтветитьУдалитьрад что помогла статья =). на самом деле это выжимки из разных мест. искать лучше в англоязычном инете. там больше информации
УдалитьОбновил информацию про "3) arm-none-eabi-* - у этого..."
ОтветитьУдалитьгодная статья, автору + , Хорошо бы добавить раздел как компилировать написанный код(например на с++) с помощью тулчейна
ОтветитьУдалить