Цитата(yanvasiij @ Mar 30 2016, 17:51)

Как выяснилось[/url] линковка статических либ осуществляется arm-none-eabi-gcc-ar, а линковка исполняемого файла arm-none-eabi-gcc. Как же сделать так, чтобы на выходе получать и то и то?
Извините, но по-моему у Вас в голове каша.
Линковка производится программой ld, так как именно это и есть линкер.
Программа ar - это архиватор, который объединяет объектные файлы в архив (библиотеку).
Программа же gcc - это просто враппер, который сам по себе никакой обработки компонентов программы не выполняет, а вызывает для этого другое программы - препроцессор, компилятор, ассемблер, линкер. Каким именно операции будут выполнены, зависит от параметров командной строки.
Думаю, Вам стоит разобраться, из каких этапов (операций) состоит процесс сборки программы, что для каждого этапа является входными данными, а что - результатом.
И сам вопрос ваш, действительно, непонятен. Если Вы знаете и как получить библиотеку, и как получить hex-файл, какая проблема выполнить и то, и другое?
Цитата(yanvasiij @ Mar 30 2016, 18:11)

Ну вот как указать, чтобы либа собиралась arm-none-eabi-gcc-ar?
Указать кому/чему? make'у? Написать в Makefile что-то типа:
Код
liba.a: file1.o file2.o file3.o
arm-none-eabi-gcc-ar cq $@ $^
arm-none-eabi-gcc-ranlib $@