Why I'm unable to debug or to run the firmware with SEGGER J-link probe on my custom board?
This is a question related to an old post I wrote:
https://community.st.com/s/feed/0D53W000024ZvOoSAK
In which I said that I will make some hardware modications in order to achieve the technical suggestions and manufacturer instructions. First it was thought that two missing capacitors were causing miss function on internal regulator. So I added them in a new printed circuit prototype.
I have made these changes, but problems still being the same:
- Interruptions never happens after HAL_Init()
- So, thread get stucked at the same point: clock is never get configured, it tourns an error.
- I'm using HSI clock, so external clock couldn't be guilty.
- As a reminder I have to say that the same firmware works fine on NUCLEO board.
- I don't know if the problem is on SEGGER debugger configuration.
I really need to be able to run some kind of firmware. I'm spending a lot of time with this trouble.
Why is the interruption unable to be triggered when:
- TIM6 interruption is enabled and
- I can see how this is done when I'm debugging on its HAL struct field vaules?
Please if some one could help me with the next steps to find what is the cause I will add the information that could help him to understand my application and its configuration.
-I'm using FREERTOS,
-I changed HAL_TICK base timer by TIM6
-I'm using TCP/IP middleware
-BOOT0 = GND
-VCAP1 = VCAP2 = 1.189V
These 3 things are working fine on NUCLEO board, but there I'm using ST-Link with serial wire from PC. I'm using stmcubeIDE debugging interface. I don't really know if there is a great difference with my custom board in order to make interruptions not be happening. The final circuit desing is very simple:
- Analog circuit --> regulator 12V --> 3.3V
- Core: STM32F207ZG
- Comms interface: RJ-ETHERNET PHY (the same microchip LAN device than Nucleo board)
- GPIOS: 16 inputs + 8 address inputs + 16 outputs
- Porgram port intrface: SWD (5pins)
Edition:
Adding new observations:
When I try to program or debug with segger from stm32CubeIde debug/run interface, mcu seems to be frozen or even hanging up. But after this moment, if I power off and I turn on my PCB, I can see how some outputs are just blinking as my firmware did on Nucleo board.
It is a very weird situation because of two factors:
- why does mcu be reset after being programmed in order to be awoken and start to run?
- Firmware is downolad but works partially. We have 16 GPIOs as output but only 6 of them are blinking as desired. I'm unable to see how are configured the other ones. They seems to be 'Z'.
I can't trust enough the segger device + CubeIde combination.
