This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
bare_metal [2015/11/29 20:15] external edit |
bare_metal [2018/05/27 16:10] (current) |
||
---|---|---|---|
Line 23: | Line 23: | ||
======Strategies====== | ======Strategies====== | ||
+ | |||
+ | People typically create a bare-metal application on a PC with a cross-compiler such as a [[compiler for arm]], and then transfer the executable to the target hardware using a bootloader such as the [[LPC1114 Bootloader]]. | ||
Compilers usually support building for bare metal, but need additional parameters, like ''--no-std-inc'' and/or ''--no-std-lib''. | Compilers usually support building for bare metal, but need additional parameters, like ''--no-std-inc'' and/or ''--no-std-lib''. | ||
Line 29: | Line 31: | ||
Precompiler-optimisations. It's a good idea to let the precompiler do one-time calculations as much as possible. Then only the result is stored in the binary, saving the calculation effort at runtime. [[Teacup Firmware]] uses this strategy a lot, making it about double as fast and half as big as compareable printing firmwares. | Precompiler-optimisations. It's a good idea to let the precompiler do one-time calculations as much as possible. Then only the result is stored in the binary, saving the calculation effort at runtime. [[Teacup Firmware]] uses this strategy a lot, making it about double as fast and half as big as compareable printing firmwares. | ||
+ |