Vladimir_T 1 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Здравствуйте, уважаемые коллеги, может кто-либо сталкивался с такой ситуацией. Процессор STM32F405 отлично программируется посредством BootLoader, но мне необходимо сделать доработки в программе и отладку новой версии. Как я не бьюсь, но по SWD не удается запрограммировать FLash, из среды Keil, при ее программировании получаю сообщение: истек таймаут при обращении к Flash-памяти. Никакие ключи для защиты Flash-памяти в BootLoader не устанавливал. Заметил, что когда процессор был чистым, он поддерживал SWD, но стоило один раз запрограммировать его через BootLoader, он перестал программироваться через SWD. Keil процессор на SWD-интерфейсе обнаруживает, но запрограммировать на может из-за таймаута. Такое подозрение, что автоматически установилась защита Flash-памяти, но я не устанавливал защиту. Уважаемые, коллеги, если кто-то знает в чем тут дело, подскажите, пожалуйста. В литературе и мануалах, не нашел ответа на свой вопрос, к сожалению. Заранее благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Заметил, что когда процессор был чистым, он поддерживал SWD, но стоило один раз запрограммировать его через BootLoader, он перестал программироваться через SWD. Keil процессор на SWD-интерфейсе обнаруживает, но запрограммировать на может из-за таймаута. Такое подозрение, что автоматически установилась защита Flash-памяти, но я не устанавливал защиту. Ну так может bootloader ее сам устанавливает? Попробуйте сделать unsecure из segger jflash или ее аналога Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 89 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Программа может переопределять выводы SWD. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Программа может переопределять выводы SWD. +1 Нужен аналог такого 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); // ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Программа может переопределять выводы SWD. Действительно, этот момент нужно тщательнее просмотреть! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Сеанс коллективного гадания :) Я ставлю на слетевшие настройки Flash Download в настройках отладчика. Это если верить в "кейл процессор обнаруживает" и не верить в "сломалось сразу после первой прошивки". А вообще - больше информации надо. Отладчик такой-то, выводит то-то (дословно!), другие программы (segger, st-link, что-там-ещё) выводят то-то... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Действительно, этот момент нужно тщательнее просмотреть! Проверил, все выводы настроены по умолчанию, на SWD. Сеанс коллективного гадания :) Я ставлю на слетевшие настройки 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 не нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 13 июня, 2018 Опубликовано 13 июня, 2018 · Жалоба Можно "зайти" с другой стороны. Попробовать "действо" на другом PC. (возможно что-то слетело не на F405 а в "комплекте" Keil или драйверах) Если есть ST-Link + STM32 ST-LINK Utility - считать + стереть чип. Подать ресет до возникновения сообщения о таймауте. Проверить питание. Проверить кабель USB (заменить) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 14 июня, 2018 Опубликовано 14 июня, 2018 · Жалоба Утилитой STMFlashLoader (ST) снял все защиты: чтение/запись. И все заработало! Спасибо всем за полезные советы! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 14 июня, 2018 Опубликовано 14 июня, 2018 · Жалоба Подскажите, пожалуйста, сигнал NRST сброса процессора обязательно нужно задействовать при использовании SWD? Или можно без него, т.е. обойтись минимально возможным количеством сигналов: SWDIO, SWCLK, GND? Вопрос возник из-за того, что часто от Keil имею ошибку доступа в Flash/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 14 июня, 2018 Опубликовано 14 июня, 2018 · Жалоба Подскажите, пожалуйста, сигнал NRST сброса процессора обязательно нужно задействовать при использовании SWD? Или можно без него, т.е. обойтись минимально возможным количеством сигналов: SWDIO, SWCLK, GND? Вопрос возник из-за того, что часто от Keil имею ошибку доступа в Flash/ Нет, не обязательно. Но наличие сброса существенно облегчает жизнь: прислали как-то устройство прошитое, и проц в спячке, когда запитан; не коннектится и всё тут - пришлось тоненький ПЭВ кидать к сбросу у qfp100. Потом узнал (когда без надобности уже было), что просыпался проц по "0" на каком-то выводе. Тем более, что коннект под сбросом это способность STM32. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 89 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба Подскажите, пожалуйста, сигнал NRST сброса процессора обязательно нужно задействовать при использовании SWD? Или можно без него, т.е. обойтись минимально возможным количеством сигналов: SWDIO, SWCLK, GND? Вопрос возник из-за того, что часто от Keil имею ошибку доступа в Flash/ Ошибка доступа из-за высокой скорости SWD или длинных проводов. RESET как раз полезен, если переопределяются выводы SWD или как написали про спячку - отладчик сбрасывает процессор, и пока он не успел переопределить, можно подключиться. Еще желателен вывод VCC -тот же STLink V2 требует его наличия, чтобы выдавать соответствующие уровни напряжения для процессора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladimir_T 1 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба С сигналом NRST стал процессор программироваться всегда, но отладчик не стартует, дает такое сообщение Keil: Cannot access Memory *** error 57: illegal address (0x08000000) К сожалению у меня в наличии платы, которые были до этого запрограммированы через BootLoader в цехе. Не пойму, что такое с ними произошло, что SWD с этими процессорами не дружит... Был ли у кого-либо опыт программирования поочередно: когда через BootLoader, а когда через SWD? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба Cannot access Memory *** error 57: illegal address (0x08000000) На этот счёт есть статья на сайте кейла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amiller 2 15 июня, 2018 Опубликовано 15 июня, 2018 · Жалоба С сигналом NRST стал процессор программироваться всегда, но отладчик не стартует, дает такое сообщение Keil: Конечно глупая версия, но может после программирования и перед отладкой надо снять NRST? Такое может быть, если вы его формируете вручную. Опыт был, программирую всегда с поддержкой NRST, никаких проблем не возникало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться