- Sun Jan 24, 2010 11:53 am
#91694
I'm missing something obvious in trying to get systick interrupts working on an Olimex STM32-P103 board with an ARM-USB-OCD jtag probe and am wondering if anyone has seen something similar or sees where I went wrong?
I'm using the STM32 StdPeriph_Lib_V3.1.2 to do the setup with
SysTick_Config(SystemFrequency / 500) for 2ms ticks.
I placed a function call in the stm32f10x_it.c SysTick_Handler to call my timer routine which currently just pulses a GPIO pin.
The pin never pulses and the interrupt is never invoked. I verified that the handler is installed by dumping the memory at 0x0000_003C and that address does point to the SysTick_Handler. Disassembling SysTick_Handler shows a bl to my function call, so I think the vector table is properly loaded and contains valid calls.
Next, I added a poll of the SysTick control register in my main loop and pulse the GPIO pin when the CountFlag goes high. Sure enough, I get a pulse every 2ms and the Systick works as expected with the auto-reload functioning and the timebase is as expected. Still no interrupt called though, even though the systick control register interrupt enable is set.
The systick example in StdPeriph_Lib does no other setup other than the one call to SysTick_Config().
Any thoughts?
Jim
I'm using the STM32 StdPeriph_Lib_V3.1.2 to do the setup with
SysTick_Config(SystemFrequency / 500) for 2ms ticks.
I placed a function call in the stm32f10x_it.c SysTick_Handler to call my timer routine which currently just pulses a GPIO pin.
The pin never pulses and the interrupt is never invoked. I verified that the handler is installed by dumping the memory at 0x0000_003C and that address does point to the SysTick_Handler. Disassembling SysTick_Handler shows a bl to my function call, so I think the vector table is properly loaded and contains valid calls.
Next, I added a poll of the SysTick control register in my main loop and pulse the GPIO pin when the CountFlag goes high. Sure enough, I get a pulse every 2ms and the Systick works as expected with the auto-reload functioning and the timebase is as expected. Still no interrupt called though, even though the systick control register interrupt enable is set.
The systick example in StdPeriph_Lib does no other setup other than the one call to SysTick_Config().
Any thoughts?
Jim