[an error occurred while processing this directive]
|
Команда LDMEQFD R13!,{PC} означает: Если бит Z установлен, загрузить из стека регистр PC, причем указатель стека перед этой командой указывает на ЗАПОЛНЕННЫЙ элемент. Указатель стека после команды УМЕНЬШАЕТСЯ. Понятное дело, это выход из подпрограммы или витьеватый jump по адресу из стека (что, по сути, то же самое). Проверь как PC был предварительно помещен в стек, нет ли противоречия в твоей программной моделью(направление роста стека - ВВЕРХ или ВНИЗ, сдвиг указателя стека ДО или ПОСЛЕ команды)
По сути вопроса трудно сказать... Я так понял - у тебя FP только программный? Тормозной он и глюков полно. Проверь опции компилятора и для какой программний модели твоя библиотека скомпилирована. В крайнем случае, если загорелось синус посчитать (с плавающей точкой) попробуй
sin(x)=3.140625*x+0.02026367*x**2-5.325196*x**3+0.5446778*x**4+1.800293*x**5
для первого квадранта или проще:
sin(x)=x-x**3/3!+x**5/5!-x**7/7!+...
E-mail: info@telesys.ru