-
- Наверное можно дизассемблером посмотреть, возможно станет понятно как туда попали. - AlexBi(08.11.2018 18:33)
- Да мусор там какой-то. Apтём(66 знак., 08.11.2018 18:42)
- Типа так - unaligned access Apтём(08.11.2018 18:48)
- unaligned access - это, например, когда пишешь 32 битное значение по нечетному адресу, аля *(int *)0x80000001 = 0x12345678 oman(192 знак., 11.11.2018 12:23)
- Посмотреть что в LR, предположительно там адрес, с которого ушли в SRAM. Смотреть, дизассемблером, что по этому адресу. Там и исходный код уже может появиться. - AlexBi(08.11.2018 19:50)
- А вот кстати да, может быть. Сейчас обратил внимание - на скриншоте из моего предыдущего поста. Я видимо щёлкнул в Fault Analizyr-е перейти по LR (я Analyzer-ом раньше и не пользовался). А там вызов Apтём(86 знак., 08.11.2018 20:19)
- +1. - SciFi(08.11.2018 19:56)
- Типа так - unaligned access Apтём(08.11.2018 18:48)
- Да мусор там какой-то. Apтём(66 знак., 08.11.2018 18:42)
- У меня была подобная фигня с ATSAM4S и GCC. Отлаживал в Eclipse. В первом случае оказалось, что ничего кроме бутлодера не работает, и вместо кода из флеш происходит попытка запуска кода в RAM. Nikolay_Po(409 знак., 08.11.2018 17:53 - 17:55)
- Может быть задам глупый вопрос, но спрошу - что вы имеете в виду под термином "разбор стэка"? Apтём(44 знак., 08.11.2018 18:01)
- У меня отладчик показывает Call Stack - последовательность вызова функций начиная с main. Даже если исполнение кода залетело непонятно куда, есть шанс, что отладчик покажет там что-то вразумительное. - SciFi(08.11.2018 18:04)
- Это и имел ввиду. Долго искал, где же в меню Эклипса найти содержимое стэка, тупил. Nikolay_Po(1037 знак., 08.11.2018 21:20)
- Я тоже наверное туплю... Apтём(198 знак., 08.11.2018 22:18)
- У меня было настроено, вроде, так. И отладка работала даже с оптимизацией -O3. Обнаружил и вспомнил, что и в Windows работало тоже. Но в 64-бит системе приходилось использовать 32-бит OpenOCD. Nikolay_Po(174 знак., 08.11.2018 22:53 - 22:56)
- У меня это как-то по-другому выглядит. Так что пока не нашёл как call stack смотреть. - Apтём(09.11.2018 18:25)
- У меня было настроено, вроде, так. И отладка работала даже с оптимизацией -O3. Обнаружил и вспомнил, что и в Windows работало тоже. Но в 64-бит системе приходилось использовать 32-бит OpenOCD. Nikolay_Po(174 знак., 08.11.2018 22:53 - 22:56)
- Я тоже наверное туплю... Apтём(198 знак., 08.11.2018 22:18)
- Странно, у меня в одной эклипсе вообще нет Call Stack, в другой есть, но не показывает ничего. Может компилировать надо с какими-то ключами или отладка не та (у меня ST-Link)? - Apтём(08.11.2018 18:33)
- У меня gcc -O0. Отладчик кейловский нормально всё показывает. Ему, кстати, нужен -gdwarf-2. А ST-Link вообще ни при чём должен быть, потому что для анализа стека нужно только выгрузить кусок памяти, а это все коробочки должны уметь. - SciFi(08.11.2018 19:51)
- У меня -og.-gdwarf-2 не нашёл такой настройки - попробую завтра вручную задать. - Apтём(08.11.2018 20:25)
- У меня gcc -O0. Отладчик кейловский нормально всё показывает. Ему, кстати, нужен -gdwarf-2. А ST-Link вообще ни при чём должен быть, потому что для анализа стека нужно только выгрузить кусок памяти, а это все коробочки должны уметь. - SciFi(08.11.2018 19:51)
- Это и имел ввиду. Долго искал, где же в меню Эклипса найти содержимое стэка, тупил. Nikolay_Po(1037 знак., 08.11.2018 21:20)
- У меня отладчик показывает Call Stack - последовательность вызова функций начиная с main. Даже если исполнение кода залетело непонятно куда, есть шанс, что отладчик покажет там что-то вразумительное. - SciFi(08.11.2018 18:04)
- Может быть задам глупый вопрос, но спрошу - что вы имеете в виду под термином "разбор стэка"? Apтём(44 знак., 08.11.2018 18:01)
- Наверное можно дизассемблером посмотреть, возможно станет понятно как туда попали. - AlexBi(08.11.2018 18:33)