В документации к WinAVr(gcc) (avr-libc) подробно расписаны секции инициализации (.init0-9) и секции завершения программы (.finit0-9). Для ARM на gcc должно быть что-то похожее.
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков