-
- Одного не пойму - какой паразит окно Variables испортил? Почему нельзя вставлять переменные какие нужны, а не смотреть что эклипса предложит? - Apтём(09.11.2018 22:34)
- Какие нужны в окне Expressions можно посмотреть, если речь о непиленой клипсе. - s_h_e(09.11.2018 22:38)
- Оно конечно можно, но Variables раньше были удобнее чем Expressions сейчас, имхо. - Apтём(09.11.2018 22:41)
- Какие нужны в окне Expressions можно посмотреть, если речь о непиленой клипсе. - s_h_e(09.11.2018 22:38)
- Из HardFault надо не выходить, а сбрасывать МК через NVIC. lloyd(136 знак., 09.11.2018 19:38)
- Segger гутарит, что выходить вполне вариант - Vit(10.11.2018 13:39, ссылка)
- Откуда вы такие берётесь? Вот эта фигня с флагом и циклом всего пару строчек занимает, а помогает не хуже "поглядеть на стек" без всяких асмов. А сбрасывать через NVIC - это не в режиме отладки, типа так: SciFi(84 знак., 09.11.2018 19:51)
- я уже тоже к этому пришел :-) - Лагунов(09.11.2018 19:42)
- Если у вас функция выглядит так как вы написали, то вполне может быть что компилятор не предусмотрел выход из неё для экономии ресурсов. И вы ставите i=1 и исполняете чепуху. - Ralex(09.11.2018 19:19)
- ключевое слово - "volatile" - Rainman62(10.11.2018 09:52)
- Предусмотрел,предусмотрел. Для компилятора разницы нет какой конкретно Handler выполняется. Apтём(189 знак., 09.11.2018 20:58)
- А такой ещё вопрос - можно ли задать в Eclipse data watchpoint? То есть точку прерывания при записи в переменную. - Apтём(09.11.2018 18:32)
- датапоинт можно поставить не через среду, а через настроики jtag'а (это который в трее висит после подключение по jtag'у к контроллеру) - oman(11.11.2018 12:15)
- Можно наверное, но у меня только ST-Link через SWD. И в трее ничего не висит. - Apтём(11.11.2018 17:14)
- вроде бы через ПО stlinka тоже можно - oman(11.11.2018 23:31)
- Можно наверное, но у меня только ST-Link через SWD. И в трее ничего не висит. - Apтём(11.11.2018 17:14)
- В чистом эклипсе такой не помню, CCS и AC6 умели точно - lloyd(09.11.2018 19:57)
- мне кажется что это легенда. такой возможности нет в принципе. :o) - Rainman62(09.11.2018 19:41)
- в IAR есть, добро пожаловать в нормальные отладчики )) - 0men(09.11.2018 19:53)
- слишком сильна привязка к эклипсе/гцц, не преодолеть... - Rainman62(09.11.2018 19:55)
- кстати, это очень полезная фича, недавно выявил крайне непростой юсбишный глюк с ее помощью. Связан с открытием порта в CDC режиме - 0men(09.11.2018 19:58 - 20:01)
- Атоллик клевещет, что умеет watchpoint. - SciFi(09.11.2018 19:58, ссылка)
- Спасибо. Буду пробовать. - Apтём(09.11.2018 20:55)
- Через STlink можно графики смотреть - misyachniy(09.11.2018 21:15, ссылка)
- Ха! - Rainman62(09.11.2018 20:06, ссылка)
- Спасибо. Буду пробовать. - Apтём(09.11.2018 20:55)
- слишком сильна привязка к эклипсе/гцц, не преодолеть... - Rainman62(09.11.2018 19:55)
- в IAR есть, добро пожаловать в нормальные отладчики )) - 0men(09.11.2018 19:53)
- датапоинт можно поставить не через среду, а через настроики jtag'а (это который в трее висит после подключение по jtag'у к контроллеру) - oman(11.11.2018 12:15)
- Может быть, что угодно. misyachniy(196 знак., 08.11.2018 23:53)
- А вызов функций через указатель есть? - framer(08.11.2018 19:22)
- Не знаю ещё - код не мой. Apтём(22 знак., 08.11.2018 20:11)
- Тогда попробовать стек открутить назад. Там где-то должен быть адрес возврата. Также просмотреть или стек не надписывается. - framer(08.11.2018 20:14 - 20:23)
- А как его откручивают? Вот честно не знаю, не делал ни разу. - Apтём(08.11.2018 20:23)
- Тогда попробовать стек открутить назад. Там где-то должен быть адрес возврата. Также просмотреть или стек не надписывается. - framer(08.11.2018 20:14 - 20:23)
- Не знаю ещё - код не мой. Apтём(22 знак., 08.11.2018 20:11)
- А никакого радио модуля на плате нет? Такое было с stm32l151 когда GSM модем на передачу включался, пролечилось только разворотом керамической антенны на 90 град. Хоть и плата 4 слоя была. С stm32f205,207 такого не случалось. - Visitor(08.11.2018 19:14)
- Не, нету. Тут похоже софтовая ошибка - работает как написано. - Apтём(08.11.2018 20:22)
- Веротнее всего, сбой произошёл раньше. Процессор почему-то стал исполнять код в ОЗУ, в зависимости от содержимого ОЗУ hard fault может наступить раньше или позже. Вы будете смеяться, но не всегда внутрисхемный отладчик помогает сразу выйти на SciFi(113 знак., 08.11.2018 17:38)
- Хм... Apтём(472 знак., 08.11.2018 17:46)
- Там вроде бы есть MPU, это как раз оно. Ну а вылететь в ОЗУ можно, к примеру, вызывая функцию по указателю, если в указателе мусор. - SciFi(08.11.2018 17:50)
- А, вы про MPU. Да, оно там есть. Что-то я и не думал что его можно задействовать для отладки (я его ещё вообще не использовал ни разу). Apтём(210 знак., 08.11.2018 17:55)
- Там вроде бы есть MPU, это как раз оно. Ну а вылететь в ОЗУ можно, к примеру, вызывая функцию по указателю, если в указателе мусор. - SciFi(08.11.2018 17:50)
- Хм... Apтём(472 знак., 08.11.2018 17:46)
- в 8 яре можно обойтись без танца с установкой i в 1 ) - 0men(08.11.2018 17:35)
- У меня GCC (SW4STM32). Рад за IAR, но можно и с танцами пройтись, только идти то некуда - No source at 0x....В чём и непонятка... - Apтём(08.11.2018 17:40)
- Наверное можно дизассемблером посмотреть, возможно станет понятно как туда попали. - 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)
- У меня GCC (SW4STM32). Рад за IAR, но можно и с танцами пройтись, только идти то некуда - No source at 0x....В чём и непонятка... - Apтём(08.11.2018 17:40)
- Одного не пойму - какой паразит окно Variables испортил? Почему нельзя вставлять переменные какие нужны, а не смотреть что эклипса предложит? - Apтём(09.11.2018 22:34)