Дикий глюк с STM8S-Discovery: решение.

Недавно купил STM8S-Discovery поиграться, соблазнила цена на младшие контроллеры 22 р./шт. Однако при подключении меня постиг дикий глюк, решением которого я хочу поделиться ниже.



Итак, все началось с того, что я купил себе отладочную плату STM8S-Discovery. Купил, поставил IAR для STM8, и… Ничего не завелось. IAR говорил, что ST-Link не обнаружен.

Но удивительно даже не это. Удивительно то, что до описываемых событий у меня спокойно стояли IAR'ы для STM32 (тот же ST-LINK !) и MSP430. И все железо работало.

Я переустановил все с нуля. В результате стал глючить и MSP430-FET (LaunchPad) — драйвера вставали криво. Это притом, что в первый раз все взлетело с пол-тычка (драйвера как для FET'а, так и для ST-LINK из поставки STM32).

Известно, что ST-LINK конфликтует с Daemon Tools. Однако я никогда не ставил оного софта. Тем не менее, при вдумчивом курении реестра обнаружились ключи Daemon Tools Lite и Daemon Tools Pro (!!!). ХЗ откуда, видимо подтянула какая-то программа.

Снес ключи (проверив, что самих файлов драйверов тоже не существует), снес весь мало-мальски подозрительный софт, включая VMWare, почистил реестр, переустановил IAR заново. Тот же результат, нифига не работает.

Итак, решение:

C MSP430 все просто — переустановил IAR с драйверами начисто и поставил джамперы линии SBW на LaunchPad'е. :DDD

А вот с ST-LINK'ом надо действовать так:

Втыкаем любую флешку, ждем, пока определится. Втыкаем STM8S-Discovery. Все начинает работать. И да, флешку можно вынуть, но тогда при повторном подключении надо опять повторить описанную последовательность.

Не спрашивайте, как додумался. :D Чистая интуиция.

UPD:

Немного о продолжении чудес…

Поставил заново (после того, как все снес) IAR for ARM kickstart 5.40. И, внезапно, без бубнов заработал отладчик ST-LINK в плате STM32-Discovery! При этом ST-LINK в STM8S-Discovery все так же работал только так, как описано выше. Однако, IAR 5.40 не смог собрать проект под STM32L-Discovery, и я обновился до 6.30, после чего STM32-Discovery тоже стал работать так, как описано выше — только после втыкания флешки. :D При этом ST-LINK V2 всегда определяется нормально.

Вывод: использовать MSD для отладчика — крайне неудачное решение. А я, пожалуй, если проникнусь STM8, пойду куплю отдельный ST-LINK V2.
  • +6
  • 06 апреля 2012, 22:10
  • _YS_

Комментарии (48)

RSS свернуть / развернуть
То-то они забили болт на MSD в ST-LINK/V2.
0
  • avatar
  • Vga
  • 06 апреля 2012, 22:59
И правильно сделали. Отладчик, мимикрирующий под флешку — атомный кошмар. Я за три дня чуть систему не преустановил.
0
Ну идея была не так уж плоха… Если бы она работала. А что отказались — ага, правильно.
0
Проблема, насколько я знаю, не в идее, а в реализации. Они там нарушили по ходу дела чуть ли не всю спецификацию, если верить авторам тулзов для ST-LINK под линух.
0
>тулзов для ST-LINK под линух
ЩИТО?! и оно работает? а где взять?!
0
Конечно работает. Другой вопрос, что ST-LINK/V2 работает куда лучше. Берут вот тут. Кстати, в настройке куда проще, чем OpenOCD.
0
просто чума — жизнь-то налаживается, лютобешено благодарю!
может, ещё и gcc для STM8 сделали?
0
Честно говоря, не уверен, что это хорошая идея. Я бы еще понял, ели бы bootloader косил бы под MSD (ЕМНИП в кокой-то из серий LPC реализовано что-то подобное). А зачем делать отладчик с «интерфейсом» MSD? Какой в этом смысл? Все равно, без специального ПО, отладчик использовать невозможно даже если сам отладчик распознается как «стандартное» USB устройство.
0
Не требуются дрова, на сам отладчик мона кинуть линки, а то и ПО.
0
ИМХО, сомнительные плюсы. Не требуются дрова: так лучше косить под CDC или HID – тоже можно обойтись стандартными драйверами. А вот стандарт MSD меньше всего подходит (по логике) для отладчика.
0
CDC не айс — карта свободных ком-портов в реестре у меня все ближе к 0xFFFFFFFF. К тому же еще пойди найди на каком из них девайс.
А вот HID довольно подходящий вариант, да. Правда, MSD намного быстрее — ЕМНИП даже FS HID (а USB 2.0 HS держат далеко не все МК с заявленным «USB 2.0 Device», и ЕМНИП STM32F103 в их числе) выдает всего лишь до 64кб/с.
А кроме этих трех пожалуй больше подходящих стандартных дров и нету. Не косить же под видеокамеру или звуковуху?
0
CDC не айс — карта свободных ком-портов в реестре у меня все ближе к 0xFFFFFFFF. К тому же еще пойди найди на каком из них девайс.
Зачищай чаще. Или хочешь уверить нас, что у тебя 0xFFFFFFFF девайсов в пользовании? НУНИВЕРЮ!!!
0
Ну FFFFFFFF это не 4G, а 32 — маска же. Нет, не в пользовании. Большая часть из них — зареганные неведомо кем виртуальные порты — USB, BT, etc. Но фиг разберешь, где чей и, соответсвенно, что вычищать. Потому и не люблю девайсы/проги, которые регистрируют еще больше портов.
Несколько сложнее — выделить номера в поддерживаемом иными прогами диапазоне — некоторые видят только COM1-4, некоторые вообще только 1 и 2.
P.S. Стоит еще заметить, что когда я писал ту мессагу, я думал что доступных номеров для компортов и есть только 32 штуки (в соответствии с длиной маски). Как позже выяснилось, их куда больше.
0
Периодически удалять неиспользуемые религия запрещает?
0
Нет, лень. И то, что я не помню, на каком порту что висит, а порты отключенных девайсов из диспетчера устройств испаряются.
И в любом случае, я не считаю CDC-COM удобным.
0
Ах да, про дрова.
Драйверы под Windows пишут только самые ненормальные из программистов. Драйверы ФС под Windows пишут только самые ненормальные из писателей драйверов.
0
Хм, прикольная ситуация.
Спасибо. Может пригодится )
Пользуюсь ст-линками уже года два, ни на одном из четырех пк подобного не было, правда я и иар не использую (пробовал в ознакомительных целях несколько раз).
0
  • avatar
  • ZiB
  • 07 апреля 2012, 05:19
Тоже самое… ))))
Просто иногда поражаешься… как народ умудряется во что-то вляпаться… неординарное… )))))))))
0
Так тут не в IAR'е дело. Все IDE в конечном счете используют один и тот же драйвер от ST. И, как явствует из практики, система «драйвер — ST-LINK» находится в достаточно хрупком равновесии. Вот у меня, видимо, неправильно встали звезды — ведь до определенного момента все работало.
0
В смысле, работало без бубна.
0
Странно, у меня ни разу глюков не было. ОС винда семерка.
Возможно действительно «звезды не правильно встали»…
0
Аналогично, что на XP что на Win7 64.
Может из за того, что я социальными гадюшниками пренебрегаю?
аськи, мэйлы_сру и прочьей гадостью?
_YS_ касперский, нод?
0
Никаких контактов и одноклассников, стоит только Skype и Google Talk. Резидентными антивирусами не пользуюсь, сканер ничего не нашел.

Нет, тут реально что-то со звездами. Еще раз, до описываемых событий долго стоял и нормально работал ST-LINK, который в STM32(L)-DISCOVERY.
0
Остается только сочувствовать…
0
У L-ки ST-LINK/V2, который куда как нормальнее. Во всяком случае нареканий на него не в пример меньше, а под линухом вообще запускается в одно касание.
0
Аналогично — за 5 лет работы с ST на разных платформах- ничего подобного, даже отдаленно напиминаемого.
Просто юзверь — полный чайник. Главное потыкать пальцами куда-нибудь, а потом цокать языком в блоге.
Не написал ни что за винда стоит, ни что за паки установлены, ни драйверы/эмуляторы, зато эмоций вагон.
0
Я очень рад, что у вас такого никогда не случалось. Скорее всего по причине того, что вы таки использовали STlink V2 или вообще Segger. А может быть, вообще ST7 и соответствующие инструменты?
0
оценил толерантный ответ)… v1 пользовал, и v2 в последствии. Сейчас вынужден на 8-ке работать, до этого на 7-ке и XP. на 3-х виндовых компах, вкл. домашний, нереставляю винды как мин пару раз в год, линукс — раз в год. До этого момента думал что этот ст-линк — самая тупая железка, со своим дубовым драйвером. Есть еще JLINK, но для ST его редко использую.
0
Ну, я конфуцианец. :D Да и потом, я не отрицаю, что на свете есть профессионалы гораздо круче меня. :)

Вообще, я с контроллерами от ST мало работаю. В основном, как ни странно, MSP430 и AVR (текущий заказ, например). PIC на прошлой работе были.
0
Сегодня половину дня провел в попытках заставить работать ST-Link от STM8S-Discovery под Иаром.
Главное чего удалось добиться так это устойчивого поведения системы. Сразу хочу отметить, что в моем случае Daemon Lite никак не влияет на поведение ST-Link'a. Я его пробовал отключать и не включать — не помогало. Правда реестр я не чистил. А помогло то, что описано автором топика:
«Втыкаем любую флешку, ждем, пока определится. Втыкаем STM8S-Discovery. Все начинает работать. И да, флешку можно вынуть, но тогда при повторном подключении надо опять повторить описанную последовательность.»
Похоже что ST-Link не желает работать, если он первым проходил процедуру энумерации. Если он второй или третий, то все работает нормально.

Большое спасибо автору топика!!!
0
Не за что, я очень рад, что мой опыт пригодился кому-то еще. :) Все-таки я три дня до этого решения доходил, как видно, не зря. :)
0
И STM8S-Discovery желательно перешить под ST-Link v.2. Работаю под IAR. А с глюком вё просто — ST-Link не должен определяться как устройство старше E:, иначе оно не видно.
0
У меня E: это HDD.

И STM8S-Discovery желательно перешить под ST-Link v.2.

Ну-у-у, а ссылку на обновлялку дать? Я не нашел когда искал.
0
Так подскажите как перешить под ST-Link v.2.
0
Интересует тоже, как перешить. искал долго нашел только, длл для старой версии под кейл.
0
у меня был такой глюк, решение есть на форуме нашем, надо заменить длл в папке bin в корне IAR. Блин, тут у нас нельзя прикреплять файлы)
0
Можно:
1) Дать ссылку на конкретный пост форума
2) Дать ссылку на файлы прямо с форума
3) Залить на файлообменник
Выбирай.
0
Спасибо за совет! сейчас залью на файлообменник.
0
А вот я бы выбрал первый вариант…
0
Я попутал немного, форум не наш, а Радиокота — ВотЪ
А так, заменять файл по адресу: C:\Program Files(x86)\IAR Systems\Embedded Workbench 6.0\stm8\bin
PS: я со своим дискавери полдня ковырялся изза этого глюка, думал помер бедняга. Решил глянуть в инете… и о чудо) не я один такой. надуюсь кому-нить поможет.
0
  • avatar
  • Dmi
  • 04 мая 2013, 12:47
Лол, топик-то на радиокоте тоже за моим авторством. Вообще, я сначала описал это там, и только потом здесь. :)

DLL мне не помогает, вроде я там уже отписывался.
0
Слух, а как он у тебя не работал? Косил под флешку? Щас вот тоже бодаюсь с этим гребаным стм8линк и нифига не пашет. Изображает из себя флешку и хоть убейся. Причем помню эту проблему решал год назад, но забыл как :(
0
Так он и должен изображать флешку. Это by design так — этакая чудо-флешка, которая определяется IAR'ом как отладчик. Ну, должна определяться. А у меня IAR ее не находил сходу, а находил только после описанных манипуляций.
0
Хм. А у меня полный фейл, определяется только как флешка и ничем больше не хочет впрягаться за стлинк. Хотя раньше точно работало, может дело в х64 винде.
0
Дыг не, система его и будет определять как флешку. А вот IAR как-то с ней хитро работает и понимает ее как отладчик.
0
А вот V2 — это уже просто отладчик, а не флешка.
0
DI, загляни на форум. Там есть тема про клонирование STLINK/v2 (полного — stm32 и stm8). Со схемой, разводкой (правда я ее перепилил для себя под 45х30) и FW!!!
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.