Vladimir_T 1 29 июня, 2018 Опубликовано 29 июня, 2018 · Жалоба Здравствуйте, уважаемые программисты, подскажите где мне искать решение? Как написано в описании STM32F410R8 программно абсолютно совместим с STM32F405RGT8, на котором успешно работает проект. Но когда этот же проект из Keil 4.70 загружаю d STM32F410, после запуска процессор улетает на HardFault из Startup. Все проверил карты памяти одинаковы, стеки настроены. В отладчике ловлю-ловлю вижу, что LR = 0xFFFFFFF9, почему так? Может для STM32F410 нужен другой Startup, тогда где его взять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 22 29 июня, 2018 Опубликовано 29 июня, 2018 · Жалоба подскажите где мне искать решение?Экстрасенсы в отпуске, поэтому пока что можно дать только "стандартный" ответ: ищите проблемы в своем коде, сверяясь с даташитами. Все проверил карты памяти одинаковыЭтого недостаточно. Внутри МК есть не только память, но и куча различной периферии, набор который может значительно отличаться. В отладчике ловлю-ловлю...:fman: B) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 133 29 июня, 2018 Опубликовано 29 июня, 2018 · Жалоба В отладчике ловлю-ловлю вижу, что LR = 0xFFFFFFF9, почему так?Тут есть два решения: простое и быстрое. Простое: наставить в startup-коде точек останова. После вылета перенести те точки, до которых не дошли и те, которые прошли, в промежуток между последней отработавшей точкой и первой не отработавшей. Так, постепенно, найдете команду, на которой происходит вылет. Дальше разбираться, почему у этой команды оказались такие параметры, которые вызывают вылет. Быстрое: делаете обработчик HardFault с таким кодом: { volatile int i = 0; while(i==0) ; } Попав в этот обработчик, устанавливаем отладчиком i = 1 и выходим из обработчика по шагам в дизассемблированном коде. Сразу после выхода попадем на следующую после проблемной команду. И снова думаем, что же процессору на этой команде не понравилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 29 июня, 2018 Опубликовано 29 июня, 2018 · Жалоба программно абсолютно совместим STM32F405RGT8 - 192кБ ОЗУ, а у STM32F410 всего 32 кБ. Вангую проблему со стеком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 2 июля, 2018 Опубликовано 2 июля, 2018 · Жалоба Спасибо Всем за помощь! Дело было в настройках размеров ОЗУ. Scatter load пытал инициализировать массив, размер которого для 405 был уже предельным, а для 410 совсем запредельный! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться