AnsweredAssumed Answered

KDS KL46Z application stuck in dispatch.S on startup

Question asked by Remi Beges Employee on Sep 18, 2015
Latest reply on Mar 30, 2017 by 阳 周

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

Outcomes