Посоветуйте чего-нибудь про GNU ARM Toolchain Докопался до одной проблемы.
Использую ARM7TDMI, armv4t.
При линковке моего кода (режим ARM) с моим другим кодом (режим THUMB) линкер генерирует специальные функции (stubs) , которые изменяют текущую систему команд. Типично (из ARM в THUMB) это две команды
ldr r12, [pc]
bx r12
Проблема возникает с поставляемыми в составе тулчейна библиотеками: вместо описанных мною стабов прямо из моего кода выполняется инструкция "blx куда-то". При линковке я явно задаю -mthumb (чтобы линковались библиотеки для THUMB), -mthumb-interwork, -mcpu=arm7tdmi -march=armv4t
А теперь, внимание. Команды blx в системе команд armv4t не существует! Она появилась только в системе armv5. Соответственно, не работает.
http://infocenter. …dui0204j/Cihfddaf.html таблица 4.7
Скорее всего, это глюк линкера (не вставляет стабы). Но ведь для моих функций стабы генерируются! И какое он имеет право использовать несуществующие команды при явном указании архитектуры?
THUMB мне нужен, т.к. уже подхожу к пределу используемой FLASH.
Что посоветуете?