Mi STM32F4 Discovery se bloquea cuando intento ejecutar la función sin o sinf con la FPU activada y con la FPU desactivada.
for (; i < 1023; ++i){
ftemp = sin (c*t); // Crashes here
temp = buffer[i] * ftemp;
buffer[i] = temp;
t += step;
}
Cuando uso la función sinf, este bucle se bloquea en su segunda iteración. Cuando se usa el pecado simple, se bloquea después de entre 768 y 1023 iteraciones (lo he probado exhaustivamente). ¿Qué está causando esto?
Nota: Al usar la FPU, la configuré así: enlace
EDITAR:
Desde entonces he descubierto que se está invocando el HardFault_Handler (). Esto es con la FPU completamente deshabilitada
EDITAR:
Aparentemente, estoy accediendo a una dirección de memoria no válida. ¡Leí la PC de la pila y es 0x00000000! ¿Cómo es eso posible? (El contador del programa es la séptima palabra de 32 bits en la pila)