Сильная неисправность в STM32F101RF из-за разборки MRC2? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть код загрузчика, в котором я буду отправлять / получать данные через USART. Я настроил USART для работы в режиме прерывания.

Функциональность USART отлично работает независимо. Проверьте это с несколькими экземплярами для чтения / записи.

Когда я интегрирую код USART с кодом моего загрузчика, загрузчик будет продолжать проверять наличие ожидающих данных для чтения из USART.

Если есть В случае любых ожидающих данных загрузчик будет считывать регистр данных (DR) для данных, полученных уже через прерывание. (тип опроса + прерывание)

Моя проблема:

При каждом возникновении прерывания приема USART срабатывает внутренняя ошибка жесткого режима службы прерываний приема.

P C говорит, что это внутренняя процедура жесткого сбоя, где я считываю данные из DR.

Но странная вещь, которую я увидел, это то место, где происходит сбой жесткого сбоя, в разборке я вижу только команды MRC2 enter image description here

Проблема возникает из-за этого ?? 0x8004802 - это место, где происходит мой сбой.

Пожалуйста, просветите меня об этом

1 Ответ

1 голос
/ 21 апреля 2020

Посмотрите на необработанные шестнадцатеричные значения: 0xFF полностью, начиная с подозрительного адреса 0x8004800, который наверняка является границей страницы.

Другими словами: память fla sh плохая или была стерты и не полностью написаны. Проверка прошитой программы (загрузчика) должна завершиться неудачей.

Если это было в вашем коде загрузчика, возможно, она пыталась перезаписать себя или просто стерла не ту страницу памяти.

...