реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32F3 ошибка верификации флешки, Проблема с программированием флеш в Keil 5
serjj
сообщение Jun 8 2015, 08:24
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Всем доброго дня. Недавно столкнулся с необходимостью запрограммировать 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"

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

Сообщение отредактировал serjj - Jun 8 2015, 08:25
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 8 2015, 08:33
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Проверьте Programming Algorithm во вкладке Flash Download.
Go to the top of the page
 
+Quote Post
serjj
сообщение Jun 8 2015, 08:41
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Смотрел туда в первую очередь. Вот мои настройки:
Прикрепленное изображение

Адрес выставлял в соответствии с datasheet на чипак. Но если тут неправильно что-то будет, то, как я понял из предыдущих экспериментов, он до верификации не дойдет. На сайте keil'а советуют псмотреть поле Start, но не понимаю что там и куда нужно менять. В настройках Target в поле IROM1 также стоит 0x8000000 - 0x40000.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 8 2015, 09:24
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Должно быть не New Device, а конкретный процессор. Вы в начале проекта выбрали тип (Device)?
Go to the top of the page
 
+Quote Post
serjj
сообщение Jun 8 2015, 10:00
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Во вкладке Device стоит
Device: STM32F303VC
Toolset: ARM
По-умолчанию в демо проекте в Programming Algorithm была какая-то запись, но там неправильно был выставлен Address Range, поэтому я её пересоздал в соответствии с datasheet на проц. Тогда у меня он стал заливать прошивку. Но это с дефолтным кодом. Когда поменял исходники, появилась описанная проблема.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 8 2015, 10:13
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Нажмите Add на вкладке Flash Download, выберите нужный правильный алгоритм, корректируйте адреса Start и Size, если нужно.
Go to the top of the page
 
+Quote Post
serjj
сообщение Jun 8 2015, 10:23
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



И о чудо... Спасибо, помогло, но я ничего не понял rolleyes.gif
Удалил свою запись, выбрал STM32F3xx Flash, Вкладка RAM for Algorithm: Start = 0x20000000, Size = 0x1000. Address range у выбранного алгоритма совпадает с тем, что я выставлял сам: 0x08000000 - 0x0803FFFF. Тем более, что с дефолтными исходниками всё зашивалось нормально. Не понятно тогда, почему не работало, кроме как address range я другого крутелятора там не видел. И не понимаю на что влияет вкладка RAM for Algorithm с её Start и Size.
Спасибо еще раз! Был бы признателен еще больше если бы разъяснили мне моё непонимание.

Сообщение отредактировал serjj - Jun 8 2015, 10:24
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 8 2015, 10:52
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Для программирования флэш нужен некий конкретный алгоритм. Его и нужно было выбрать.
RAM for Algorithm я никогда не трогал. В ней размещается тот самый алгоритм. Скорее всего, не сам алгоритм, а принимаемая прошивка. Зачем редактировать диапазон адресов, не знаю. Все равно процессор неживой, когда программируется.
А адреса программирования флэш задаются ниже. Этим пользовался, когда хотел, чтобы нулевой сектор (с моим загрузчиком) оставался нетронутым.
Go to the top of the page
 
+Quote Post
batson
сообщение Jun 8 2015, 16:04
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 26-02-11
Пользователь №: 63 256



пробуйте залить через Flash Loader Demomstrator или ST-Link Utility
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 22:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.0144 секунд с 7
ELECTRONIX ©2004-2016