NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on The site is now set to read only.

Creating Dynamic Objects and Threads in BIOS

From Texas Instruments Wiki
Jump to: navigation, search


Functions such as SEM_create(), TSK_create() and SWI_create() are used in DSP/BIOS for dynamically creating objects/threads. All of these *_create() functions ultimately depend on dynamic memory allocation. It is critical that you properly configure dynamic memory allocation in your tcf file in order for these functions to work.


Allow Heaps

  • Open your tcf file in the configuration tool.
  • Right click on Memory Section Manager and go to Properties.
  • Uncheck the "No Dynamic Heaps" box if it is not already unchecked. Click OK to exit the dialog.

<syntaxhighlight lang='javascript'> bios.MEM.NOMEMORYHEAPS = 0; </syntaxhighlight>

BIOS Dynamic1.png

Create one or more heaps

  • Right-click on the memory section where you would like to create a heap, e.g. DDR2 and go to Properties.
  • Click the "Create a heap in this memory" box and enter the size. Click OK to exit the dialog.

<syntaxhighlight lang='javascript'> bios.MEM.instance("DDR2").createHeap = 1; </syntaxhighlight>

BIOS Dynamic2.png

Specify placement of DSP/BIOS objects

  • Right-click once again on Memory Section Manager and set the "Segment for DSP/BIOS Objects" to a valid section.

<syntaxhighlight lang='javascript'> bios.MEM.BIOSOBJSEG = prog.get("DDR2"); bios.MEM.MALLOCSEG = prog.get("DDR2"); </syntaxhighlight>

BIOS Dynamic3.png

Specify placement of dynamic tasks

  • Expand the Scheduling section, right click on "TSK - Task Manager" and select Properties. Select a valid heap for the option "Stack segment for dynamic tasks"

syntaxhighlight lang='javascript'> bios.TSK.STACKSEG = prog.get("DDR"); </syntaxhighlight>

BIOS Dynamic4.png