Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F3 ошибка верификации флешки
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
serjj
Всем доброго дня. Недавно столкнулся с необходимостью запрограммировать STM32F303 (Discovery Board). Использую Keil 5. За основу взят демо проект от stm с гироскопом и акселерометром. Проект пересобрал, залил во флеш, проверил, все вроде ок. Но при модификации кода проекта (пока просто изменил настройки одного из датчиков) получил проблему: проект пересобирается нормально, но keil во время программирования флеша (этап верификации) выдает ошибки вида:
Код
Contents mismatch at: 08000004H  (Flash=9DH  Required=40H) !
Contents mismatch at: 08000005H  (Flash=01H  Required=06H) !
Contents mismatch at: 08000007H  (Flash=08H  Required=20H) !
Contents mismatch at: 08000008H  (Flash=D7H  Required=A1H) !
Contents mismatch at: 08000009H  (Flash=1DH  Required=01H) !
Contents mismatch at: 0800000CH  (Flash=81H  Required=D7H) !

тысячи их..
и в конце
Код
Too many errors to display !
Error: Flash Download failed  -  "Cortex-M4"

В итоге плата подвисает, но помогает сброс через кнопку.
В чём тут может быть проблема?
ViKo
Проверьте Programming Algorithm во вкладке Flash Download.
serjj
Смотрел туда в первую очередь. Вот мои настройки:
Нажмите для просмотра прикрепленного файла
Адрес выставлял в соответствии с datasheet на чипак. Но если тут неправильно что-то будет, то, как я понял из предыдущих экспериментов, он до верификации не дойдет. На сайте keil'а советуют псмотреть поле Start, но не понимаю что там и куда нужно менять. В настройках Target в поле IROM1 также стоит 0x8000000 - 0x40000.
ViKo
Должно быть не New Device, а конкретный процессор. Вы в начале проекта выбрали тип (Device)?
serjj
Во вкладке Device стоит
Device: STM32F303VC
Toolset: ARM
По-умолчанию в демо проекте в Programming Algorithm была какая-то запись, но там неправильно был выставлен Address Range, поэтому я её пересоздал в соответствии с datasheet на проц. Тогда у меня он стал заливать прошивку. Но это с дефолтным кодом. Когда поменял исходники, появилась описанная проблема.
ViKo
Нажмите Add на вкладке Flash Download, выберите нужный правильный алгоритм, корректируйте адреса Start и Size, если нужно.
serjj
И о чудо... Спасибо, помогло, но я ничего не понял rolleyes.gif
Удалил свою запись, выбрал STM32F3xx Flash, Вкладка RAM for Algorithm: Start = 0x20000000, Size = 0x1000. Address range у выбранного алгоритма совпадает с тем, что я выставлял сам: 0x08000000 - 0x0803FFFF. Тем более, что с дефолтными исходниками всё зашивалось нормально. Не понятно тогда, почему не работало, кроме как address range я другого крутелятора там не видел. И не понимаю на что влияет вкладка RAM for Algorithm с её Start и Size.
Спасибо еще раз! Был бы признателен еще больше если бы разъяснили мне моё непонимание.
ViKo
Для программирования флэш нужен некий конкретный алгоритм. Его и нужно было выбрать.
RAM for Algorithm я никогда не трогал. В ней размещается тот самый алгоритм. Скорее всего, не сам алгоритм, а принимаемая прошивка. Зачем редактировать диапазон адресов, не знаю. Все равно процессор неживой, когда программируется.
А адреса программирования флэш задаются ниже. Этим пользовался, когда хотел, чтобы нулевой сектор (с моим загрузчиком) оставался нетронутым.
batson
пробуйте залить через Flash Loader Demomstrator или ST-Link Utility
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.