Немного почитал про это здесь:
http://infocenter.arm.com/help/index.jsp?t...i/Bce3gfea.html
(использую RVDS4)
Не совсем понятно с настройкой стека. Там пишут, что настройку стека выполняет пользовательский стартап код.
Я так и делаю, но еще до main библиотечная функция (sys_stackheap_outer) меняет указатель стека. Что это означает? Может ли библиотечный код пытаться настроить стеки сам? Я вроде даже не давал ему никакой информации о размещении памяти на МК.
Если из стартапа вызываю сразу main, то программа работает, но не инициализируются глобальные переменные. Но если я вызываю __main, то указатель стека изменяется и программа не доходит до main.
Также библиотечный код генерирует программное прерывание (SWI) с кодом 0x123456. Зачем это нужно?