А чем не устраивает main рассматривать как ту самую функцию настройки периферии, из нее уже запускать что-то еще.
Цитата
А можно привести здесь эти строки? А то качать 40 метров слишком накладно...
Вам оно не пригодится. Между SAM'ом и Cortex'ом пропасть как раз в стартапе.
Цитата
Можно, наверное, поставить BL прямо перед вызовом __main. Даже стёк инитить не надо - он грузится автоматически с нулевого адреса таблицы векторов.
Конечно, можно. ;>
Для кортекса:
Код
Reset_Handler
IMPORT LowLevelInit
IMPORT __main
BL LowLevelInit
LDR R0, =__main
BX R0
Сам же LowLevelInit объявите как void LowLevelInit(void) в любом .c файле.