NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Creating Dynamic Objects and Threads in BIOS
Contents
Introduction[edit]
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.
Procedure[edit]
Allow Heaps[edit]
- 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>
Create one or more heaps[edit]
- 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>
Specify placement of DSP/BIOS objects[edit]
- 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>
Specify placement of dynamic tasks[edit]
- 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>