If you are writing a program in C that does not use the library and is to run without any environment initialization, you must:
__rt_raise()if you are using the heap.
main(), to avoid linking in the library initialization code.
Write an assembly language veneer that establishes the register state required to run C. This veneer must branch to the entry function in your application.
Provide your own RW/ZI initialization code.
Ensure that your initialization veneer is executed by, for example, placing it in your reset handler.
Build your application using
When you have met these requirements, link your application normally. The linker uses the appropriate C library variant to find any required compiler functions that are implicitly called.
Many library facilities require
static data. Even without the initialization code activated by having
created automatically and uses 96 bytes in the ZI segment.