It appears that you haven't linked the standard libraries correctly.It's important to realize the difference between the compiler and the linker.The compiler takes your source files and translates them into object files. Typically, these objects will include the assembly source and a number of symbols which the linker will use. The compiler doesn't know or care where resources (such as memcpy or __divsi3) exist, provided that they're declared in a header somewhere. Your C headers just tell the compiler "you can use this function, and here's its prototype".The linker takes your object files and glues them all together. This generally entails resolving symbols to addresses and fitting your code into a memory structure. However, the headers you specified to the compiler mean nothing here; they just tell the compiler which symbols to add to the object file so the linker knows what to look for. The linker will search through all objects and any linked libraries for the symbols, and it will complain if it can't find them. That seems to be what's happening in your case.IDEs such as uVision often hide this relationship from the user, but it is important to understand.Having said that, the functions you listed are part of the standard C library, and as such they should be linked by default. You generally have to explicitly tell the linker to exclude the standard libraries, though it is common to exclude them for embedded targets and so your IDE may be configured to do that by default.I'm not familiar with uVision so I can't really help you with finding the correct options...