Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибки при загрузке (IAR ARM 6.30 + STM32)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
AndyBig
Совершенно непонятная ошибка. После очередного изменения исходников дебаггер вдруг начал при проверке залитого кода ругаться на ошибки:
Цитата
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.

Никто с таким не сталкивался? Уже и не знаю куда рыть...
AndyBig
Разобрался. А то уже волосы стал потихоньку выдирать sm.gif
Присина оказалась в DMA, по которому у меня считываются результаты измерений двух каналов АЦП. Судя по всему DMA продолжал молотить даже после сброса контроллера и портил флэшлоадеру память.
Прописал свой скрипт, отключающий DMA и все наладилось.
ut1wpr
Цитата(AndyBig @ Feb 1 2013, 13:41) *
Разобрался. А то уже волосы стал потихоньку выдирать sm.gif
Присина оказалась в DMA, по которому у меня считываются результаты измерений двух каналов АЦП. Судя по всему DMA продолжал молотить даже после сброса контроллера и портил флэшлоадеру память.
Прописал свой скрипт, отключающий DMA и все наладилось.
Впервые слышу, чтобы периферия МК по сбросу не сбрасывалась в power-on state. Может, кто-то еще этот феномен встречал?
Цитата
Судя по всему DMA продолжал молотить даже после сброса контроллера
По каким признакам вы сделали этот вывод?
Сергей Борщ
QUOTE (ut1wpr @ Feb 2 2013, 21:12) *
Впервые слышу, чтобы периферия МК по сбросу не сбрасывалась в power-on state.
Сбрасывается. А после отпускания сброса запускается пользовательская программа, которая успевает запустить DMA еще до того, как отладчик перехватит управление и остановит ее. Сталкивался с точно таким же поведением, хотя работал не с IAR, а с OpenOCD. Победил, добавв в скрипт отладчика команды остановки всех каналов DMA и запрет прерываний перед загрузкой прошивки.
ut1wpr
Цитата(Сергей Борщ @ Feb 2 2013, 23:00) *
Сбрасывается. А после отпускания сброса запускается пользовательская программа, которая успевает запустить DMA еще до того, как отладчик перехватит управление и остановит ее. Сталкивался с точно таким же поведением, хотя работал не с IAR, а с OpenOCD. Победил, добавв в скрипт отладчика команды остановки всех каналов DMA и запрет прерываний перед загрузкой прошивки.

Дык это же совсем иное дело. Все понятно и логично. Все-таки сбрасывается. Но ведь это жуть! Останавливаться на точке входа в main, успев перед этим "втихую" нахулиганить. Вот и верь им после этого.
wmakc
Не подскажете, а какой вы скрипт использовали? У меня вроде бы похожая проблема.
Belikov_lp
Подскажите пожалуйста, не могу откомпелировать проект, перенесённый в другую область памяти на компе. начинает выдавать кучу ошибок. Может место дислокации библиотек поменялось?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.