-
- Спасибо, интересные мысли. Я понимаю, что хардфаулт из-за обращения
по левым адресам наверное. Из-за каких-то особенностей кода.
Которые m3 проглатывает, а m0 не хочет. Сам бы я не осилил такую
библиотеку написать. Шрифты и все такое - для меня китайская
грамота. - vesago(23.09.2024 09:22)
- Нужно различать обращение к несуществующим адресам и обращение к
правильным адресам, но не выровненное. Поэтому важно понять, какая
из ловушек Hard Fault срабатывает. А для этого, нужно подключить
файл, в котором прописаны коды ловушек (trap). По-умолчанию, они
weak и заменяются одним общим кодом прерывания, поэтому может быть
непонятно, что конкретно сработало. - Nikolay_Po(23.09.2024 09:38)
- Я обычно проще делаю. В обработчике HardFault пишу "volatile int w
= 1; while (w);". Если туда залетели, отладчиком делаем w=0 и
выходим по шагам. Он вернётся туда, откуда улетел. Там и смотрим
все переменные и т.д. - SciFi(23.09.2024 09:42)
- Мне Эклипс слева, в режиме отладки, выкладывает весь граф
переходов, от самого main(). И не нужно переходить, чтобы
вернуться. - Nikolay_Po(23.09.2024 09:45)
- У меня Ozone тоже показывает Call Stack. Можно прыгать в точки вызовов, смотреть переменные... - SciFi(23.09.2024 09:49)
- Мне Эклипс слева, в режиме отладки, выкладывает весь граф
переходов, от самого main(). И не нужно переходить, чтобы
вернуться. - Nikolay_Po(23.09.2024 09:45)
- Я обычно проще делаю. В обработчике HardFault пишу "volatile int w
= 1; while (w);". Если туда залетели, отладчиком делаем w=0 и
выходим по шагам. Он вернётся туда, откуда улетел. Там и смотрим
все переменные и т.д. - SciFi(23.09.2024 09:42)
- Нужно различать обращение к несуществующим адресам и обращение к
правильным адресам, но не выровненное. Поэтому важно понять, какая
из ловушек Hard Fault срабатывает. А для этого, нужно подключить
файл, в котором прописаны коды ловушек (trap). По-умолчанию, они
weak и заменяются одним общим кодом прерывания, поэтому может быть
непонятно, что конкретно сработало. - Nikolay_Po(23.09.2024 09:38)
- Спасибо, интересные мысли. Я понимаю, что хардфаулт из-за обращения
по левым адресам наверное. Из-за каких-то особенностей кода.
Которые m3 проглатывает, а m0 не хочет. Сам бы я не осилил такую
библиотеку написать. Шрифты и все такое - для меня китайская
грамота. - vesago(23.09.2024 09:22)