How to Write C / C++ Code Without Any Runtime Library

Hello all,

How can i write a c or c++ program without any runtime library at all.My basic requirement is i will write all the functions myself and the compiler should only produce the code that my source code says.I will not use any function from the runtime library and i will not even include any header.If it could be done using command line swicthes then please let me know about it.I prefer C Compiler.

I would like to make a boot loader like program using either C or C++.With a little or no ASM

1.Which compiler the BIOS making people use.Do they code only in ASM ?.I assume they use both.
2.What compiler the Single board microprocessor trainer people use ?.
3.Is the simulator like Virtual PC).Like the one available for microcontrollers,like IARs,etc which has editor,compiler & simulator all built in.
4.Where can i get the latest Standard call info which is supported by all processors.Who is standardizing the code.

Thanks

Pak

Parents
  • Hi Pak,

    it is relatively easy to avoid the C run-time environment. At the end of your startup code do not branch to main. Create your C-entry function yourself, like C_Entry. By not calling main, the C run-time environment is not established, including the heap (there is no heap). Make also sure that you disable semihosting (use_no_semihosting). For the rest of your software you have to provide routines for your fixed point math operations depending on your platform (8 bit will be more complicated than 32 bit). If you need floating point math it will get really complicated, so stay away from it. I did several of such projects for safety critical applications and it works but expect a lot of work in front of you. Good luck!

    Frank

Reply
  • Hi Pak,

    it is relatively easy to avoid the C run-time environment. At the end of your startup code do not branch to main. Create your C-entry function yourself, like C_Entry. By not calling main, the C run-time environment is not established, including the heap (there is no heap). Make also sure that you disable semihosting (use_no_semihosting). For the rest of your software you have to provide routines for your fixed point math operations depending on your platform (8 bit will be more complicated than 32 bit). If you need floating point math it will get really complicated, so stay away from it. I did several of such projects for safety critical applications and it works but expect a lot of work in front of you. Good luck!

    Frank

Children
More questions in this forum