¿Cómo configurar Coide para usar la biblioteca DSP para STM32f3?

Tengo dificultades para usar la biblioteca DSP proporcionada por ST para mi placa de descubrimiento STM32f3. Estoy usando Coide. Empecé por incluir arm_math.h ya que todos los archivos de la biblioteca DSP hacen referencia a él.

Recibo muchos de estos errores (todos están en el archivo arm_math.h).

nombre de tipo desconocido ' INLINE' esperado '=', ',', ';', 'asm' o '__attribute ' antes de 'clip_q63_to_q31'

Llevo casi dos días buscando y no encuentro ninguna solución útil. Actualmente estoy usando yagarto como compilador.

Respuestas (2)

INLINE es una instrucción para el compilador para "en línea" una función, es decir, dondequiera que vea una llamada de función, copia el código de la función, en lugar de saltar a una sola copia del código como en una función normal.

Esto hace que el tamaño total del código sea más grande, a cambio de una ejecución sustancialmente más rápida de las funciones EN LÍNEA (porque no hay gastos generales de llamada/retorno).

Nunca he usado el compilador Yagarto, pero supongo que no es compatible con INLINE (poco probable) o que tiene una sintaxis diferente (muy probable). Probablemente una historia similar para los otros errores que estás viendo.

Intente usar GCC en su lugar (que reconoce INLINE, y que probablemente sea el compilador para el que se escribieron las bibliotecas ST); iirc hay un enlace a una "compilación actual" que es fácil de ubicar en el sitio web de CooCox.

en realidad estaba usando arm GCC y luego cambié a YAGARTO cuando tuve este error.
@ Med.ali extraño ... ¿dice algo en la biblioteca DSP sobre para qué compilador está escrito? ¿Ha intentado eliminar/comentar las referencias EN LÍNEA?

De hecho, lo resolví agregando esta línea al comienzo de ARM_math.h:

#define ARM_MATH_CM4

Cuando agregué #define ARM_MATH_CM4, se produjo el #error "El compilador genera instrucciones FPU para un dispositivo sin FPU (verifique __FPU_PRESENT)"...