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.

Compiler/TMS570LS3137: TI v5.0.1 [TI v5.2.5]- compiler Version

Part Number: TMS570LS3137

Tool/software: TI C/C++ Compiler

Hi,

I facing during the all object File, below I listed the full length of command and error also. Request you plz guide me what extra need to be set in flag section or where I am going wrong:

Command Line: -mv7R4 --abi=eabi -Ooff --opt_for_speed=0 -g --check_misra="17,-17.4,-17.6" --diag_warning=225 --display_error_number --stack_size=0x800 -m"ESCL.map" --heap_size=0x800 --gen_data_subsections -i"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.5/lib" -i"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.5/include" -i"D:/MPOS/SOUCRE_CODE/FS_Automotive_POC_22Feb2017/Source_code/ESCL/Debug/source/MCAL" -i"D:/MPOS/SOUCRE_CODE/FS_Automotive_POC_22Feb2017/Source_code/ESCL/Debug/source/OS" -i"D:/MPOS/SOUCRE_CODE/FS_Automotive_POC_22Feb2017/Source_code/ESCL\Debug/source/app" --reread_libs --warn_sections --display_error_number --xml_link_info="ESCL_linkInfo.xml" --rom_model --be32 --unused_section_elimination=off --compress_dwarf=off --copy_compression=rle --cinit_compression=rle --zero_init=on --gen_func_subsections=on dabort.obj, esm.obj, gio.obj, gpio_wrapper.obj, interrupt_management.obj, io_management.obj, ipc.obj, ipps.obj, mpos_utils.obj, notification.obj, os.obj, OS_Context.obj, partition.obj, partition1.obj, partition2.obj, partition3.obj, partition4.obj, partition5.obj, partition6.obj, partition7.obj, partition_utils.obj, pinmux.obj, rti.obj, sci.obj, system.obj, System_calls.obj, sys_core.obj, sys_intvecs.obj, sys_mpu.obj, sys_pcr.obj, sys_phantom.obj, sys_pmu.obj, sys_selftest.obj, sys_startup.obj, uart.obj

after enter in Command Prompt (output Displayed):

C:\ti\ccsv6\tools\compiler\ti-cgt-arm_5.2.5\bin>armcl -mv7R4 --abi=eabi -Ooff --opt_for_speed=0 -g --check_misra="17,-17.4,-17.6" --diag_warning=225 --display_error_number --s
tack_size=0x800 -m"ESCL.map" --heap_size=0x800 --gen_data_subsections -i"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.5/lib" -i"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.5/includ
e" -i"D:/MPOS/SOUCRE_CODE/FS_Automotive_POC_22Feb2017/Source_code/ESCL/Debug/source/MCAL" -i"D:/MPOS/SOUCRE_CODE/FS_Automotive_POC_22Feb2017/Source_code/ESCL/Debug/source/OS"
-i"D:/MPOS/SOUCRE_CODE/FS_Automotive_POC_22Feb2017/Source_code/ESCL\Debug/source/app" --reread_libs --warn_sections --display_error_number --xml_link_info="ESCL_linkInfo.xml"
--rom_model --be32 --unused_section_elimination=off --compress_dwarf=off --copy_compression=rle --cinit_compression=rle --zero_init=on --gen_func_subsections=on dabort.obj, es
m.obj, gio.obj, gpio_wrapper.obj, interrupt_management.obj, io_management.obj, ipc.obj, ipps.obj, mpos_utils.obj, notification.obj, os.obj, OS_Context.obj, partition.obj, part
ition1.obj, partition2.obj, partition3.obj, partition4.obj, partition5.obj, partition6.obj, partition7.obj, partition_utils.obj, pinmux.obj, rti.obj, sci.obj, system.obj, Syst
em_calls.obj, sys_core.obj, sys_intvecs.obj, sys_mpu.obj, sys_pcr.obj, sys_phantom.obj, sys_pmu.obj, sys_selftest.obj, sys_startup.obj, uart.obj
>> WARNING: invalid compiler option --stack_size=0x800 (ignored)
error #24015-D: bad argument to option -ms: should be one of {on,off}


I am not able to find out the -ms in my command line. Request you to help me.

Use CCS IDE: 6.0.1

Compiler: ti-cgt-arm_5.2.5

With Regards

Shankar

 

  • Hello Shankar,

    -ms is the alias of "--gen_func_subsections".

    This is the explanation about --gen_func_subsections in spnu151j.pdf:

    4.2.2 Generating Function Subsections (--gen_func_subsections Compiler Option)
    The compiler translates a source module into an object file. It may place all of the functions into a single
    code section, or it may create multiple code sections. The benefit of multiple code sections is that the
    linker may omit unused functions from the executable.
    When the linker collects code to be placed into an executable file, it cannot split code sections. If the
    compiler did not use multiple code sections, and any function in a particular module needs to be linked
    into the executable, then all functions in that module are linked in, even if they are not used.
    An example is a library .obj file that contains a signed divide routine and an unsigned divide routine. If the
    application requires only signed division, then only the signed divide routine is required for linking. If only
    one code section was used, both the signed and unsigned routines are linked in since they exist in the
    same .obj file.
    The --gen_func_subsections compiler option remedies this problem by placing each function in a file in its
    own subsection. Thus, only the functions that are referenced in the application are linked into the final
    executable. This can result in an overall code size reduction.

    Regards,
    QJ
  • Thanks for providing the solution,

    Now I am facing the problem with JTAG connection to Target:
    error: Could not start server: DebugServer.1: IcePick: Error initializing emulator: (Error -2083 @ 0x0) Unable to communicate with the debug probe. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 6.0.14.5) .

    Please suggest how to resolve this error.

    With Regards
    Shankar