0
\$\begingroup\$

I'm trying to write a simple program for a STM32F030K6T6 microcontroller. The problem I am facing is the more common "Systick is not working" problem.

The code is generated using Cube32MX (Firmware 1.9.0) and compiled in Atollic true studio 9.1.0. What I'm trying to do is to toggle a led with a delay of 500ms. The strange part is that I can't get it to work on the STM32F030K6T6 and it works out of the box on the STM32F030R8T8. The systick handler is never called and thus the delay function blocks.

When stepping through the assembly code it is obvious that the microcontroller is in an infinite loop while checking system ticks. However, if the code is executed continuously it jumps further down the program into an other loop (which i can't identify).

What I can't understand is that for two microcontrollers with the same core I obtain very different results. I checked the difference in the two complete project but could not find any differences besides the fact that some peripherals registers differ.

Does anyone has experience with these kind of problems or has any thoughts on what I can do next?

\$\endgroup\$

1 Answer 1

2
\$\begingroup\$

Starting from the hardware I discovered the problem. In my PCB design BOOT0 was unintentionally connected to VCC thus booting from SRAM. Which when stepping through the code using the debugger is not obvious.

Connecting BOOT0 to GND solves the problem.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.