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.

CCS/MSP432E411Y: System_printf is undefined at link

Part Number: MSP432E411Y

Tool/software: Code Composer Studio

I am going through simplelink_mcu_sdk/Users_Guide.html to see what I need to include and have had no luck.  I also did a grep through the simplelink_mcu_sdk install directory to see where it might be defined, but no luck. I find a lot of invocations, but no implementation.

I have imported the CCS debug project and I made sure that I am using SysMin as the system portion of TI RTOS.

Hoping someone can point me to the appropriate document with instructions on how to include System_printf.  I looked at the RTOS User Guide, but those appear to point back to Tiva instructions for CCSv6.

Of course, System_flush() is also undefined!

  • <stdio.h> should be good enough.
  • #include <xdc/runtime/System.h>
  • Thanks Todd.

    That fixed it but it is surprising that it does. I suppose there are references inside System.h that pull in another object module at link time but does not cause an undefined reference from the compiler. All you get from the compiler is a warning that you have defined System_printf implicitly.

    My guess is that System.h actually has a preprocessor macro that defines System_printf as some completely different function name depending on other factors.
  • Your guess is correct... there are the following in the header file.

    #define xdc_runtime_System_printf xdc_runtime_System_printf__E
    #define System_printf xdc_runtime_System_printf

    There are times where for namespace protection, people like using the fully qualified name. The "__E" is a different story that I won't bore you with:)

    Todd