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.

TI 16.3.0.STS armlnk.exe unhandled exception

Other Parts Discussed in Thread: CC1310

I can't compile simple hello word for CC1310, I got 436 errors.

How to fix it ?

>> Compilation failure
makefile:139: recipe for target 'cc1310.out' failed
>> ERROR: mklib: gmake error during rtsv7M3_T_be_eabi.lib build
warning #10207-D: automatic RTS selection:  resolving index library "libc.a" to "rtsv7M3_T_be_eabi.lib", but "rtsv7M3_T_be_eabi.lib" was not found
error #10198-D: no input section is linked in
warning #10062-D: entry-point symbol "_c_int00" undefined
warning #10202-D: no suitable entry-point found; setting to 0

INTERNAL ERROR: C:\prg\ti\ccsv6\tools\compiler\ti-cgt-arm_16.3.0.STS\bin\armlnk.exe experienced an unhandled exception

This is caused by a defect in the compiler itself. TI Customer
Support may be able to suggest a workaround to avoid this.

Here is my linker flags and project.

-mv7M3 -g --display_error_number --diag_wrap=off --diag_warning=225 -z -m"cc1310.map" -i"C:/prg/ti/ccsv6/tools/compiler/ti-cgt-arm_16.3.0.STS/lib" -i"C:/prg/ti/ccsv6/tools/compiler/ti-cgt-arm_16.3.0.STS/include" --reread_libs --warn_sections --display_error_number --diag_wrap=off --xml_link_info="cc1310_linkInfo.xml" --rom_model --minimize_trampolines=postorder

cc1310.zip

  • The root of the problem is that the RTS library rtsv7M3_T_be_eabi.lib failed to build.

    Whenever it is linking C or C++ code, the linker looks in the lib directory specified with a -i option for the correct RTS library.  If that library is not present, the linker invokes the utility mklib to build it.  In your case, this mklib invocation fails.  Please see this wiki article about mklib, particularly the troubleshooting section.  One of those tips may help you fix the problem.

    Another idea to consider ... I notice you build for big endian.  Note big endian is the compiler default.  If little endian is desired, then the build switch --little_endian (or -me for short) is used.  In the few minutes I spent searching, I could not determine what endian is expected for a CC1310 device.  Perhaps it is something selected when the system powers on.  I mention this because, if little endian is what is needed, then you link with the RTS library rtsv7M3_T_le_eabi.lib, and this library is supplied with the compiler installation.  Thus mklib isn't needed.

    Thanks and regards,

    -George