ASM-функция из встроенного C ARM

Я использую STM32F4 и пытаюсь написать функцию ASM, вызываемую изнутри C. Функция должна вызываться внутри функции C, которая также находится в прерывании. Я толкаю и выталкиваю r4-r7. Нужно ли мне делать что-то еще? Я предполагаю, что r0-r3 не нужно толкать. Я также изменяю глобальные переменные в функции ASM. Я предполагаю, что они должны быть объявлены изменчивыми. Любые советы будут приветствоваться.Также я заметил, что набор инструкций Cortex M4, описанный ARM, отличается от инструкции, которые кажутся доступными для компилятора GCC. Например, нет обратной записи, т.е. r0,[r1],#4 для приращения записи недопустимо. Есть ли список допустимых инструкций ASM? Я предполагаю, что STM32F4 использует thumb2

. Пока он не работает, и мне интересно, какие могут быть возможные проблемы. Не считая ошибок в сборке

5
задан Bruce Duncan 10 June 2012 в 02:35
поделиться