Intenté depurar mi código en ram para aumentar la vida útil del flash (solo con un mínimo de escritura de 10k)
De todos modos, até los pines boot0 y boot1 a 3.3v y configuré el compilador para depurar desde ram de esta manera:
Cuando depuro mi código de esta manera, mi SysTick_Handler no se ejecuta. Si depuro desde flash, todo funciona bien.
No puedo entender qué está pasando, y ¿ cómo puedo hacer que mi interrupción SysTick funcione en modo de depuración ram?
PD: Intenté preguntar esto en el foro de coocox, pero no obtuve ninguna ayuda allí.
Debe reubicar la tabla de vectores; en este momento, es probable que el procesador todavía esté usando la copia de la tabla de vectores en FLASH, que apuntará a una versión anterior de su código en FLASH. (O bien, si ha borrado FLASH desde que comenzó a desarrollar en SRAM, la tabla de vectores en uso estará en blanco).
Si está utilizando la biblioteca de periféricos estándar (SPL) STM32, puede definir la VECT_TAB_SRAM
macro para que establezca los indicadores apropiados para usar una tabla de vectores en SRAM. Si va por la ruta completa, debe configurar el campo TBLOFF de VTOR para que apunte a la base de SRAM (0x02000000 en STM32F1).
chris stratton