FreeRTOS task control block and stack in AVR32


FreeRTOS allocates memory for the task’s control block (TCB) structure (tskTCB type in tasks.c), followed by memory for its stack, when your code calls xTaskCreate to create a new task. To find the TCB of the currently executing task look at pxCurrentTCB in tasks.c. A color coded view of how the tskTCB structure looks in memory follows. What you see will vary based on which fields are enabled in your port.

  • Top of previous task’s stack is here (see pxPortInitialiseStack in port.c)
  • Fields of IDLE task’s TCB
    • Pointer to top of stack (higher memory)
    • xGenericListItem structure
    • xEventListItem structure
    • Task priority
    • Pointer to start of stack (lower memory)
    • Process Name (16 bytes)
  • Start of IDLE task’s stack is here (stack grows from top to start i.e. higher memory to lower)


0x00005CE0 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005CF0 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005D00 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005D10 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005D20 a5 a5 a5 a5 a5 a5 a5 a5 00 00 00 00 07 07 07 07 ¥¥¥¥¥¥¥¥……..
0x00005D30 06 06 06 06 05 05 05 05 04 04 04 04 03 03 03 03 …………….
0x00005D40 02 02 02 02 01 01 01 01 ff 00 00 ff 00 40 00 00 ……..ÿ..ÿ.@..
0x00005D50 80 00 5c 7c de ad be ef 00 00 00 00 0b 0b 0b 0b €.\|Þ..ï……..
0x00005D60 0a 0a 0a 0a 09 09 09 09 08 08 08 08 a5 a5 a5 a5 …………¥¥¥¥
0x00005D70 6c 80 5b a3 00 00 00 49 00 00 61 78 85 ec bc 8d l€[£…I..ax.ì..
0x00005D80 00 00 18 04 00 00 18 04 00 00 5d 78 00 00 17 fc ……….]x…ü
0x00005D90 00 00 00 08 d5 b6 4a 10 b0 b0 4d 2b 00 00 5d 78 ….Õ¶J.°°M+..]x
0x00005DA0 00 00 00 00 00 00 00 00 00 00 5d c0 49 44 4c 45 ……….]ÀIDLE
0x00005DB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 09 …………….
0x00005DC0 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005DD0 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005DE0 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005DF0 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E00 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E10 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E20 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E30 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E40 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E50 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E60 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E70 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E80 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005E90 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005EA0 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0x00005EB0 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s