This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Keil uVision Start Reset Run Issue

I am using RL-RTX with uVision IDE.

Just recently I ran into a weird issue. The only way I can describe it, is by the following way:

When I compile a C/C++ code I typically click on "Start/Stop Debug Session" after it is done compiling. At this time I see the uVision IDE flashing the microcontroller with the compiled software (using a status bar). After this is done the uVision IDE is ready to for me to click on "Run" to execute the firmware on the target. When I click on "Run" the target executes the firmware as expected. I can tell this by LEDs, LCD, and key inputs. At this time I want to restart and run the firware again, so I click on "Stop". Next, I click on "Reset" and follow this with a click on "Run" again. At this this point the ARM Cortex-M3 generates a 'hard fault exception". This exception is at the following line of code:

LDR r0,[r4, #0x00]

This line of code happens to be in the RTX library. I do not have access to this code, but from the Disassembly I can tell that it is part of the RTX library. See below:

_malloc_internal:
 PUSH {r4-r8, lr}
 MOV   r4,r0
 MOV   r6,r1
 MOV   r7,r2
 BL.W  0x080003E4
 CMP   r0,r4
 MOV   r5,r0
 BLS   0x0800046A
 CBZ   r7,0x08000412
 ADD   r0,r6,#0x0C
 NOP.W
 LDR   r4,[r6,#0x04]
 MOV   r1,r6
 CBZ   r4,0x08000454
 LDR   r0,[r4,#0x00]

Having typed all of this I was wondering why this is suddenly happening? Why is it only happening when I reset the target and run again? The RTX libraries are precompiled, so nothing changes there.

Has anyone ran into an issue like this?

Parents Reply Children
No data