Для кортексов все стартапы отличаются только таблицей векторов прерываний. Заменить её для нового проца - дело 1 минуты.
А можно вот так сделать, чтобы один стартап под GCC, IAR и Keil был. На асме такое как?
Cи-шный код оптимизируется лучше, препроцессором им проще управлять.