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

 
 
 
Reply to this topicStart new topic
> STM32 IWDG мешает загрузке программы через openocd
viakon
сообщение Apr 9 2013, 06:47
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Стоит включить IWDG в программе, openocd не может прогрузить программу.

monitor soft_reset_halt
requesting target halt and executing a soft reset
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x01000000 pc: 0x08000074 msp: 0x20000800
load
Loading section .bload, size 0xc50 lma 0x8000000
Loading section .bwr, size 0x1ac lma 0x8000e00
Loading section .isr_vector, size 0x1d0 lma 0x8001000
Loading section .text, size 0x741c lma 0x80011d0
Loading section .data, size 0x34 lma 0x80085ec
Loading section .scrc, size 0x2 lma 0x801cffe
Loading section .config, size 0x10d0 lma 0x801d000
Error finishing flash operation

если ручками стереть, выключить/включить девайс, тогда 1 раз грузится. Судя по всему не успевает прогрузиться за время до сброса IWDG. Пробовал командами mww увеличивать время работы IWDG, не помогло.
Go to the top of the page
 
+Quote Post
vlad_new
сообщение Apr 10 2013, 11:37
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Если это STM32F2XX , то в доке написано, что при операциях с записью во флеш рекомендуется отключать сторожевики, т.к. время стирания может превышать максимальное время на которое возможно запрограммировать стороживик.
Ну или что то в этом роде. Думаю что для STM32F4XX это то же актуально.
Go to the top of the page
 
+Quote Post
viakon
сообщение Apr 10 2013, 15:55
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



STM32F100
причем длина таймаута IWDG не важена, грузит 8802 байта и ломается. Придется на время отладки отключать его.
Go to the top of the page
 
+Quote Post
John Silver
сообщение Apr 11 2013, 08:16
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059



А дебаг режим не поможет в этом случае?
Код
DBGMCU_Config(DBGMCU_IWDG_STOP, ENABLE);

UPD
Отвечу сам себе. Не поможет, ведь эта команда в програмном коде, а код еще даже не начал исполняться.

Возникает другой вопрос, IAR (IAR Eclipse plugin) предпринимает какие-то действия для предотвращения перезагрузки?
Потому как, у меня таких проблем пока не возникало.
Go to the top of the page
 
+Quote Post
viakon
сообщение Apr 12 2013, 09:40
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



победил проблему перед load нужно вставить

monitor mww 0x40003000 0xaaaa
monitor mww 0x40003000 0x5555
monitor mww 0x40003004 7
monitor mww 0x40003000 0x5555
monitor mww 0x40003008 0x0fff
monitor mww 0x40003000 0xaaaa
load


В этом случае таймер замедляется и загрузка проходит
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 12 2013, 09:56
Сообщение #6


Гуру
******

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



QUOTE (viakon @ Apr 12 2013, 12:40) *
победил проблему перед load нужно вставить
Это можно вставить в скрипт openocd примерно так (у меня мешал DMA, вы тоже можете добавить его запрет в свой скрипт, лишним не будет):
CODE
$_TARGETNAME configure -event gdb-flash-erase-start {
    halt
    #disable interrupts
    reg 19 1
    #save cached register value
    step
    #stop DMA
    mww 0x40020008 0x00000000
    mww 0x4002001C 0x00000000
    mww 0x40020030 0x00000000
    mww 0x40020044 0x00000000
    mww 0x40020058 0x00000000
    mww 0x4002006C 0x00000000
    mww 0x40020080 0x00000000
    mww 0x40020094 0x00000000
}


--------------------
На любой вопрос даю любой ответ
"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 Текстовая версия Сейчас: 1st July 2025 - 01:52
Рейтинг@Mail.ru


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