This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Error: L6218E: Undefined symbol UARTStdioInit

Hi,
I'm trying to use the i2c "master_slave_loopback.c" example from the Stellarisware7248 directory for the LM3S1968 and have went through the getting started excercises and other example programs and have painstakingly made sure all Linker settings etc.. etc are as described both in the Keil getting started appnote and the other LM3S1968 examples.

The list of headers as they appear are:

#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/hw_i2c.h"
#include "driverlib/i2c.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "utils/uartstdio.h"

All those headers show up in the project under the master_slave_loopback.c file

The following error keeps persisting. The symbol in question IS defined in the properly linked header file. Can I be missing something obvious?

i2c_LoopBack.axf: Error: L6218E: Undefined symbol UARTStdioInit (referred from master_slave_loopback.o)

Parents
  • The symbol in question IS defined in the properly linked header file.

    It is most certainly not, and nor should it. It is a common rule that no symbols should be defined in header files, they should only be declared. Of this follows that you don't link headers (there is nothing there to be linked !), you just include them.

    However that you do have a linking problem. Do you have the source code of uartstdio.c or is it hidden in a library ?

Reply
  • The symbol in question IS defined in the properly linked header file.

    It is most certainly not, and nor should it. It is a common rule that no symbols should be defined in header files, they should only be declared. Of this follows that you don't link headers (there is nothing there to be linked !), you just include them.

    However that you do have a linking problem. Do you have the source code of uartstdio.c or is it hidden in a library ?

Children