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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос о программировании Flash STM32F405
Vladimir_T
сообщение Jun 13 2018, 11:02
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Здравствуйте, уважаемые коллеги, может кто-либо сталкивался с такой ситуацией.
Процессор STM32F405 отлично программируется посредством BootLoader, но мне необходимо сделать доработки в программе и отладку новой версии. Как я не бьюсь, но по SWD не удается запрограммировать FLash, из среды Keil, при ее программировании получаю сообщение: истек таймаут при обращении к Flash-памяти. Никакие ключи для защиты Flash-памяти в BootLoader не устанавливал.
Заметил, что когда процессор был чистым, он поддерживал SWD, но стоило один раз запрограммировать его через BootLoader, он перестал программироваться через SWD. Keil процессор на SWD-интерфейсе обнаруживает, но запрограммировать на может из-за таймаута. Такое подозрение, что автоматически установилась защита Flash-памяти, но я не устанавливал защиту.
Уважаемые, коллеги, если кто-то знает в чем тут дело, подскажите, пожалуйста.
В литературе и мануалах, не нашел ответа на свой вопрос, к сожалению.
Заранее благодарен.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Jun 13 2018, 11:10
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 769
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(Vladimir_T @ Jun 13 2018, 14:02) *
Заметил, что когда процессор был чистым, он поддерживал SWD, но стоило один раз запрограммировать его через BootLoader, он перестал программироваться через SWD. Keil процессор на SWD-интерфейсе обнаруживает, но запрограммировать на может из-за таймаута. Такое подозрение, что автоматически установилась защита Flash-памяти, но я не устанавливал защиту.


Ну так может bootloader ее сам устанавливает? Попробуйте сделать unsecure из segger jflash или ее аналога
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Jun 13 2018, 11:20
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 162
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Программа может переопределять выводы SWD.
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 13 2018, 11:27
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 665
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(HardEgor @ Jun 13 2018, 14:20) *
Программа может переопределять выводы SWD.

+1

Нужен аналог такого
CODE
GPIOA->MODER = 0
| (GPIO_MODE_ALTERNATE << GPIO_MODER_PIN0)
| (GPIO_MODE_ALTERNATE << GPIO_MODER_PIN1)
| (GPIO_MODE_ALTERNATE << GPIO_MODER_PIN2)
| (GPIO_MODE_ANALOG << GPIO_MODER_PIN5)
| (GPIO_MODE_ANALOG << GPIO_MODER_PIN6)
| (GPIO_MODE_ALTERNATE << GPIO_MODER_PIN7)
| (GPIO_MODE_OUTPUT << GPIO_MODER_PIN8)
| (GPIO_MODE_ALTERNATE << GPIO_MODER_PIN9)
| (GPIO_MODE_ALTERNATE << GPIO_MODER_PIN10)
| (GPIO_MODE_ALTERNATE << GPIO_MODER_PIN13) // !
| (GPIO_MODE_ALTERNATE << GPIO_MODER_PIN14) // !
| (GPIO_MODE_OUTPUT << GPIO_MODER_PIN15);

GPIOA->AFR[0] = 0
| (AF_PA0_TIM5_CH1 << GPIO_AFR0_PIN0)
| (AF_PA1_ETH_RMII_REF_CLK << GPIO_AFR0_PIN1)
| (AF_PA2_ETH_MDIO << GPIO_AFR0_PIN2)
| (AF_PA7_ETH_RMII_CRS_DV << GPIO_AFR0_PIN7);

GPIOA->AFR[1] = 0
| (AF_PA9_USART1_TX << GPIO_AFR1_PIN9)
| (AF_PA10_USART1_RX << GPIO_AFR1_PIN10)
| (AF_PA13_SWDIO << GPIO_AFR1_PIN13) // !
| (AF_PA14_SWCLK << GPIO_AFR1_PIN14); // !
Go to the top of the page
 
+Quote Post
Vladimir_T
сообщение Jun 13 2018, 11:55
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Цитата(HardEgor @ Jun 13 2018, 14:20) *
Программа может переопределять выводы SWD.

Действительно, этот момент нужно тщательнее просмотреть!
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Jun 13 2018, 11:57
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 017
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Сеанс коллективного гадания sm.gif

Я ставлю на слетевшие настройки Flash Download в настройках отладчика.
Это если верить в "кейл процессор обнаруживает" и не верить в "сломалось сразу после первой прошивки".

А вообще - больше информации надо.
Отладчик такой-то, выводит то-то (дословно!), другие программы (segger, st-link, что-там-ещё) выводят то-то...


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Vladimir_T
сообщение Jun 13 2018, 12:44
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Цитата(Vladimir_T @ Jun 13 2018, 14:55) *
Действительно, этот момент нужно тщательнее просмотреть!

Проверил, все выводы настроены по умолчанию, на SWD.


Цитата(esaulenka @ Jun 13 2018, 14:57) *
Сеанс коллективного гадания sm.gif

Я ставлю на слетевшие настройки Flash Download в настройках отладчика.
Это если верить в "кейл процессор обнаруживает" и не верить в "сломалось сразу после первой прошивки".

А вообще - больше информации надо.
Отладчик такой-то, выводит то-то (дословно!), другие программы (segger, st-link, что-там-ещё) выводят то-то...

SDK Keil, программатор Ulink 2 (фирменный), сообщение при загрузки:
ULINK:
Flash Timeout.Reset Target and try it again.
uVision:
Error.Flash DownLoaded Error

Подключил программатор JLink 7, тот же самое - не программируется.
Пробовал найти на сайте Segger утилиту JFasher, но для JLink 7 не нашел.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 13 2018, 17:19
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 101
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Можно "зайти" с другой стороны.
Попробовать "действо" на другом PC. (возможно что-то слетело не на F405 а в "комплекте" Keil или драйверах)
Если есть ST-Link + STM32 ST-LINK Utility - считать + стереть чип.
Подать ресет до возникновения сообщения о таймауте. Проверить питание.
Проверить кабель USB (заменить)


Go to the top of the page
 
+Quote Post
Vladimir_T
сообщение Jun 14 2018, 05:08
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Утилитой STMFlashLoader (ST) снял все защиты: чтение/запись. И все заработало!
Спасибо всем за полезные советы!
Go to the top of the page
 
+Quote Post
Vladimir_T
сообщение Jun 14 2018, 11:25
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



Подскажите, пожалуйста, сигнал NRST сброса процессора обязательно нужно задействовать при использовании SWD? Или можно без него, т.е. обойтись минимально возможным количеством сигналов: SWDIO, SWCLK, GND? Вопрос возник из-за того, что часто от Keil имею ошибку доступа в Flash/
Go to the top of the page
 
+Quote Post
Obam
сообщение Jun 14 2018, 20:24
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 748
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(Vladimir_T @ Jun 14 2018, 14:25) *
Подскажите, пожалуйста, сигнал NRST сброса процессора обязательно нужно задействовать при использовании SWD? Или можно без него, т.е. обойтись минимально возможным количеством сигналов: SWDIO, SWCLK, GND? Вопрос возник из-за того, что часто от Keil имею ошибку доступа в Flash/

Нет, не обязательно. Но наличие сброса существенно облегчает жизнь: прислали как-то устройство прошитое, и проц в спячке, когда запитан; не коннектится и всё тут - пришлось тоненький ПЭВ кидать к сбросу у qfp100. Потом узнал (когда без надобности уже было), что просыпался проц по "0" на каком-то выводе.

Тем более, что коннект под сбросом это способность STM32.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Jun 15 2018, 04:00
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 162
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(Vladimir_T @ Jun 14 2018, 18:25) *
Подскажите, пожалуйста, сигнал NRST сброса процессора обязательно нужно задействовать при использовании SWD? Или можно без него, т.е. обойтись минимально возможным количеством сигналов: SWDIO, SWCLK, GND? Вопрос возник из-за того, что часто от Keil имею ошибку доступа в Flash/

Ошибка доступа из-за высокой скорости SWD или длинных проводов.
RESET как раз полезен, если переопределяются выводы SWD или как написали про спячку - отладчик сбрасывает процессор, и пока он не успел переопределить, можно подключиться.
Еще желателен вывод VCC -тот же STLink V2 требует его наличия, чтобы выдавать соответствующие уровни напряжения для процессора.
Go to the top of the page
 
+Quote Post
Vladimir_T
сообщение Jun 15 2018, 08:03
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073



С сигналом NRST стал процессор программироваться всегда, но отладчик не стартует, дает такое сообщение Keil:

Cannot access Memory
*** error 57: illegal address (0x08000000)

К сожалению у меня в наличии платы, которые были до этого запрограммированы через BootLoader в цехе. Не пойму, что такое с ними произошло, что SWD с этими процессорами не дружит...

Был ли у кого-либо опыт программирования поочередно: когда через BootLoader, а когда через SWD?
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 15 2018, 08:17
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 975
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Vladimir_T @ Jun 15 2018, 11:03) *
Cannot access Memory
*** error 57: illegal address (0x08000000)

На этот счёт есть статья на сайте кейла.
Go to the top of the page
 
+Quote Post
amiller
сообщение Jun 15 2018, 08:20
Сообщение #15


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

Группа: Участник
Сообщений: 175
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Цитата(Vladimir_T @ Jun 15 2018, 11:03) *
С сигналом NRST стал процессор программироваться всегда, но отладчик не стартует, дает такое сообщение Keil:

Конечно глупая версия, но может после программирования и перед отладкой надо снять NRST?
Такое может быть, если вы его формируете вручную.
Опыт был, программирую всегда с поддержкой NRST, никаких проблем не возникало.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th August 2018 - 23:22
Рейтинг@Mail.ru


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