We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi,
I'm using ARM uVision 5.10.0.2 for Cortex-M. For a terminal like application I have to work with wide chars (wchar_t) and send them over the IIC-Interface. Therefore I want to write/read the formatted string into/from a buffer with vswprintf() / vswscanf() functions. They are provided by wchar.h of the ARM C-Lib. Also included in the Project are stdio.h, wctype.h and stdarg.h.
Compiling ends without error or warning. But Linker ends up with the following:
linking... .\OBJ\E1317_Steuerung.axf: Error: L6218E: Undefined symbol __c89vswprintf (referred from i2c.o). .\OBJ\E1317_Steuerung.axf: Error: L6218E: Undefined symbol vswscanf (referred from i2c.o). Not enough information to list image symbols. Finished: 1 information, 0 warning and 2 error messages. ".\OBJ\E1317_Steuerung.axf" - 2 Error(s), 0 Warning(s). Target not created
Has anyone an idea why the Linker doesn't find the symbols in the library? (printf() and scanf()-Functions from stdio.h without wide-char support can be integrated without problems)
My guess is you forgot to switch from MicroLib to the full standard library. MicroLib doesn't do wide characters.
Thanks Mr. Broeker,
you're right! Switching off the Option "use MicroLib" solves the Problem and the Linker creats the target.
Thank you for giving me the right idea. The Topic is clearly described in the documentation: http://www.keil.com/arm/microlib.asp