Я пытаюсь построить библиотеку интерфейса внешней функции для процессора Cortex-M3 с использованием GCC. По http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html:Может ли Libffi построить для Cortex-M3?
-mthumb
Generate code for the Thumb instruction set. The default is to use the 32-bit ARM instruction set. This option automatically enables either 16-bit Thumb-1 or mixed 16/32-bit Thumb-2 instructions based on the -mcpu=name and -march=name options. This option is not passed to the assembler. If you want to force assembler files to be interpreted as Thumb code, either add a `.thumb' directive to the source or pass the -mthumb option directly to the assembler by prefixing it with -Wa.
Я попытался прохождения различных различных аргументов в ассемблер и не могу показаться, чтобы выяснить это. Типичный выход следующим образом:
Building file: ../source/ffi/sysv.S
Invoking: GCC Assembler
arm-bare_newlib_cortex_m3_nommu-eabi-gcc -Wa,-mthumb-interwork -I"/home/neil/m3projects/robovero/firmware/include" -o"source/ffi/sysv.o" "../source/ffi/sysv.S"
../source/ffi/sysv.S: Assembler messages:
../source/ffi/sysv.S:145: Error: selected processor does not support ARM opcodes
../source/ffi/sysv.S:147: Error: attempt to use an ARM instruction on a Thumb-only processor -- `stmfd sp!,{r0-r3,fp,lr}'
...
Могу ли я использовать libffi на Cortex-M3, не становясь экспертом в сборе?
Возможно, стоит отметить, что когда я вызываю arm-bare_newlib_cortex_m3_nommu-eabi-as, я получаю разные ошибки.
Кто-то на libffi-обсуждении указал, что есть инструкция .arm, которая _allways_ пытается поместить ее в режим руки, поэтому она, безусловно, не может быть использована как есть. Благодаря! – Neil