| Target Support Package™ TC6 | ![]() |
Target Preferences in Target Support Package™ TC6 software

Options on the block mask let you set features of code generation for your DM642 Evaluation Module target. Adding this block to your Simulink® model provides access to the processor hardware settings to configure when you generate code from Real-Time Workshop® software to run on the target.
Any model that you target to the DM642 evaluation module must include this block, or the Custom Board C6000 target preferences block. Real-Time Workshop software returns an error message if a target preferences block is not present in your model.
Note This block must be in your model at the top level and not in a subsystem. It does not connect to any other blocks, but stands alone to set the target preferences for the model. |
The processor and target options you specify on this block are:
Target board information
Memory mapping and layout
Allocation of the various code sections, such as compiler, DSP/BIOS, and custom sections
Setting the options included in this dialog box results in identifying your target to Real-Time Workshop software, Target Support Package TC6 software, and Simulink software, and configuring the memory map for your target. Both steps are essential for targeting any board that is custom or explicitly supported, such as the C6713 DSK or the DM642 EVM.
Unlike most other blocks, you cannot open the block dialog box for this block until you add the block to a model. When you try to open the block dialog, the block attempts to connect to your target. It cannot make the connection when the block is in the library and returns an error message.
Real-Time Workshop software provides the ability to generate code from a selected subsystem in a model. To generate code for the DM642 EVM from a subsystem, the subsystem model must include a DM642EVM target preferences block.

All target preferences block dialog boxes provide tabbed access to the following panes with options you set for the target processor and target board:
Board info — Select the target board and processor, set the clock speed, and identify the target.
Memory — Set the memory allocation and layout on the target processor (memory mapping).
Sections — Determine the arrangement and location of the sections on the target processor such as where to put the DSP/BIOS and compiler information.
DSP/BIOS — Specify how to configure tasking features of DSP/BIOS.
The following options appear on the Board Info pane for the C6000 Target Preferences dialog box.
Lets you enter the type of board you are targeting with the model. You can enter Custom to support any board based on one of the supported processors, or enter the name of one of the supported boards, such as C6713DSK. By default, the DM642EVM block specifies the DM642EVM for the board type.
Lets you select the type of processor on the board you select in CCS board name. The processor type you enter determines the contents and setting for options on the Memory and Sections panes in this dialog box. If you are targeting one of the supported boards, Device is disabled and the selected device is fixed.
Shows the clock speed of the processor on your target. When you enter a value, you are not changing the CPU clock rate. Instead, you are reporting the actual rate. If the value you enter does not match the rate on the target, your model's real-time results may be wrong, and code profiling results are not correct.
Enter the actual clock rate the board uses. The rate you enter in this field does not change the rate on the board. Setting CPU clock speed to the actual board rate allows the code you generate to run correctly according to the actual clock rate of the hardware.
When you generate code for C6000™ targets from Simulink models, you may encounter the software timer. The timer is invoked automatically to handle and create interrupts to drive your model if either of the following conditions occur:
If your model does not include ADC or DAC blocks
When the processing rates in your model change (the model is multirate)
Correctly generating interrupts for your model depends on the clock rate of the CPU on your target. You can change the rate with the DIP switches on the board or from one of the software utilities provided by Texas Instruments™.
For the timer software to calculate the interrupts correctly, Target Support Package TC6 software needs to know the actual clock rate of your target processor as you configured it. CPU clock speed lets you tell the timer the rate at which your target CPU runs, which is the rate to use to match the CPU rate.
The timer uses the CPU clock rate you specify in CPU clock speed to calculate the time for each interrupt. For example, if your model includes a sine wave generator block running at 1 kHz feeding a signal into an FIR filter block, the timer needs to create interrupts to generate the sine wave samples at the proper rate. Using the clock rate you choose, 100 MHz for example, the timer calculates the sine generator interrupt period as follows for the sine block:
Sine block rate = 1 kHz, or 0.001 s/sample
CPU clock rate = 100 MHz, or 0.000000001 s/sample
To create sine block interrupts at 0.001 s/sample requires 100,000,000/1000 = 1 Sine block interrupt per 1,000,000 clock ticks
So you must report the correct clock rate or the interrupts come at the wrong times and the results are incorrect.
Select this option when you are targeting a simulator rather than a hardware target. You must select Simulator to target your code to a C6000 simulator.
Select this option to tell the code generation process to enable high-speed RTDX™ for this model.
Specify the operating system for the target.
Entries in this group let you specify the locations of custom source files or libraries or other functions. Five options provide access to text areas where you enter files and file paths.
When you enter a path to a file, library, or other custom code, use the string
$(install_dir)
to refer to the CCS IDE installation directory. The examples in the following figure use the string.
Enter new paths or files (custom code items) one to a line. Include the full path to the file for libraries and source code. Board custom code options do not support functions that use return arguments or values. Only functions of type void fname void are valid as entries in these parameters.
Source files — Enter the full paths to source code files to use with this target. By default there are no entries in this parameter.
Include paths — If you require additional files on your path, you add them by typing the path into the text area. The default setting does not include additional paths.
Libraries — these entries identify specific libraries that the target requires. They appear on the list by default.

Initialize functions — DM642 EVM targets require a specific initialization function, listed here as EVMDM642_init. Enter others if needed.

Terminate functions — enter a function to run when a program terminates. The default setting is not to include a specific termination function.
Contains a list of all the boards defined in CCS Setup. From the list of available boards, select the one that you are targeting your code for.
Lists the processors on the board you selected for targeting in CCS board name. In most cases, only one name appears because the board has one processor. In the multiprocessor case, you select the processor by name from the list.
When you target any board, you need to specify the layout of the physical memory on your processor and board to determine how use it for your program. For supported boards, the board-specific target preferences blocks set the default memory map.

The Memory pane contains memory options in three areas:
Physical Memory — specifies the processor and board memory map
Heap — specifies whether you use a heap and determines the size in words
L2 Cache — enables the L2 cache (where available) and sets the size in kB
Be aware that these options may affect the options on the Sections pane. You can make selections here that change how you configure options on the Sections pane.
Most of the information about memory segments and memory allocation is available from Code Composer Studio™ online help.
This list shows the physical memory segments available on the board and processor. By default, target preferences blocks show the memory segments found on the selected processor. In addition, the Memory pane on preconfigured target preferences blocks shows the memory segments available on the board, but off of the processor. Target preferences blocks set default starting addresses, lengths, and contents of the default memory segments. DM642EVM boards provide ISRAM and SDRAM memory segments by default.
When you highlight an entry on the Physical memory list, the name of the entry appears here. To change the name of the existing memory segment, select it in the Physical memory list and then type the new name here.
Note You cannot change the names of default processor memory segments. |
To add a new physical memory segment to the list, click Add, replace the temporary label in Name with the one to use, and press Return. Your new segment appears on the list.
After you add the segment, you can configure the starting address, length, and contents for the new segment. New segments start with code and data as the type of content that can be stored in the segment (refer to the Contents option).
Names are case sensitive. NewSegment is not the same as newsegment or newSegment.
Address reports the starting address for the memory segment showing in Name. Address entries are in hexadecimal format and limited only by the board or processor memory.
When you are using a processor-specific preferences block, the starting address shown is the default value. You can change the starting value by entering the new value directly in Address when you select the memory segment to change.
From the starting address, Length sets the length of the memory allocated to the segment in Name. As in all memory entries, specify the length in hexadecimal format, in minimum addressable data units (MADUs). For the C6000 processor family, the MADU is 8 bytes, one word.
When you are using a processor-specific preferences block, the length shown is the default value. You can change the value by entering the new value directly in this option.
Contents details the kind of program sections that you can store in the memory segment in Name. As the processor type for the target preferences block changes, the kinds of information you store in listed memory segments may change. Generally, the Contents list contains these strings:
Code — allow code to be stored in the memory segment in Name.
Data — allow data to be stored in the memory segment in Name.
Code and Data — allow code and data to be stored in the memory segment in Name. When you add a new memory segment, this is the default setting for the contents of the new element.
You may add or use as many segments of each type as you need, within the limits of the memory on your processor.
Click Add to add a new memory segment to the target memory map. When you click Add, a new segment name appears, for example NEWMEM1, in Name and on the Physical memory list. In Name, change the temporary name NEWMEM1 by entering the new segment name. Entering the new name, or clicking Apply updates the temporary name on the list to the name you enter.
This option lets you remove a memory segment from the memory map. Select the segment to remove on the Physical memory list and click Remove to delete the segment.
Selecting this option enables creating the heap, and enables the Heap size option.
Using this option you can create a heap in any memory segment on the Physical memory list. Select the memory segment on the list and then select Create heap to create a heap in the select segment. After you create the heap, use the Heap size and Define label options to configure the heap.
The location of the heap in the memory segment is not under your control. The only way to control the location of the heap in a segment is to make the segment and the heap the same size. Otherwise, the compiler determines the location of the heap in the segment.
After you select Create heap, this option lets you specify the size of the heap in words. Enter the number of words in decimal format. When you enter the heap size in decimal words, the system converts the decimal value to hexadecimal format. You can enter the value directly in hexadecimal format as well. Processors may support different maximum heap sizes.
Selecting Create heap enables this option that allows you to name the heap. Enter your label for the heap in the Heap label option.
Enabled by selecting Define label, you use this option to provide the label for the heap. Any combination of characters is accepted for the label, except reserved characters in C/C++ compilers.
Specify the cache level to use.
Specify the memory configuration for the cache..
Options on this pane let you specify where various program sections should go in memory. Program sections are distinct from memory segments — sections are portions of the executable code stored in contiguous memory locations. Commonly used sections include .text, .bss, .data, and .stack. Some sections relate to the compiler, some to DSP/BIOS, and some can be custom sections as you require.
For more information about program sections and objects, refer to the CCS IDE online help.

Within this pane and the DSP/BIOS pane, you configure the allocation of sections for Compiler, DSP/BIOS, and Custom needs.
This table provides brief definitions of the kinds of sections in the Compiler sections, DSP/BIOS sections/objects, and Custom sections lists in the pane. All sections do not appear on all lists. The list the string appears on is shown in the table.
String | Section List | Description of the Section Contents |
|---|---|---|
.args | DSP/BIOS | Argument buffers |
.bss | Compiler | Static and global C variables in the code |
.bios | DSP/BIOS | DSP/BIOS code if you are using DSP/BIOS options in your program |
.cinit | Compiler | Tables for initializing global and static variables and constants |
.cio | Compiler | Standard I/O buffer for C programs |
.const | Compiler | Data defined with the C qualifier and string constants |
.data | Compiler | Program data for execution |
.far | Compiler | Variables, both static and global, defined as far variables |
.gblinit | DSP/BIOS | Load allocation of the DSP/BIOS startup initialization tables section |
.hwi | DSP/BIOS | Dispatch code for interrupt service routines |
.hwi_vec | DSP/BIOS | Interrupt Service Table |
.obj | DSP/BIOS | Configuration properties that the target program can read |
.pinit | Compiler | Load allocation of the table of global object constructors section. |
.rtdx_text | DSP/BIOS | Code sections for the RTDX program modules |
.stack | Compiler | The global stack |
.switch | Compiler | Jump tables for switch statements in the executable code |
.sysdata | DSP/BIOS | Data about DSP/BIOS |
.sysinit | DSP/BIOS | DSP/BIOS initialization startup code |
.sysmem | Compiler | Dynamically allocated object in the code containing the heap |
.text | Compiler | Load allocation for the literal strings, executable code, and compiler generated constants |
.trcdata | DSP/BIOS | TRC mask variable and its initial value section load allocation |
You can learn more about memory sections and objects in your Code Composer Studio online help.
During program compilation, the C6000 compiler produces both uninitialized and initialized blocks of data and code. These blocks get allocated into memory as required by the configuration of your system. On the Compiler sections list you find both initialized (sections that contain data or executable code) and uninitialized (sections that reserve space in memory) sections. The initialized sections are:
.cinit
.const
.switch
.text (created by the assembler)
These sections are uninitialized:
.bss (created by the assembler)
.far
.stack
.sysmem
Other sections appear on the list as well:
.data (created by the assembler)
.cio
.pinit
Note The C/C++ compiler does not use the .data section. |
When you highlight a section on the list, Description shows a brief description of the section. Also, Placement shows you where the section is presently allocated in memory.
Provides a brief explanation of the contents of the selected entry on the Compiler sections list.
Shows you where the selected Compiler sections list entry is allocated in memory. You change the memory allocation by selecting a different location from the Placement list. The list contains ISRAM and SDRAM when you use this block.
When your program uses code or data sections that are not included in either the Compiler sections or DSP/BIOS sections lists, you add the new sections to this list. Initially, the Custom sections list contains no fixed entries, just a placeholder for a section for you to define.
You enter the name for your new section here. To add a new section, click Add. Then replace the temporary name with the name to use. Although the temporary name includes a period at the beginning you do not need to include the period in your new name. Names are case sensitive. NewSection is not the same as newsection, or newSection.
With your new section added to the Name list, select the memory segment to which to add your new section. Within the restrictions imposed by the hardware and compiler, you can select any segment that appears on the list.
Clicking Add lets you configure a new entry to the list of custom sections. When you click Add, the block provides a new temporary name in Name. Enter the new section name to add the section to the Custom sections list. After typing the new name, click Apply to add the new section to the list. You can also click OK to add the section to the list and close the dialog box.
To remove a section from the Custom sections list, select the section and click Remove.
Options on this pane let you specify how to configure tasking features of DSP/BIOS.
The asynchronous task scheduler uses these options when you select the Incorporate DSP/BIOS option in the model configuration set. By default, Incorporate DSP/BIOS is selected and Target Support Package TC6 software creates separate DSP/BIOS tasks for each sample time in your Simulink model.
DSP/BIOS tasking blocks provide parameters on their block dialog boxes so you can specify the DSP/BIOS stack size and stack segment (where the stack is in memory) for asynchronous tasks created by the DSP/BIOS Task and DSP/BIOS Triggered Task blocks.
The code generation process uses the options on this pane to configure TSK entries in the TSK Task Manager in CCS IDE when it creates DSP/BIOS tasks.
When you clear the Incorporate DSP/BIOS option, you disable the options in this pane. Your project does not include DSP/BIOS tasks, and the target support package uses an interrupt-based scheduler.
For more information about tasks, refer to the Code Composer Studio online help.

Within this pane, you configure the options for DSP/BIOS tasks, such as the task manager and scheduler configuration. The Sections pane includes DSP/BIOS configuration options as well. The options specify the stack use and locations on the stack for static and dynamic tasks.
During program compilation, DSP/BIOS produces both uninitialized and initialized blocks of data and code. These blocks get allocated into memory as required by the configuration of your system. On the DSP/BIOS sections list you find both initialized (sections that contain data or executable code) and uninitialized (sections that reserve space in memory) sections.
Briefly explains the contents of the DSP/BIOS sections list entries.
Shows where the selected DSP/BIOS sections list entry is allocated in memory. You change the memory allocation by selecting a different location from the Placement list. The list contains the memory segments available on C6000 processors, and changes based on the processor you are using.
Distinct from the entries on the DSP/BIOS sections list, DSP/BIOS objects like STS or LOG, if your project uses them, get placed in the memory segment you select from the Data Object Placement list. All DSP/BIOS objects use the same memory segment. You cannot select the location for individual objects.
Distinct from the entries on the DSP/BIOS sections list, specifies the location of code objects.
DSP/BIOS uses a stack to save and restore variables and CPU context during thread preemption for task threads. This option sets the size of the DSP/BIOS stack in bytes allocated for each task. 4096 bytes is the default value. You can set any size up to the limits for the processor. Set the stack size so that tasks do not use more memory than you allocate. While any task can use more memory than the stack includes, this might cause the task to write into other memory or data areas, possibly causing unpredictable behavior.
Use this option to specify where to allocate the stack for static tasks. Static tasks are created whether or not they are needed for operation, compared to dynamic tasks that the system creates as needed. Tasks that your program uses often might be good candidates for static tasks. Infrequently used tasks usually work best as dynamic tasks.
The list offers options SDRAM and ISRAM for locating the stack in memory, with SDRAM as the default section. The Memory pane provide more options for the physical memory on the processor.
Like static tasks, dynamic tasks use a stack as well. Setting this option specifies where to locate the stack for dynamic tasks. In this case, SDRAM is the only valid stack location in memory.
![]() | Custom Board C6000 | DM642 EVM Audio ADC | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |