We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello all,
We've developed a board with keil 3.40. After some days it crashed; execution flows into hardfault_handler, which is a branch to itself. At this point, LR is 0xFFFFFFF1 which means core was in handler mode. SP is the main one (MSP). If I look into the memory pointed by SP, the 6th value is the Link Register (0x08006EFF) and the 7th is the Program Counter (0x080072CC) both held just before the hardfault. Link Register points inside rt_mbx_send ruotine (which is OK, I use it) at the instruction right after BL.W rt_rmv_dly. 0x080072CC points to the first rt_rmv_dly instruction (PUSH {R4,LR}). How can it's possible that PUSH {R4,LR} crashes?? SP points to a the RAM area (0x20004C40, I've 20KB of RAM).
Thanks in advance,
Lorenzo