[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4179313#p4179313"]в стартапе я в reset_handler готовлю данные, а потом сразу вызываю main(). А уже оттуда вызываю все настройки.[/uquote]Сколько прошло с того времени как ты на SystemInit() выступал? Ну так получай, фашист, гранату. Нормальные люди вызывают SystemInit(), инициализируют в нём периферию, затем инициализируют сегменты данных и только потом в main идут. Причём, компилятор это всё заинлайнит сам и вызовов не будет.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4179313#p4179313"]gcc выталкивал на стек флоаты в main() еще до инициализации FPU.[/uquote]Имеет право, переменные создаёт.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4179313#p4179313"]Я пользуюсь IDE, отвали в туман![/uquote]Ага, я вижу. IDE без отладчика называется редактор кода или блокнот.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4179313#p4179313"]А вот gdb я не осилил, хоть в qt-creator есть даже "встроенная поддержка" его (правда, нафиг, если удобней в консоли?).[/uquote]Так удобно, что не освоил.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4179313#p4179313"]Правда, не вижу вообще, чем бы мне в данной ситуации помог отладчик! Он бы мне сказал, что флоаты выкинуты в стек еще до инициализации FPU?[/uquote]Конечно показал бы. На раз два.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4179313#p4179313"]В общем, обработчик прерывания сброса у меня теперь вот такой:[/uquote]Дичь какая-то...
Если хотя бы краем глаза заглянуть в Cortex-M4F Programmming Mnual, то обнаружится, что значение по ресету там как раз 0x00000200. Да даже просто в отладчике это видно.
Код: Выделить всё
SCB->CPACR = 0x0f << 20 ; /* set CP10 and CP11 Full Access */
nop();
__DSB();
__ISB();
Я знаю кунг-фу, карате, джиу-джитсу и ещё много страшных слов. Нафига последние три команды тут? Ты хоть представляешь что они делают?
Ты из main возвращаться решил? Зачем тогда говорил, что noreturn?