Estoy trabajando con un dispositivo STM32F103 y estoy experimentando un comportamiento extraño del que no estoy seguro de por dónde empezar cuando se trata de depurar. Anteriormente hice una pregunta sobre problemas de DMA con este dispositivo que nunca resolví. Regresé para ver esto, pero ahora sospecho que mis problemas de DMA están relacionados con otra cosa. Estoy trabajando en una placa personalizada que, en este momento, es solo el dispositivo STM32F103 conectado a través de SPI a una placa de descubrimiento STM32F405. SPI funciona bien en el modo de sondeo y ahora estoy intentando que SPI y DMA vuelvan a funcionar. Mi problema es que puedo hacer que funcione de forma intermitente, pero parece depender de la inicialización de las variables. Por ejemplo, puedo hacer que SPI funcione bien con DMA si inicializo alguna variable en mi función main (). EG:
int main(void) {
uint32_t spiBase = 0;
// etc, etc
}
Sin embargo, si inicializo otra variable debajo de esta, DMA dejará de funcionar. ¡Estoy realmente un poco perdido sobre cómo solucionar un problema como este! Actualmente, estoy usando el compilador arm-none-eabi-gcc con un Makefile que tomé y modifiqué originalmente para dispositivos STM32F405 (desde aquí: ( enlace ), junto con la utilidad st-link de Texane. ¡Es completamente probable que mi configuración de Makefile o linker sea un poco chiflada! ¿Alguien puede ofrecer algún consejo sobre dónde podría comenzar con problemas extraños como este ?!