Чтобы использовать gcc и RTOS, у вас должен быть скрипт "ld",
которые описывают, куда помещают что-то в память, например,
для обработки кода глобальных конструкторов.
О вызове конструкторов. Вы можете посмотреть исходный код eCos:
http://ecos.sourceware.org/
Для архитектуры arm вы можете посмотреть на vectors.S и hal_misc.c в каталоге packages / hal / arm / arch / current / src. vector.S содержит что-то вроде:
bl cyg_hal_invoke_constructors
и в реализации hal_mics.c этой функции.