AnsweredAssumed Answered

use_no_semihosting_swi doesn't work

Question asked by schwab.michael on Jun 17, 2011
Latest reply on Jun 19, 2011 by ColdWeather
I am running the simplest sample program that came with the Standard Peripheral Library Template (that lights 4 LEDs, displays a line on the UART, and 3 lines on the LCD).  Using the Keil tool chain, I turned off Use MicroLib (I'd rather not use MicroLib so I can use C++ code), and the program stopped working (seems to go to a BKPT instruction).  So I read "Note for MDK-ARM in the StdLib help, and it said to use:
#pragma import(__use_no_semihosting_swi)
But the Linker complains:
.\STM3210C-EVAL\STM3210C-EVAL.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _sys_exit was referenced
.\STM3210C-EVAL\STM3210C-EVAL.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _sys_open was referenced
.\STM3210C-EVAL\STM3210C-EVAL.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _ttywrch was referenced

I tried making dummy routines for these 3 in main.c, and got rid of the complaints about _sys_exit and _ttywrch, but _sys_open still complains:
.\STM3210C-EVAL\STM3210C-EVAL.axf: Error: L6200E: Symbol _sys_open multiply defined (by sys_io.o and main.o).

How do I get around this problem, so I don't have to use MicroLib?

Outcomes