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

 
 
> Ошибки при загрузке (IAR ARM 6.30 + STM32), Вдруг начал выдавать ошибки при проверке загруженного кода
AndyBig
сообщение Feb 1 2013, 07:55
Сообщение #1


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Совершенно непонятная ошибка. После очередного изменения исходников дебаггер вдруг начал при проверке залитого кода ругаться на ошибки:
Цитата
Fri Feb 01, 2013 11:45:24: Warning:
Verify error at address 0x0801A080, target byte: 0xA5, byte in file: 0x15
Fri Feb 01, 2013 11:45:24: Warning:
Verify error at address 0x0801A081, target byte: 0x02, byte in file: 0xFC
...

Таких ошибок ровно 15 штук. Первая ошибка всегда указывает на адрес начала ROM + 0x1080
Погрешил на кристалл, взял другой, ситуация никак не изменилась. Пробовал уменьшать частоту SWD, тоже безрезультатно.
Изменил в файле .icf адрес начала ROM, ничего не поменялось кроме адресов ошибок - они так же сместились, опять начинаясь с +0x1080 от начала ROM.
Единственное изменение дает замена в файле FlashSTM32F10xxD.flash загрузчика с FlashSTM32F10xxxRAM48K.out на FlashSTM32F10xxxRAM64K.out - количество ошибок уменьшается с 15 до 7.

Никто с таким не сталкивался? Уже и не знаю куда рыть...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AndyBig
сообщение Feb 1 2013, 10:41
Сообщение #2


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Разобрался. А то уже волосы стал потихоньку выдирать sm.gif
Присина оказалась в DMA, по которому у меня считываются результаты измерений двух каналов АЦП. Судя по всему DMA продолжал молотить даже после сброса контроллера и портил флэшлоадеру память.
Прописал свой скрипт, отключающий DMA и все наладилось.
Go to the top of the page
 
+Quote Post
ut1wpr
сообщение Feb 2 2013, 19:12
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 98
Регистрация: 20-06-05
Пользователь №: 6 150



Цитата(AndyBig @ Feb 1 2013, 13:41) *
Разобрался. А то уже волосы стал потихоньку выдирать sm.gif
Присина оказалась в DMA, по которому у меня считываются результаты измерений двух каналов АЦП. Судя по всему DMA продолжал молотить даже после сброса контроллера и портил флэшлоадеру память.
Прописал свой скрипт, отключающий DMA и все наладилось.
Впервые слышу, чтобы периферия МК по сбросу не сбрасывалась в power-on state. Может, кто-то еще этот феномен встречал?
Цитата
Судя по всему DMA продолжал молотить даже после сброса контроллера
По каким признакам вы сделали этот вывод?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 2 2013, 20:00
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (ut1wpr @ Feb 2 2013, 21:12) *
Впервые слышу, чтобы периферия МК по сбросу не сбрасывалась в power-on state.
Сбрасывается. А после отпускания сброса запускается пользовательская программа, которая успевает запустить DMA еще до того, как отладчик перехватит управление и остановит ее. Сталкивался с точно таким же поведением, хотя работал не с IAR, а с OpenOCD. Победил, добавв в скрипт отладчика команды остановки всех каналов DMA и запрет прерываний перед загрузкой прошивки.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


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


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