Перейти к содержанию
    

STM32 Обработка hard fault exception

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

 

Ну да, верно. Строка-то, по сути, бессмысленная. Код исполняется из флеши, значит EEFC уже инициализирован загрузчиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если программа стартует из флеш, то загрузчик не задействуется.

 

Имел в виду rom boot. А что инициализирует этот регистр? При загрузке из флеши он проинициализирован.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имел в виду rom boot.

Процессор всегда стартует с нулевого адреса. Там может быть отмаплена флеш, если GNPVM 1 установлен, или ROM, если сброшен. В первом случае никакого лишнего кода не выполняется.

 

А что инициализирует этот регистр? При загрузке из флеши он проинициализирован.

В документации прописано значение по сбросу - 0x0. У вас оно отличается? Если да, то как смотрите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Процессор всегда стартует с нулевого адреса. Там может быть отмаплена флеш, если GNPVM 1 установлен, или ROM, если сброшен. В первом случае никакого лишнего кода не выполняется.

 

 

В документации прописано значение по сбросу - 0x0. У вас оно отличается? Если да, то как смотрите?

 

Да, правда, загрузчик то непричем.

 

Отличается, смотрю отладчиком, хотите сказать, он и инициализирует?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отличается, смотрю отладчиком, хотите сказать, он и инициализирует?

Скорее всего так и есть, посмотрите его скрипты. Я, конечно, не смотрел дефолтное значение, но оснований не доверять даташиту нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, вы были правы, действительно дело оказалось EEFC_FMR, но не в самом факте записи в регистр*, а в том что писалось туда 2 цикла, а при заданной частоте должно быть 3. Вроде пока сбоев не наблюдаю, видимо, в этом и было дело. Но Атмел реабилитирован лишь частично, это все из их стартапа пошло, второй раз уже с этим сталкиваюсь именно у Атмела (в прошлый раз была ошибка примере инициализации SDRAM).

Именно так было в стартапе, частота выставлена 48 МГц, а в EEFC_FMR - 0х1, то есть два цикла.

 

*Изначально в регистре 0х0, то есть 1 цикл на чтение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но Атмел реабилитирован лишь частично, это все из их стартапа пошло, второй раз уже с этим сталкиваюсь именно у Атмела (в прошлый раз была ошибка примере инициализации SDRAM).

Я их код перестал смотреть со времен M40800, ибо просто мусор. Поэтому и претензий не имею :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Код для STM32F101BT6 написаный на Си под IAR через определеное время работы по непонятным причинам вылетает в HardFaultException(void). Из флагов выставелся FORCED в HFSR регистре, и IBUSERR в регистре CFSR. Все что в доке нашел, что проблема с шиной. Но какая? Подскажите, как найти где в коде я накосячил. Какие регистры смотреть, что анализировать?

Аналогичная ситуация, разве что контроллер STM32F407. Подскажите, в чем проблемма?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, в чем проблемма?
Поднимите глаза и перечитайте сообщение 37. У Атмег проблема была в недостаточном количестве тактов ожидания в контроллере флеша. Ваш же код на отладочной плате работает, значит 100% проблема в вашей аппаратной части - разводке и схеме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...