Сообщение об ошибке ST-LINK не обнаружено при попытке подключения с помощью утилиты ST-LINK

У меня есть плата NUCLEO-F401RESTM32F401RE), и по большей части он работает нормально. Здесь недавно я следил за учебником из книги «Освоение STM32», где говорится об установке OpenOCD. Я тоже следил за этим и до этого, и я смог без проблем подключиться к своей плате и прошить ее.

Однако после попытки заставить OpenOCD работать это больше невозможно. Каждый раз, когда я пытаюсь подключиться к своей плате, я просто получаю следующее сообщение об ошибке:

No ST-LINK detected

Я пробовал обновлять драйверы несколько раз, перезагружая плату, переустанавливая утилиту ST-LINK, переключая USB-кабель, перезагружая плату и переустанавливая все, и я также пробовал трюк, когда вы удерживаете кнопку сброса и пытаетесь стереть чип. Пока, к сожалению, у меня ничего из этого не сработало.

Здесь вы найдете изображение моей доски.

На моем рабочем столе я использую Windows 10. На моей плате я использую FreeRTOS. Здесь вы найдете образ моего диспетчера устройств Windows.

Я также пытался обновить прошивку на своей плате с помощью обновления ST-Link, но безуспешно. При попытке сделать это у меня либо нет возможности выбрать свое устройство (при использовании приложения .jar), либо при использовании приложения .exe я просто получаю следующие сообщения об ошибках:

No ST-Link device detected
Please connect it and then retry

Мне нигде не удалось найти решение для этого, поэтому я надеюсь, что вы, ребята, сможете помочь! Если вам нужна дополнительная соответствующая информация, просто дайте мне знать. Большое тебе спасибо.


person Kbonde    schedule 22.06.2017    source источник
comment
(1) Вы действительно пытались использовать предыдущую инструментальную цепочку после закрытия вещей OpenOCD, отключения / повторного подключения вашей ядерной платы? (2) Я не уверен, чему можно научиться из опыта обновления прошивки STlink с использованием различных приложений .jar / .exe. Не могли бы вы подробнее рассказать об этой части? (3) Кроме того, не могли бы вы рассказать нам, изменилось ли поведение (пользовательская часть) платы после того, как вы начали работать с OpenOCD?   -  person HelpingHand    schedule 03.05.2020


Ответы (4)


Как упоминалось в других ответах, проблема почти наверняка связана с тем, что конкурирующий драйвер (что-то вроде libusb) берет на себя управление устройством.

Однако вам не нужно «удалять и переустанавливать все», чтобы выбрать правильный драйвер, при условии, что вы уже установили его один раз раньше. Более того, процедура переустановки, скорее всего, не поможет, потому что деинсталляторы обычно не удаляют драйверы anywa, и Windows будет по-прежнему предпочитать тот же неправильный драйвер.

Вместо этого откройте диспетчер устройств, найдите свое устройство STM32 STLink, дважды щелкните, чтобы открыть диалоговое окно «Свойства». Затем нажмите «Обновить драйвер», затем «Найти на моем компьютере драйверы», затем «Я выберу из списка доступных драйверов на моем компьютере», и вы должны увидеть что-то вроде этого:

Список драйверов

Вы видите, что в этом примере по крайней мере четыре различных драйвера, доступные в системе, с радостью обслуживают устройство. Первые два - это общие драйверы libusb, не относящиеся к ключу (OpenOCD с радостью использует любой из них, если я правильно помню). Однако утилите ST-Link нужен специальный драйвер, разработанный STM - это две записи ниже на моем рисунке. Если вы их не видите, попробуйте снова установить утилиту ST-Link (ничего удалять не нужно) или загрузите только driver с веб-сайта STM.

Теперь вы можете щелкнуть предпочтительный драйвер в этом списке и заменить любой драйвер, назначенный устройству ранее.

person KT.    schedule 23.05.2020

Исходя из моего плохого опыта, сообщение «ST-LINK не обнаружено» в утилите STM32 отображается, когда вы отключены или когда другая программа использует ST-LINK. Итак, если этот запуск происходит после установки OpenOCD, попробуйте удалить его и повторите попытку (может быть, с опцией «Подключиться при сбросе»?).

Довожу до вашего сведения. Когда вы подключаете кабель к ПК и плата включается, в настройках (утилита STM32) вы можете увидеть доступные ST-ссылки (даже заблокированные). Вот пример блокировки ST-Link

person Mikołaj    schedule 23.06.2017

Из того, что я узнал и понял (но каждый может меня поправить :)), ваша доска разделена на две части:

  • Часть отладчика ST-Link;
  • Остальное с собственно микроконтроллером.

Часть ST-Link используется для прошивки микроконтроллера и может использоваться для прошивки любого другого устройства STM32F4 через SWD. С вашей картинкой:

введите здесь описание изображения

Утилита STM32 ST-Link использует часть ST-Link вашей платы для ее прошивки. Я считаю, что если у вас есть сообщение «ST-Link не обнаружено», проблема, я совершенно уверен, не в микроконтроллере, а в части ST-Link. И поскольку вы сказали, что это сработало до установки openocd, я бы предложил часть драйвера в W10, которая может быть корнем ваших проблем.

Попробуйте удалить все (я имею в виду все), относящееся к STM32 (openocd, STM32 ST-Link Utility и ее драйвер через Диспетчер устройств).

Переустановите только служебную программу STM32 ST-Link (если вы правильно удалили драйверы, она должна спросить у вас разрешение на установку драйверов во время настройки) и попробуйте подключить вашу плату.

Вы также можете попробовать удалить перемычки SWD (разъем CN2) на вашей плате, чтобы отсоединить ST-Link от встроенной части микроконтроллера. Поскольку часть ST-Link является независимой, она все равно будет обнаруживаться утилитой STM32 ST-Link (но вам придется вернуть перемычки, если вы действительно хотите запрограммировать свой микроконтроллер).

person vionyst    schedule 23.06.2017
comment
Большое спасибо за вашу помощь! думаю, что вы определенно правы в отношении драйверов. Для дальнейшего подтверждения этой теории у меня действительно есть такая же плата, работающая на другом компьютере, поэтому она должна быть на моем ПК. Я просто попытался переустановить все, и, как вы отметили, - все. Это, к сожалению, до сих пор не дает результата. Мне нужно будет изучить вопрос об удалении перемычек SWD и посмотреть, повлияет ли это. - person Kbonde; 24.06.2017
comment
Вы пытались использовать неисправную плату на другом компьютере, чтобы проверить, обнаружена ли она? Или использовать рабочую доску на компьютере W10? - person vionyst; 26.06.2017
comment
Соответствующий порт USB все еще в порядке? И, поскольку этому вопросу почти 3 года - существует ли еще этот компьютер? - person HelpingHand; 03.05.2020

Просто столкнулся с этим. Проблема сводилась к использованию ядерных плат и попытке взаимодействия с ними с использованием более старых версий ST-LINK (поиск ST первой попытки ST-Link привел меня к stsw-link0004, которая не устанавливала правильные драйверы). Кто знает, почему они не указывают вам первыми на самые последние величайшие события.

Всякий раз, когда я пытался установить драйверы, я мог выбрать только USB Composite в качестве совместимого драйвера, несмотря на неоднократное удаление / переустановку stlink0004.

Вам необходимо установить последнюю версию st-link, например. stsw-link0009 (или новее).

  1. Удалите устройство (в диспетчере устройств оно было в разделе USB Composite Device)
  2. Удалить ST-LINK
  3. Отключите нуклео.
  4. Перезагрузить.
  5. Установите ST-link (stsw-link0009)
  6. В приглашении вы должны установить 3+ драйвера. Не только 2.
  7. Подключи. Вуаля.
person bathMarm0t    schedule 18.01.2021