Stlink: STM32F103 не прошивается

Созданный на 25 янв. 2017  ·  11Комментарии  ·  Источник: stlink-org/stlink

Привет,

Я пытаюсь прошить плату STM32F103 через SWD с платой обнаружения STM32F407. К сожалению, это не работает только с платой STM32F103.

  • [x] Тип программатора/платы: Stlink/v2
  • [x] Операционная система: Mac OS X
  • [x] Версия Stlink tools stlink: стабильная 1.2.0 (бутылочная), HEAD, Залито из бутылки 04.10.2015
  • [x] Имя инструмента командной строки Stlink: st-flash
  • [x] Целевой чип (и дополнительная плата): например, STM32F103C

Вывод:

st-flash write prog.bin 0x8000000
2017-01-24T18:44:14 INFO src/stlink-common.c: Loading device parameters....
2017-01-24T18:44:14 INFO src/stlink-common.c: Device connected is: F1 High-density device, id 0x10036414
2017-01-24T18:44:14 INFO src/stlink-common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0 bytes (0 KiB) in pages of 2048 bytes

Как видите, он выдает что-то неожиданное вроде
Flash: 0 bytes (0 KiB) in pages of 2048 bytes

st-info --probe
Found 1 stlink programmers
 serial: 303030303030303030303031
openocd: "\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x31"
  flash: 0 (pagesize: 2048)
   sram: 65536
 chipid: 0x0414
  descr: F1 High-density device

Кто-нибудь знает, как это решить.
Заранее спасибо.

generadocumention omacOS programmestlinkv2 staturesolved targestm32f1

Самый полезный комментарий

Привет, мне удалось разблокировать bluepills stm32, используя следующие команды в сеансе терминала openocd:

сбросить остановку
флэш-банки
stm32f1x mass_erase 0
stm32f1x разблокировать 0

После этого устройство было снова готово к программированию.

Все 11 Комментарий

Решается с помощью утилиты ST Link.

плата была _защищена от записи_

Спасибо за ваш отчет, я думаю, что добавлю это в документы, чтобы другие люди не ошиблись с этим.

Привет, ты можешь помочь мне в этом? Как отключить защиту от записи? Я использую Mac OS X. Официальная утилита St-link предназначена только для Windows, верно?

Вероятно, вы могли бы сначала выполнить массовое стирание, и я подумал, что тогда защита от записи будет снята. Или с помощью некоторых команд openocd (у него больше возможностей, чем у texane/stlink).

Спасибо за быстрый ответ. Пробовал стирать флешку, помогло. Однако проблема остается. Я попытаюсь использовать какой-нибудь компьютер с Windows, чтобы посмотреть, что произойдет. :\

Вы видели это в README?
https://github.com/texane/stlink/commit/0f9e4990ba0cdc295875b219b354fdf42f30a9aa

При использовании OpenOCD вы, вероятно, могли бы вызывать команды monitor stm32f1x unlock 0 (не проверено). См. http://openocd.org/doc/html/Flash-Commands.html.

Я запустил утилиту ST-LINK (в Windows) и перешел в Target > Option Bytes... > Disable Read Out Protection (поле со списком). Готово, проблема решена.

Я мог найти подсказку об отключении защиты от считывания с помощью openOCD по этой ссылке: http://www.openstm32.org/forumthread562. Я использую китайскую плату Blue Pill Stm32F103c8t6. Просто необходимо добавить строку "monitor flash protect 0 0 11 off" в скрипт инициализации openOCD. [Не проверено]

Привет, мне удалось разблокировать bluepills stm32, используя следующие команды в сеансе терминала openocd:

сбросить остановку
флэш-банки
stm32f1x mass_erase 0
stm32f1x разблокировать 0

После этого устройство было снова готово к программированию.

@jeroavf Спасибо! Это сработало для меня, и --probe теперь возвращает 65536 (похоже, я получил одну из немногих моделей на 64 КБ), а также корректно мигает.

Забавно, при выполнении шага mass_erase он даже думает, что это 128 КБ, но это неважно.

STM32 flash size failed, probe inaccurate - assuming 128k flash
flash size = 128kbytes

Спасибо, мне удалось разблокировать некоторые STM32F437 с полным стиранием чипа с помощью утилиты Windows ST-Link, теперь это снова работает на Linux st-link :-)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги