Estoy intentando proporcionar controladores de interrupción personalizados para mi Cortex M3 (consulte el manual aquí ). ST amablemente proporciona una biblioteca estándar, que tiene varios archivos de inicio, todos llamados "startup_stm32f2xx.s". Cada uno está en una carpeta diferente según IDE.
Ahora no uso un IDE (compilo directamente con Yagarto, una versión modificada de la cadena de herramientas de gcc). Tengo ya preguntado cuál de las empresas de inicio utilizar. Sin embargo, después de haber probado todos los archivos de inicio disponibles, siempre obtengo el mismo error:
/startup_stm32f2xx.s:1:02: error: la CPU de destino no admite el modo ARM
Una búsqueda rápida en Google revela que esto probablemente significa que el código del ensamblador tiene instrucciones que mi ARM no puede entender, lo cual es sorprendente dado que el código se proporcionó para mi placa.
¿Cómo puedo compilar el archivo de inicio que define el vector de interrupción en mi STM32?
Editar: En cada uno de los archivos, startup_stm32f2xx.s:1:0
es el comienzo de un comentario. Además, estoy usando la bandera -mcpu=cortex-m3
. Aquí está el mensaje de error completo:
$ make all
arm-none-eabi-gcc -x assembler-with-cpp -c -g -mcpu=cortex-m3 -gdwarf-2 -Wa,-amhls=startup_stm32f2xx.lst startup_stm32f2xx.s -o startup_stm32f2xx.o
startup_stm32f2xx.s:1:0: error: target CPU does not support ARM mode
makefile:46: recipe for target 'startup_stm32f2xx.o' failed
make: *** [startup_stm32f2xx.o] Error 1