-
- сыплю голову пеплом. всем спасибо. m16(507 знак., 05.12.2020 10:35)
- А что за проблема в отладчике поставить бряк в обработчике по
Ошибке адреса и строевым шагом выйти прямо под инструкцию в которой
и случился конфуз. Наблюдать за этим в окне Программ мемори. Затем
найти по адресу во флеше в листинге дизасма. Там все и прояснится.
Собственно причин всего три. Нечетный адрес флеша в указателе на
функцию, нечетный адрес в ОЗУ в НЕбайтовой инструкции и выход за
границу адресного пространства ОЗУ. - my504(04.12.2020 21:24)
- --> - MBedder(04.12.2020 23:34, ссылка)
- Приличные люди этот самый обработчик ещё в коде предусматривают. Где можно вовсе бэктрейс распечатать и регистры, и понять как оно дотуда дошло (разумеется сохранить в ОЗУ и печатать после перезапуска, но до запуска основной логики программы -- пока ещё не упал повторно). Зачем спрашивается эти прерывания сделаны, если программист их не использует. - fk0(04.12.2020 22:58)
- Стандартные грабли - попытка обратиться к слову RAM/Flash по нечетному (байтовому) адресу или за пределы имеющейся памяти. Копай в этом направлении - MBedder(04.12.2020 20:02)
- Индексы? Указатели? DMA? - Nikolay_Po(04.12.2020 16:59)
- не пользую. - m16(04.12.2020 18:33)
- __eds__? ((interrupt, no_auto_psv))? - Ivaxa(04.12.2020 23:44)
- не пользую. - m16(04.12.2020 18:33)
- Недавно мы обсуждали мою проблему с вылетанием обработчика
прерывания. Выяснилось, что в другом семействе pic33 одно и то же
прерывание называется по-другому. - Kpoк(04.12.2020 16:57)
- да, сегодня перечитывал m16(189 знак., 04.12.2020 18:32)
- А XASM и ХС16 поновее не пробовал? И MPLAB X какой-нибудь менее древний, чем твое гавно мамонта 4.хх? - MBedder(04.12.2020 20:07)
- да, сегодня перечитывал m16(189 знак., 04.12.2020 18:32)