STM32H7 зависает при попытке стереть банк 1, сектор 0 вскоре после сброса - PullRequest
4 голосов
/ 09 июля 2019

Используя STM32H753, у меня есть загрузочный код в банке 1, сектор 0 (0x08000000), который обнаруживает и переходит к коду приложения в банке 2, сектор 0 (0x08100000).В коде приложения я пытаюсь стереть и переписать банк 1 сектор 0, но MCU блокируется (без вывода обработчика ошибок), когда я устанавливаю FLASHH7_CR_START слишком рано после сброса.

Код приложения довольносложный и включает в себя множество функций чипа, но ни обмен банка, ни FLASH CRC.Известно, что обработчик ошибок работает.

Вещи, которые я пробовал:

  • занято, подождите 50-100 мс после сброса перед удалением;успешно
  • перенаправить стирание / перезапись в банк 1, сектор 5;успешно (без занятого ожидания)
  • код приложения оставляет кэши отключенными;по-прежнему не удается
  • сравнить банк регистров FLASHH7 при сбросе и через 100 мс;без изменений
  • проверить ошибки в SR и очистить все обнаруженные с помощью CCR;ошибок не найдено
  • проверка WRP и PRAR регистров;защита не установлена ​​
  • проверьте исправления rev6 (19 июня 2019 г.);нет соответствующих проблем

Загрузочный код не разрешает прерывания или кэширование, и код приложения записывает в VTOR.

Кажется, что-то еще зависит от удаленияЗагрузочный сектор STM32H7 (или недавно выполненный сектор).Чего мне не хватает?

1 Ответ

2 голосов
/ 09 июля 2019

Размещение в качестве ответа из-за изображения.

Как я и подозревал. Возможно силиконовая ошибка

enter image description here

это со страниц ошибок. Проверьте свою модель ОК (которую вы на самом деле скрываете :)) и загрузите исправления для своей.

...