Use backtrace
command on the GDB console.
My backtrace:
0 0xffdf4c3c
1 0xffdf4c20
My debugger console:
C:\Xilinx\Vitis?3.1\gnu\microblaze
tin\mb64-gdb.exe: warning: Couldn’t determine a path for the index cache directory.
GNU gdb (GDB) 9.2
Copyright (C) 2020 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=microblaze-xilinx-elf64”.
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”.
warning: Can not parse XML target description; XML support was disabled at compile time
warning: No executable has been specified and target does not support
determining executable automatically. Try using the “file” command.
0x0000000000000000 in ?? ()
Temporary breakpoint 1, main () at …/src/freertos_hello_world.c:57
57 const TickType_t x10seconds = pdMS_TO_TICKS( DELAY_10_SECONDS );
Program received signal SIGTRAP, Trace/breakpoint trap.
0x00000000ffdf4c3c in ?? ()
I believe the code is getting stuck at this line:
if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( UBaseType_t ) 1 )
{
taskYIELD();
}
It keeps repeating the taskYIELD() function.
You need to build with debugging symbols. If you are using GCC, provide -g
option.
This is Idle task code which means that no other task is ready. Since both your task call vTaskDelay
and they are never becoming Ready again, it likely means that the tick interrupt is not firing. Since the IDE generated project does not work, I’d suggest to reach out to the vendor also.