Недавно наткнулся на эту книжку на GitBook: http://arobenko.gitbooks.io/bare_metal_cpp/
Доступна для онлайн-чтения, в виде форматов ePUB, MOBI и PDF. Рассматриваются вопросы уменьшения размера приложений, написания своих реализаций ABI функций, что позволяет более детально понимать, а что там вообще внутри происходит, что бывает полезно и обычных приложениях. Вместе с ней обязательно ознакомиться с post/2013/03/28/scott_meyers._effective_c_in_an_embedded_environment.
Книга больше ориентирована на ARM, в частности Raspberry PI, но идеи адаптировать к другим платформам труда не составит.
Дополнительные ссылки:
- http://elegantinvention.com/blog/information/smaller-binary-size-with-c-on-baremetal-g/
- http://www.webalice.it/fede.tft/cpp_on_microcontrollers_tricks/cpp_on_microcontrollers_tricks.html
- http://www.state-machine.com/arm/Building_bare-metal_ARM_with_GNU.pdf или с блога
UPD:
-
STM32F4 – Code Optimization хорошая заметка в блоге (блог вообще стоит почитать:
http://istarc.wordpress.com/category/embedded-systems/stm32f4/) по поводу оптимизации кода по размеру, информация о дополнительных опциях -fno-builtin (не включать встроенные функции gcc) и -flto (использовать
link-time optimization и
тыц), а так же дополнительную литературу по теме использования C++ в embedded:
- анализ производительности (в т.ч. STL):
- Technical Report on C++ Performance - мегадока! Must Read.
- The Inefficiency of C++. Fact or Fiction? от IAR Systems.
- Link time dead code and data elimination using GNU toolchain - про то, что может поломать -Wl,-gc-sections
- анализ производительности (в т.ч. STL):