This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Stack setting in CCS 6.0 overridden by generated file

Other Parts Discussed in Thread: CCSTUDIO, MSP430FR5739

Please help me find this vexing problem. Using CCS 6.0.1.00040, setting the stack size does not appear to change the linker behavior.  It appears that the generated Linker.cmd file overrides the command line option.  How can I increase the stack size when it ignores my input?


.cproject file:

<option id="com.ti.ccstudio.buildDefinitions.MSP430_4.3.linkerID.STACK_SIZE.495318596" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.MSP430_4.3.linkerID.STACK_SIZE" value="0xFF" valueType="string"/>


Link command:

"C:/ti6/ccsv6/tools/compiler/msp430_4.3.4/bin/cl430" -vmspx --abi=eabi --code_model=small --data_model=small -O4 --opt_for_speed=2 --advice:power="all" --advice:hw_config="1.1,1.2" -g --cpp_default --define=__MSP430FR5739__ --diag_warning=225 --display_error_number --diag_wrap=off --silicon_errata=CPU15 --silicon_errata=CPU18 --silicon_errata=CPU21 --silicon_errata=CPU22 --silicon_errata=CPU23 --silicon_errata=CPU40 --single_inline --remove_hooks_when_inlining --printf_support=nofloat -z -m"Pass4.map" --heap_size=0xFF --stack_size=0xFF --use_hw_mpy=F5 --cinit_hold_wdt=on -i"C:/ti6/ccsv6/ccs_base/msp430/include" -i"C:/ti6/ccsv6/tools/compiler/msp430_4.3.4/lib" -i"C:/ti6/ccsv6/tools/compiler/msp430_4.3.4/include" -i"C:/ti6/ccsv6/ccs_base/msp430/lib" -i"C:/ti6/ccsv6/ccs_base/msp430/lib/5xx_6xx_FRxx" --reread_libs --diag_remark=10252-D --warn_sections --display_error_number --diag_wrap=off --xml_link_info="Pass4_linkInfo.xml" --scan_libraries --rom_model --fill_value=0x00 -o "Pass4.out" -l"./configPkg/linker.cmd"  "../lnk_msp430fr5739.cmd" 


Linker.cmd:

/* Elf symbols */
--symbol_map __TI_STACK_BASE=_stack
--symbol_map __TI_STACK_SIZE=_STACK_SIZE
--symbol_map __TI_STATIC_BASE=__bss__
--symbol_map __c_int00=_c_int00
--symbol_map __TI_cleanup_ptr=_cleanup_ptr
--symbol_map __TI_dtors_ptr=_dtors_ptr


--args 0x0
-heap 0x0
-stack 0x40


PROJECT_linInfo.xml:

<object_component id="oc-9d">
<name>.stack</name>
<uninitialized>true</uninitialized>
<run_address>0x1fc0</run_address>
<size>0x4</size>
<input_file_ref idref="fl-17"/>
</object_component>

  • The -l"./configPkg/linker.cmd" passed to the link command means is a BIOS generated linker command file. The project you are working with must be a RTSC project, in other words, uses RTSC components. Is it a GRACE project? If so, there must be a .cfg file in your project. This is the configuration file which is processed to generate the linker.cmd at build time. You would need to edit the .cfg file to modify the stack size.

  • Yes, this is a Grace project. I just wish it were more obvious that the normal CCS settings would be overwritten.

    For the record, in a Grace project, the stack size is set in:

    XDCTools -> System - >Program - >Runtime Sizes.