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)
Same as thread: http://www.keil.com/forum/18993/
and lots of other threads.
Header files contains information for the compiler.
*.axf, *.o etc are involving the linker. The linker needs object or library files when linking a project. The linker doesn't care the slightest if you tell it "there exists a function with the name UARTStdioInit". The linker wants a file that contains already compiled code for that specific function.
So either UARTStdioInit() is missing because you have forgotten to add a library or an object file to your project. Or it is a function that you are expected to write your own customized version of.
"Or it is a function that you are expected to write your own customized version of"
OR it is a function that is provided in Source Code form - so you have to add the Source file(s) to your project...
Thanks for the insight Per Westermark! You hit the nail on the head. After looking over the code and linker settings I apparently overlooked the inclusion of the file that contained the code for this function which, after inclusion, the project built without error. I can't believe as long as I looked at this code I couldn't see the obvious. Sorry for posting a duplicate issue.
Thank you Andy! That what turned out to be the problem for me : ) As it turns out you must add existing files in Keil even though they are in designated location. Thank for that comment. Cheers!