Mcuxpresso 10.0.2, FreeRTOS and Segger Thread Aware Debugging

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Mcuxpresso 10.0.2, FreeRTOS and Segger Thread Aware Debugging

Jump to solution
2,120 Views
ypkdani
Contributor III

Hello i have a problem setting breakpoints with a firmware that use the Freertos. I have different thread so i want to use the Thread Aware Debugging.

I have this setting 

pastedImage_1.png

but there is this error in red:

[01-8-2017 12:30:26] Executing Server: C:\Program Files (x86)\SEGGER\JLink_V616b\JLinkGDBServerCL.exe -nosilent -swoport 2337 -select USB=269307964 -telnetport 2338 -singlerun -endian little -noir -speed auto -rtos GDBServer/RTOSPlugin_FreeRTOS -port 2339 -vd -device MK22FX512Axxx12 -if SWD -halt -reportuseraction
SEGGER J-Link GDB Server V6.16b Command Line Version

JLinkARM.dll V6.16b (DLL compiled Jun 9 2017 18:03:30)

-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2339
SWO raw output listening port: 2337
Terminal I/O port: 2338
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: off
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: MK22FX512Axxx12
Target interface: SWD
Target interface speed: auto
Target endian: little

Connecting to J-Link...
$$UserActionStart$$: Terms of use
$$UserActionEnd$$: Terms of use
J-Link is connected.
Device "MK22FX512AXXX12" selected.
Firmware: J-Link V9 compiled Jun 16 2017 16:15:10
Hardware: V9.30
S/N: 269307964
OEM: SEGGER-EDU
Feature(s): FlashBP, GDB
Checking target voltage...
Target voltage: 3.35 V
Listening on TCP/IP port 2339
Connecting to target...Executing InitTarget()
Found SW-DP with ID 0x2BA01477
Scanning APs, stopping at first AHB-AP found.
AP[0] IDR: 0x24770011 (AHB-AP)
AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table)
CPUID reg: 0x410FC241. Implementer code: 0x41 (ARM)
Found Cortex-M4 r0p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU
ROMTbl[0][5]: E0041000, CID: B105900D, PID: 000BB925 ETM
ROMTbl[0][6]: E0042000, CID: B105900D, PID: 003BB907 ETB
ROMTbl[0][7]: E0043000, CID: B105900D, PID: 001BB908 CSTF
Executing InitTarget()
Found SW-DP with ID 0x2BA01477
Using pre-configured AP[0] as AHB-AP to communicate with core
AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table)
CPUID reg: 0x410FC241. Implementer code: 0x41 (ARM)
Found Cortex-M4 r0p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU
ROMTbl[0][5]: E0041000, CID: B105900D, PID: 000BB925 ETM
ROMTbl[0][6]: E0042000, CID: B105900D, PID: 003BB907 ETB
ROMTbl[0][7]: E0043000, CID: B105900D, PID: 001BB908 CSTF
Connected to target
Waiting for GDB connection...Connected to 127.0.0.1
Reading all registers
Read 4 bytes @ address 0x00006018 (Data = 0x2B0A681B)
Read 4 bytes @ address 0x00021C0E (Data = 0x330168FB)
Reading 64 bytes @ address 0x20005800
Loading RTOS plugin: GDBServer/RTOSPlugin_FreeRTOS...
RTOS plugin (v1.0) loaded successfully
RTOS plugin initialized successfully.
Received symbol: pxCurrentTCB (0x2000C1B0)
Received symbol: pxReadyTasksLists (0x2000C1B4)
Received symbol: xDelayedTaskList1 (0x2000C254)
Received symbol: xDelayedTaskList2 (0x2000C268)
Received symbol: pxDelayedTaskList (0x2000C27C)
Received symbol: pxOverflowDelayedTaskList (0x2000C280)
Received symbol: xPendingReadyList (0x2000C284)
Received symbol: xTasksWaitingTermination (0x2000C298)
Received symbol: xSuspendedTaskList (0x2000C2B0)
Received symbol: uxCurrentNumberOfTasks (0x2000C2C4)
Received symbol: uxTopUsedPriority (0x00000000)
Received symbol: uxTopReadyPriority (0x2000C2CC)
Received symbol: vPortEnableVFP (0x00016548)
All mandatory symbols successfully loaded.
Setting AIRCR.SYSRESETREQ
Executing AfterResetTarget()
Resetting target
Reading all registers
Read 4 bytes @ address 0x000001F4 (Data = 0xB672B510)
Downloading 16048 bytes @ address 0x00000000 - Verified OK
Downloading 16000 bytes @ address 0x00003EB0 - Verified OK
Downloading 15984 bytes @ address 0x00007D30 - Verified OK
Downloading 15728 bytes @ address 0x0000BBA0 - Verified OK
Downloading 15904 bytes @ address 0x0000F910 - Verified OK
Downloading 16096 bytes @ address 0x00013730 - Verified OK
Downloading 16016 bytes @ address 0x00017610 - Verified OK
Downloading 16048 bytes @ address 0x0001B4A0 - Verified OK
Downloading 16080 bytes @ address 0x0001F350 - Verified OK
Downloading 16032 bytes @ address 0x00023220 - Verified OK
Downloading 16240 bytes @ address 0x000270C0 - Verified OK
Downloading 13392 bytes @ address 0x0002B030 - Verified OK
Downloading 1376 bytes @ address 0x0002E480 - Verified OK
Writing register (PC = 0x000001F4)
Read 4 bytes @ address 0x000001F4 (Data = 0xB672B510)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x000064B6 (Data = 0x2300)
Read 2 bytes @ address 0x00006526 (Data = 0xF002)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
All mandatory symbols successfully loaded.
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x000064B6 (Data = 0x2300)
Read 2 bytes @ address 0x00006526 (Data = 0xF002)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
All mandatory symbols successfully loaded.
Reading all registers
J-Link: Flash download: Flash download skipped. Flash contents already match
Read 4 bytes @ address 0x000001F4 (Data = 0xB672B510)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Read 2 bytes @ address 0x00007068 (Data = 0xF00D)
Setting AIRCR.SYSRESETREQ
Executing AfterResetTarget()
Resetting target
Semi-hosting enabled (Handle on BKPT)
Executed SetRestartOnClose=1
Setting breakpoint @ address 0x00006526, Size = 2, BPHandle = 0x0001
Setting breakpoint @ address 0x00007068, Size = 2, BPHandle = 0x0002
Starting target CPU...
...Breakpoint reached @ address 0x00007068
Reading all registers
Read 4 bytes @ address 0x00007068 (Data = 0xFC72F00D)
Removing breakpoint @ address 0x00006526, Size = 2
Removing breakpoint @ address 0x00007068, Size = 2
Setting breakpoint @ address 0x00006526, Size = 2, BPHandle = 0x0003
Starting target CPU...
...Breakpoint reached @ address 0x00006526
ERROR: FreeRTOS maximum used priority is unreasonably big, not proceeding: 00000072.
Reading all registers
Read 4 bytes @ address 0x00006526 (Data = 0xFEE9F002)
Reading all registers
Removing breakpoint @ address 0x00006526, Size = 2

can you help me?

in FreeRTOSconfig.h i have set 

#define configMAX_PRIORITIES (8)

Thanks

0 Kudos
1 Solution
1,558 Views
ypkdani
Contributor III

Hello and thanks,

i have find the solution following this post BUG: KDS debug call-stack fails with Segger JLink 

I have Create a dummy symbol uxTopUsedPriority (will be preferred to uxTopReadyPriority) and set it to configMAX_PRIORITIES. 

View solution in original post

3 Replies
1,558 Views
BlackNight
NXP Employee
NXP Employee

Hi Daniel,

I suspect something is overwriting your RAM. It seems that your uxTopUsedPriority variable has the value 0x72 which is indeed too high and does not make any sense.

I recommend to increase the task stack size (see Troubleshooting Tips for FreeRTOS Thread Aware Debugging in Eclipse | MCU on Eclipse ), and if this does not help, set a watchpoint on uxTopUsedPriority (see C/C++ Watchpoints with Eclipse Kepler | MCU on Eclipse , same principle works with MCUXpresso IDE too).

I hope this helps,

Erich

1,559 Views
ypkdani
Contributor III

Hello and thanks,

i have find the solution following this post BUG: KDS debug call-stack fails with Segger JLink 

I have Create a dummy symbol uxTopUsedPriority (will be preferred to uxTopReadyPriority) and set it to configMAX_PRIORITIES. 

1,558 Views
FreeRTOS_org
Contributor IV
0 Kudos