Embedded Target for Texas Instruments C6000 DSPs | ![]() ![]() |
As shown in the figure, you can configure the TI C6000 linker to perform certain operations and use specified files. Note that the linker, not the compiler, defines the memory map used and allocated code and data into memory on the target. Refer to Texas Instruments TMS320C000 Optimizing C Compiler User's Guide and to the online help in CCS for more details about using memory maps and models on the target processor.
Retain .obj files. The linker uses object (.obj
extension) files to generate a single executable common object file format (COFF) file that you run on the C6701 EVM or C6711 DSK. Select this option to direct Real-Time Workshop and the Embedded Target for TI C6000 DSP to save your object (.obj
) files after creation. Real-Time Workshop saves the files to your current directory. Saving your .obj
files can speed up the compile process by not having to compile files that you have not changed since you most recently compiled your project. Retaining the .obj
files is the default setting for new projects.
Create .map file. You can direct the linker to produce a map of the input and output sections, including null areas, and place the listing in a file in your current directory with the name modelname
.
map
. When you clear this check box, the linker does not produce the listing. New projects do not create the .map
file.
Linker command file. Specifies the linker command file to use when the linker runs. Linker command files contain linker or hex conversion utility options and the names of input files to the linker or hex conversion utility. You select one of the file options from the list:
User_defined
--lets you use your own linker command file. Developing a custom .cmd
file lets you set linker options that can be more appropriate for your needs. When you select this option, you enable the User linker command file option where you enter the name of your linker command file with the .cmd
file extension.
Full_memory_map
--invokes the linker command file that uses the large memory model on the target. The large memory model does not restrict the size of the uninitialized code sections. Your global and static data can use unlimited storage space up to the limits of the board.
Internal_memory_map
--invokes a linker command file that directs the linker to use the small memory model of the target. Using the small memory model requires that the uninitialized sections of the code fit in the 32KB memory space. The total space for the global and static data in the program must be less than 32KB. This setting offers the optimum use of memory on your target by using only near calls and data exclusively.
Notes about Using The Linker Command File Options
Which option you select for the linker command file options affects how the Embedded Target for TI C6000 DSP handles near and far data and calls. By default, the Embedded Target for TI C6000 DSP, and the TI compiler, generate small memory models that use near calls and data exclusively. Near calls require only one operation; far calls require more operations. As a consequence, programs and code that use far calls run more slowly. You should refer to your CCS documentation for details about near and far data objects and the near and far functions calls.
When you select the Internal_memory_map
option, the Embedded Target for TI C6000 DSP specifies that only near calls get used to access static and global data objects. Internal_memory_map
represents the most efficient memory use. In CCS, the equivalent setting is choosing Near Calls & Data for the Memory Models option in the build configuration.
If you select Internal_memory_map
, but your data or program requires far calls, the TI compiler returns an error message like the following in the CCS IDE
indicating that your data does not fit in internal memory or your code or program do not fit in internal memory. To eliminate these errors, select Full_memory_map
.
Use the Full_memory_map
selection when either or both of the following conditions are true:
bss
section of memory, or
In the above instances, the TI linker issues the error message shown earlier if you select the Internal_memory_map
setting when your program meets the conditions specified.
When you declare an object or data as far, its address is loaded into a register and the compiler does an indirect load of that register (the -mln
option in the Memory Models in the project build configuration). For more information on the -mln
option, refer to your CCS documentation.
You can avoid the error by selecting Full_memory_map
for the Linker Command File option. This prevents the compiler from using near calls, offering you the ability to use all the available memory on your target. But note that your program may run more slowly than if you use the internal map option and your data and program fit into memory without needing far calls for access.
User linker command file. When you select the User defined
option for Linker command file, enter the name of your command file in this box. If the file is not in your current directory, provide the full pathname for the file.
![]() | TI C6000 Compiler Options | TI C6000 Run-Time Options | ![]() |