String I/O

I’m using SDCC to develop code for a Silabs C8051F120.  I’m not a C runtime guru so I could use some advice on the following questions: My code was fine until I included string.h. Now the linker thinks that main needs to link to _vSerialISR.  Why?  And why doesn’t it matter when it can’t find it? Why do I need to implement putchar just to be able to use sprintf ? -Bill

String I/O

Including any string handling stuff is going to drag in a lot of functions, but I don’t know why the serial ISR would be one of them.

String I/O

Are you using the pre-built libraries?  Try building the libraries yourself afresh.