Hello,
I'm having an issue with an MQXLite application.
On startup, the program will randomly get stuck in dispatch.S, line 198
I am using a standard freedom KL46Z, with updated pe micro debug com.pemicro.debug.gdbjtag.pne_2.2.1.201509111213
My issue is that program is not responding. If i try to simply pause the debug session (with no breakpoint set), it always throws this message
Temporary breakpoint 1, main () at ../Sources/main.c:71
71 PE_low_level_init();
Program received signal SIGINT, Interrupt.
no_one_to_run () at ../MQXLITE/psp/cortex_m/core/M0/dispatch.S:198
198 ldr r1, [r0, #KD_READY_Q_LIST] // get first queue from ready list
And the debugger always points to the line "ldr r1, [r0, #KD_READY_Q_LIST] in dispatch.S
ASM_LABEL(no_one_to_run)
// wait for interrupt
cpsie i
wfi
cpsid i
// TODO check r0, must be kernel data
ldr r1, [r0, #KD_READY_Q_LIST] // get first queue from ready list
b find_noempty_que
I'm not very familiar with MQXLite yet... Do you understand what's happening here ?
Here's the full debugging log (with debugging paused multiple times):
GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-w64-mingw32 --target=arm-none-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
monitor preserve0 0
monitor selectcore 0
Warning: the current language does not match this frame.
continue
Continuing.
Note: automatically using hardware breakpoints for read-only addresses.
Temporary breakpoint 1, main () at ../Sources/main.c:71
71 PE_low_level_init();
Program received signal SIGINT, Interrupt.
no_one_to_run () at ../MQXLITE/psp/cortex_m/core/M0/dispatch.S:198
198 ldr r1, [r0, #KD_READY_Q_LIST] // get first queue from ready list
Program received signal SIGINT, Interrupt.
no_one_to_run () at ../MQXLITE/psp/cortex_m/core/M0/dispatch.S:198
198 ldr r1, [r0, #KD_READY_Q_LIST] // get first queue from ready list
Program received signal SIGINT, Interrupt.
no_one_to_run () at ../MQXLITE/psp/cortex_m/core/M0/dispatch.S:198
198 ldr r1, [r0, #KD_READY_Q_LIST] // get first queue from ready list
Program received signal SIGINT, Interrupt.
no_one_to_run () at ../MQXLITE/psp/cortex_m/core/M0/dispatch.S:198
198 ldr r1, [r0, #KD_READY_Q_LIST] // get first queue from ready list
Thank you for your help