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.

TMS570LC4357: Code composer build problem

Part Number: TMS570LC4357
Other Parts Discussed in Thread: SYSBIOS

I get these occasional and persistent errors in Code Composer Studio, wherein the linker goes nuts and spews out this obscure error.  It only happens once in a while, usually every few days, and I don't know what is wrong.  I have tried getting rid of the workspace but the problem persists.  I did re-install CCS once and the problem went away, and this last time, rebooting my build machine cleared out the problem.

Could someone tell me what the problem is, and how to fix it without rebooting (which is a real pain, since setting up my environment takes quite a while)?

Thank you for any help.

Building target: "DCAN_RX.out"
Invoking: ARM Linker
"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/bin/armcl" -mv7R5 --code_state=32 --float_support=VFPv3D16 -g --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=packed --abi=eabi -z -m"DCAN_RX.map" --heap_size=0x800 --stack_size=0x800 -i"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/lib" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="DCAN_RX_linkInfo.xml" --rom_model --be32 -o "DCAN_RX.out" "./app/source/APP_CONSOLE.obj" "./app/source/APP_RCV_CONTROL.obj" "./app/source/APP_RCV_VEHICLE.obj" "./canMsgLib/CAN_msg_lib.obj" "./core/time/source/DCS_TIME.obj" "./database/source/DB.obj" "./database/source/ID.obj" "./source/.
<Linking>"C:\\Users\\xxx\\AppData\\Local\\Temp\\{E415C439-4540-47F0-B28A-55ABDCBFDC15}", line 30: fatal error #6001: cannot open file "./source/.": Permission denied

  • Why does the linker invocation end with ...

    "./source/.

    That's not a file name, it's a directory.  Where is the closing double quote character? The linker tries to open that like it is a file, but it's a directory. 

    Thanks and regards,

    -George 

  • Hi Peter,

    Can you provide the three .*project files in your project folder?

    Thanks

    ki

  • Unfortunately, the problem came and went, so project configuration files are probably no longer pertinent.  I will snapshot them the next time I encounter such problem(s).

    One thing I do have to mention is that I use the same code base/area with two different projects/workspaces concurrently, so  the synchronization of the two CCS instances could have causes the corruption.  I use two board to do transmit+received testing.

    Thanks.

  • Ok, thanks for the update. Please let me know if it happens again and can provide the requested files.

  • The build failure occurred again.  I have uploaded the .*projects files via email (because TI apparently blocks file sharing sites).

    Sign in to www.protonmail.com as user shareuser1000 with password password.  The email Subject is .*project files when build fails.

    Thanks.

  • Problem occurred again today.  It seems any code change could cause this problem, and it persists across project cleans.  There is no obvious way to fix this, and sometimes PC reboot works and other times it doesn't.

    This is going from annoyance to almost showstopper, since I don't know how to fix the problem in a sure-fire way.

    Invoking: ARM Linker
    "C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/bin/armcl" -mv7R5 --code_state=32 --float_support=VFPv3D16 -g --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=packed --abi=eabi -z -m"DCAN_RX.map" --heap_size=0x800 --stack_size=0x800 -i"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/lib" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="DCAN_RX_linkInfo.xml" --rom_model --be32 -o "DCAN_RX.out" "./app/source/APP_CONSOLE.obj" "./app/source/APP_RCV_CONTROL.obj" "./app/source/APP_RCV_VEHICLE.obj" "./canMsgLib/CAN_msg_lib.obj" "./core/time/source/DCS_TIME.obj" "./database/source/DB.obj" "./database/source/ID.obj" "./source/HL_can.obj" "./source/HL_epc.obj" "./source/HL_errata.obj" "./source/HL_errata_SSWF021_45.obj" "./source/HL_esm.obj" "./source/HL_gio.obj" "./source/HL_het.obj" "./source/HL_nmpu.obj" "./source/HL_notification.obj" "./source/HL_pinmux.obj" "./source/HL_sci.obj" "./source/HL_sys_core.obj" "./source/HL_sys_dma.obj" "./source/HL_sys_intvecs.obj" "./source/HL_sys_main.obj" "./source/HL_sys_mpu.obj" "./source/HL_sys_pcr.obj" "./source/HL_sys_phantom.obj" "./source/HL_sys_pmm.obj" "./source/HL_sys_pmu.obj" "./source/HL_sys_startup.obj" "./source/HL_sys_vim.obj" "./source/HL_system.obj" "./stdio/.
    <Linking>
    "C:\\Users\\plu\\AppData\\Local\\Temp\\{34A0E422-4EFD-4204-9F73-A1A8AD9AA610}", line 53: fatal error #6001: cannot open file "./stdio/.": Permission denied

    >> Compilation failure
    makefile:196: recipe for target 'DCAN_RX.out' failed
    gmake: *** [DCAN_RX.out] Error 1
    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****

  • Thanks for the project metadata file. They look fine. 

    Would it be possible to share your whole project so that I can build it locally?

  • I'm pretty sure sharing the entire project would make no difference, even if I were able to upload that amount of data (had to use email to post files to TI because of TI security blocks).  The linker error is some persisting transient problem (no obvious cause or rhyme and reason)  that clears out once the build machine is rebooted (although restarting CCS doesn't seem to clear it, likely because it's a linker issue not tied to the IDE).  Hence, if you build the project (on a new machine), you will not see the problem.

    Perhaps updating my build tools (currently using TI v20.2.0.LTS) would resolve the problem. 

    Thanks.

  • Peter,

    Ki is out for a few days.

    In both cases the end of the invocation of the link is messed up.  It is passing a partial path and it is not fully quoted.

    First post

    "./source/.

    Most recent one

    "./stdio/.

    I would expect to see the linker command file and libraries getting passed after the obj files but they are not there either.  It looks like the command is being cut off.    Everything in bold below is missing.

    Invoking: Arm Linker

    "/Applications/ti/ccs1120/ccs/tools/compiler/ti-cgt-arm_20.2.5.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -O3 --define=DeviceFamily_CC13X2 -g --diag_warning=225 --diag_warning=255 --diag_wrap=off --display_error_number --gen_func_subsections=on -z -m"buttonled_CC1312R1_LAUNCHXL_tirtos7_ccs.map" -i"/Users/a0792138/ti/simplelink_cc13xx_cc26xx_sdk_6_10_00_29/source" -i"/Users/a0792138/ti/simplelink_cc13xx_cc26xx_sdk_6_10_00_29/kernel/tirtos7/packages" -i"/Users/a0792138/workspace_v1120/buttonled_CC1312R1_LAUNCHXL_tirtos7_ccs/Debug/syscfg" -i"/Applications/ti/ccs1120/ccs/tools/compiler/ti-cgt-arm_20.2.5.LTS/lib" --diag_wrap=off --display_error_number --warn_sections --xml_link_info="buttonled_CC1312R1_LAUNCHXL_tirtos7_ccs_linkInfo.xml" --rom_model -o "buttonled_CC1312R1_LAUNCHXL_tirtos7_ccs.out" "./buttonled.obj" "./syscfg/ti_devices_config.obj" "./syscfg/ti_drivers_config.obj" "./syscfg/ti_sysbios_config.obj" "./main_tirtos.obj" "../cc13x2_cc26x2_tirtos7.cmd"  -lti_utils_build_linker.cmd.genlibs -l"ti/devices/cc13x2_cc26x2/driverlib/bin/ccs/driverlib.lib" -llibc.a 

    <Linking>

    Finished building target: "buttonled_CC1312R1_LAUNCHXL_tirtos7_ccs.out"

    If you go to the project properties and select the linker what does this dialog look like:

    John

  • Different project, but same error.  Indeed, the linker command looks truncated, possibly because the IDE has a limitation on command length.  Any suggestions for fix, besides brute-forcing combining directories/objects so the command is shorter?

    Thanks.

    Building target: "DCAN_RX.out"
    Invoking: ARM Linker
    "C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/bin/armcl" -mv7R5 --code_state=32 --float_support=VFPv3D16 -g --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=packed --abi=eabi -z -m"DCAN_RX.map" --heap_size=0x800 --stack_size=0x800 -i"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/lib" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="DCAN_RX_linkInfo.xml" --rom_model --be32 -o "DCAN_RX.out" "./app/source/APP_CONSOLE.obj" "./app/source/APP_RCV_CONTROL.obj" "./app/source/APP_RCV_VEHICLE.obj" "./canMsgLib/CAN_msg_lib.obj" "./core/time/source/DCS_TIME.obj" "./database/source/DB.obj" "./database/source/ID.obj" "./source/HL_can.obj" "./source/HL_epc.obj" "./source/HL_errata.obj" "./source/HL_errata_SSWF021_45.obj" "./source/HL_esm.obj" "./source/HL_gio.obj" "./source/HL_het.obj" "./source/HL_nmpu.obj" "./source/HL_notification.obj" "./source/HL_pinmux.obj" "./source/HL_sci.obj" "./source/HL_sys_core.obj" "./source/HL_sys_dma.obj" "./source/HL_sys_intvecs.obj" "./source/HL_sys_main.obj" "./source/HL_sys_mpu.obj" "./source/HL_sys_pcr.obj" "./source/HL_sys_phantom.obj" "./source/HL_sys_pmm.obj" "./source/HL_sys_pmu.obj" "./source/HL_sys_startup.obj" "./source/HL_sys_vim.obj" "./source/HL_system.obj" "./stdio/.
    <Linking>
    "C:\\Users\\plu\\AppData\\Local\\Temp\\{984F0A7A-58F1-4A1C-861E-DB8C32FDE26F}", line 53: fatal error #6001: cannot open file "./stdio/.": Permission denied

    >> Compilation failure
    makefile:200: recipe for target 'DCAN_RX.out' failed
    gmake: *** [DCAN_RX.out] Error 1
    gmake: Target 'all' not remade because of errors.

    **** Build Finished ****

  • The curious thing is WHY rebooting my host PC clears out the problem, if it's only a matter of the IDE limiting command-line length?  I just rebooted, and the build completes fine.  It seems the command-line buffer space increased to allow:

    /vsscanf.obj" "./user/user_task.obj" "./utility/protocols/source/SAFE_STRING.obj" "./utility/protocols/source/TRANSCODE.obj" "./utils/timer.obj" "./utils/umm_info.obj" "./utils/umm_integrity.obj" "./utils/umm_malloc.obj" "./utils/umm_poison.obj" "../source/HL_sys_link.cmd" -llibc.a

    Or perhaps a null character got into the command-line somehow, truncating the above.

    ===

    Building target: "DCAN_RX.out"
    Invoking: ARM Linker
    "C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/bin/armcl" -mv7R5 --code_state=32 --float_support=VFPv3D16 -g --diag_warning=225 --diag_wrap=off --display_error_number --enum_type=packed --abi=eabi -z -m"DCAN_RX.map" --heap_size=0x800 --stack_size=0x800 -i"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/lib" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="DCAN_RX_linkInfo.xml" --rom_model --be32 -o "DCAN_RX.out" "./app/source/APP_CONSOLE.obj" "./app/source/APP_RCV_CONTROL.obj" "./app/source/APP_RCV_VEHICLE.obj" "./core/time/source/DCS_TIME.obj" "./database/source/DB.obj" "./database/source/ID.obj" "./source/HL_can.obj" "./source/HL_epc.obj" "./source/HL_errata.obj" "./source/HL_errata_SSWF021_45.obj" "./source/HL_esm.obj" "./source/HL_gio.obj" "./source/HL_het.obj" "./source/HL_nmpu.obj" "./source/HL_notification.obj" "./source/HL_pinmux.obj" "./source/HL_sci.obj" "./source/HL_sys_core.obj" "./source/HL_sys_dma.obj" "./source/HL_sys_intvecs.obj" "./source/HL_sys_main.obj" "./source/HL_sys_mpu.obj" "./source/HL_sys_pcr.obj" "./source/HL_sys_phantom.obj" "./source/HL_sys_pmm.obj" "./source/HL_sys_pmu.obj" "./source/HL_sys_startup.obj" "./source/HL_sys_vim.obj" "./source/HL_system.obj" "./stdio/dbuf.obj" "./stdio/input.obj" "./stdio/output.obj" "./stdio/printf.obj" "./stdio/scidma.obj" "./stdio/vsscanf.obj" "./user/user_task.obj" "./utility/protocols/source/SAFE_STRING.obj" "./utility/protocols/source/TRANSCODE.obj" "./utils/timer.obj" "./utils/umm_info.obj" "./utils/umm_integrity.obj" "./utils/umm_malloc.obj" "./utils/umm_poison.obj" "../source/HL_sys_link.cmd" -llibc.a
    <Linking>
    Finished building target: "DCAN_RX.out"

    Building files: "DCAN_RX.out"
    Invoking: ARM Hex Utility
    "C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS/bin/armhex" --memwidth=32 --romwidth=32 --motorola=2 -o "DCAN_RX.hex" "DCAN_RX.out"
    Translating to Motorola-S2 format...
    "DCAN_RX.out" .intvecs ==> .intvecs
    "DCAN_RX.out" .text ==> .text
    "DCAN_RX.out" .const ==> .const
    "DCAN_RX.out" .cinit ==> .cinit
    warning: section DCAN_RX.out(.const) was padded by 3 to a size of 1780 to
    satisfy the specified memory width of 4
    Finished building: "DCAN_RX.out"

    **** Build Finished ****

  • The curious thing is WHY rebooting my host PC clears out the problem, if it's only a matter of the IDE limiting command-line length?  I just rebooted, and the build completes fine.

    I am also at a loss as to why the PC reboot resolved the issue. Glad to hear it is working however.