Способы прожига MSP430. Lauchpad в качестве программатора.

В данной статье хочу поведать не такую уж и тайну об использовании ланчпада для заливки или сливки прошивки с MCU в hex-файл.



Пожалуй стоит начать с того, что меня напрягает в подавляющем большинстве Launchpad-based проектов — откровенно глупый способ заливки прошивки в девайс. Практически везде пользователю предлагается: запустить IAR или CCS, создать проект, вставить код копипастом, скомпилировать и начать сеанс отладки. Получается муторно. Именно это и является зачастую камнем преткновения для того, чтобы мир увидел очередной проект. Ведь далеко не каждый разработчик желает делиться исходниками точно так же, как и далеко не каждому конечному пользователю интересно их смотреть.

Для начала стоит рассмотреть способы залива прошивки в кристалл:

  • Используя загрузчик, он же BSL, он же BootStrap Loader.
    Я преследовал цель использования ланчпада в качестве программатора для девственных кристаллов, поэтому выбрал другой вариант. Этот же способ может быть интересен, если разработчику необходимо предусмотреть возможность выпуска обновлений прошивки и так далее. При соблюдении определенных конструктивных особенностей можно грузить прошивку напрямую с USB, без всяких преобразователей интерфейсов вроде TUSB или FTDI. Подробнее об этом можно прочитать в SLAU319. Есть вполне приличный мануал(SLAA450) по написанию своего BSL
  • JTAG обыкновенный.
  • У нас на эту тему есть статья. Есть еще вот такая штука.Тоже не стал разбираться, ведь LPT у меня нету, использовать преобразователь я не хочу, как и покупать программатор. У TI есть отличный мануал(SLAU320), где описаны все шаманские танцы вокруг JTAG'a. Желающие смогут построить свой собственный программатор. Сразу оговорюсь, у MSP430 есть один фьюз, зато настоящий. И при коммерческом использовании его желательно спалить перед отправкой устройства в свет, если конечно изготавливаемое устройство не просто до мелочей. Кстати вышеописанная «вот такая штука» умеет пережигать этот фьюз, Launchpad не умеет
.
  • Spy-Bi-Wire, он же SBW. Его и будем использовать.
  • Бывает в свою очередь двухпроводной и четырехпроводной. Одно другое дополняет, тем не менее TI проводит между ними четкую грань. Для заливки прошивки в кристалл можно использовать открытый и мультиплатформенный mspdebug, однако мне больше по душе просто открытый MSP430 Flasher. Скачать можно по ссылке, заполнив заявку на скачивание, или если вы как добропорядочный гражданин уже все заполнили=) можно скачать установщик отсюда.Данная программа умеет:
    • Заливать прошивку в формате TXT или HEX в девайс
    • Выполнять проверку памяти
    • Читать память кристалла в файл TXT или HEX
    • Устанавливать аппаратные брейкпойнты
    • Работать с паролем JTAG
    • Выбирать один из нескольких режимов работы девайса
    • Обновлять прошивку MSP-FET430UIF
    • Несколько вариантов сброса
    • Пережигать перемычку JTAG. Не работает на Launchpad'e.
    При использовании не забудьте указать ключ " -m SBW2 " . Обо всем остальном можно прочитать на вики TI или указав ключ " -h ". Имя контроллера задается например так " -n MSP430G2553 ". На этом пока все.

P.S. По поводу прожигания фьюза, сейчас разбираюсь. Вот тут(SLAU265) даются ссылки на ресурсы по программированию памяти. Пережигание доступно для MSP430F1xx, 2xx, и 4xx линейки.SLAU319 (раздел 2.8) говорит о возможности прошивки контроллера с пережженным фьюзом через BSL, который можно защитить паролем. А раздел 2.7 уверяет нас, что при его неправильном вводе происходит стирание flash. Там же есть схема и софт для программатора Replicator (REP430). Подключение осуществляется по интерфейсу jtag, типа j-link. Буду копать дальше
  • +1
  • 16 января 2013, 15:37
  • thodnev

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

RSS свернуть / развернуть
А мне всё-таки больше упомянутый mspdebug нравится. Он помимо прошивки еще и отладку умеет, внем есть полноценный gdb-server. Если кому нужно у меня есть собраный под Винду
0
Вот по ссылке программатор для более серьёзных поделок. Серию MSP430F5xx правда пока не поддерживает. Зато юсб
0
Когда мне надо было залить прошивку в ланчпад, я выковырил прошивалку из Energia, потом нашел ещё одну
А по жизни только BSL, только хардкор :)
0
Помимо BSL, есть и JTAG адаптер LPT-шный. И отдельная «железная» фьюзопережигалка.
(Fusee от Курта так и не удосужился собрать — вопрос потерял актуальность).
0
Расскажите поподробней про пережигалку.
0
Там ничего примечательного — MSP430F135 плюс ключики. В упомянутом Fusee похожая схема.
0
А все-таки поделитесь ссылкой, интересно же.
0
Это надо специально готовить, оно нигде не публиковалось.
0
Ну так подготовь и опубликуй.
-1
LPTшный фет у меня тоже есть. А вот LPT уже практически нет.
Во всяком случае, на ноутах — точно. А прошивать часто приходится в полевых условиях, да и все равно на серийных изделиях житаг пережжен. Так чтот вариантов нет.
0
А я перестал сжигать фьюз.

Толку по защите кода от него никакого. Ну скопирует кто-нибудь изделие и что? Ну одна копия, ну десяток, изготовленных на ЛУТ-е. И что, разве это убыток для производства в 1000-2000-5000 изделий в год? Да хоть 100 изделий пиратских будет сделано — урон для фирмы никакой! Все равно разработки не стоят на месте, и всю жизнь пираты не будут плестить с хвосте копируя разработки. Это просто экономически не выгодно.

Тот, кто занимается сериями, у того себестоимость изготовления всяко ниже, чем у кустаря. Поэтому, чем больше «кустарь» наклепает утюгом изделий, тем больше он проиграет «серийнику». Потому как работает он себе в убыток. Поэтому не страшно, что кустарь «украдет» выпустит клон ЭТОГО КОНКРЕТНОГО ИЗДЕЛИЯ. Через полгода выйдет следующая версия изделия, и гонка снова начнется. Копипастить для серийного производства дорого! А единичное производство серийному — неконкурент. А появится новая версия на рынке, что будут покупать — старое или новое? Во-во! В том-то и заключается подвох, что если на рынке присутствуют старые и новые версии, то в старьё нужно будет сильно пострараться чтобы продать. А что для этого нужно? — Правильно! — Снизить цену. То есть опять для пирата убытки. Так что, чем больше пират наклепает клонов, тем сильнее он убьется об стену. Поэтому, защищать код от тупых (не умеющих писать софт своими руками) нет никакой надобности.

А тот, кто умеет писать софт, то скорее всего сам создаст — свою версию, которую он полностью контролирует (то есть может легко устранять баги и периодически дорабатывать). То есть опять-таки не конкурент.

Если же защищать свои единичные хэндикрафт-изделия, то тут тоже полная фигня. Вы не на рынке, рынок на ваше изделие еще не существует, не сформирован. Поэтому, во первых, вы вынуждены делать не 10000 шт, а всего 10 экземпляров. Во вторых, на таком еще неустоявшемся рынке изделия очень быстро совершенствуются. Изделия на давно-сформированном рынке идут не в направлении улучшения функциональности, а в увеличении количества перделок, в увеличении яркости красок на упаковке. Ну, вы поняли!

Таким образом, против пиратов играет система быстрой смены поколений гаджетов.

У меня ж часто возникали проблемки типа такой: когда наше производство нарабатывало на склад несколько сотен изделий, у меня выходила какая-нибудь очередная версия ПО. Серийно ж производство! Станок не остановишь на какой-нибудь 358 плате, и не продолжишь с 259-ой с новой версией ПО. А MSP-ишки на платах уже запаяны, запрограммированы и фьюзы прожжены, и лежат себе на складе, ждут сборки в корпус. И что делать? Несколько раз приходилось наступать себе на горло, срубать микросхемы и вместо них устанавливать новые.

Я понимаю, это бардак. Я и сам так считаю. Но это реальная жизнь. С какого времени мы перестали сжигать фьюзы. Что изменилось? — А ничего! Конкуренты на рынке как были, так и остались, но откровенных копий наших изделий я так и не видел. Может кто-то и сделает несколько копий. Ну так пусть работает себе в убыток. Рынок принадлежит не одиночкам-кустарям, которые даже экономику своего производства просчитать не могут. Рынок принадлежит «серийникам», которые раз в полгода меняют что-нибудь в своих изделиях.

Я просто призываю всех подумать на эту тему. Ну, реально, пацаны! Ну, надуманная угроза копипастерства. Ну украдете вы прошивку с ЛончПэда или ST-Link. И что дальше? Ну сколько вы себе в убыток можете изготовить изделий? А сколько продать?

Что защищать-то? Мир очень быстро меняется. Нужно успевать рубить бабласы за свет «свежатинки», а не пытаться вырваться вперед за счет «протухших» версий. Дураков-то, с деньгами не бывает. Но дураков с прожжеными фьюзами (это я про себя!) — пруд пруди! Создали себе сказку, поверили в нее, и понеслась! И уже совсем забыли, что и от чего защищаем — УГРОЗА НАДУМАНА!
+1
Таким образом, против пиратов играет система быстрой смены поколений гаджетов.
С этим согласен, против конкурентов тоже.
Дело не только (и не столько) в копировании. Просто изделия разные бывают.
Если наши изделия кто-то тупо скопирует, то не сможет продать. (специфика рыночной ниши)
А вот реверс — это уже алгоритмы, формулы и годы исследовательской работы.
0
реверс-инжиниринг — это ни плохо, и ни хорошо. Раньше я старался зажимать информацию. Все боялся, что кто-нибудь украдет кусочек моего говно-кода.

Нынче я поступаю наоборот. Нынче я обучаю студентов, я делюсь своим опытом и своими методиками. Я стараюсь людям дать как можно больше знаний и умений, которые я получил в свое время.

Зажимать научные знания или методики — это негуманно! Только представьте себе, что у нас нет знаний по Фурье-преобразованиям или по созданию операционок с вытесняющей многозадачностью!

Другое дело — какая-то конкретная реализация какого-нибудь алгоритма. Но в таких случаях, по моему крайнему разумению, достаточно просто «придержать» исходники. А машинные коды — их еще надо постараться расшифровать и понять. Но что проще и имеет более прозрачные перспективы — изучить самому науку и научиться писать свои проги, или постоянно идти по пятам пытаясь что-нибудь «украсть с воза»? Ответ очевиден. Так что реверс-ининиринг — это в общем-то никак. Это бзик, навеянный аля-Майкрсофт параноиками, которые больше юристы, чем программисты. Программист всегда создаст следующую версию проги, и поэтому ему нечего бояться, а вот у юриста, усевшегося на шею программисту, всегда играет очко, поэтому он и защищает свои доходы соответствующим способом.

Самое главное, я хотел бы сказать вот, пока меня еще не передернули — не надо мои слова передергивать, пацаны! Я не говорю, что не нужно защищать абсолютно все программы. Я говорю только то, что мы, почти все тут все собравшиеся, НЕ ИМЕЕМ ПРОБЛЕМЫ ПО ЗАЩИТЕ СВОИХ ПРОГРАММ. Среди нас нет и никогда не будет недоделанных инженеров, которые ни на что не способны как только один-в-один скопипастить изделие и начать продавать его на рынке, оказывая нам конкуренцию.

На самом деле, при правильной постановке вопроса нам не о чем волноваться. Ресурсов для жизни более чем хватает всем. Просто некоторые алчные товарищи, идут по пути создания дефицита знаний, чтобы за счет других людей стать богаче. В мире все относительно. Стать богаче можно только сделав кого-то беднее. Но при этом есть еще один уровень, про который не принято говорить — количество ресурсов для того чтобы жить. Вот их как раз всем хватает. А раз так, то вся эта мышиная возьня, кто сколько денег заработает и куда потратит — не имеет никакого смысла. Все суета. С какого-то момента человек приходит к пониманию, что денег для житья ему вполне достаточно, и дальнейшее их увеличение не приносит уже того счастья, которое было раньше, когда к него было мало денег. Вот, с этого момента начинается обратный процесс — счастье возникает тогда, когда ты находишь человека, который имеет меньше чем ты, и немного помогаешь ему жить.

Я не отношу себя к мудрым. Просто я ищу ответ на главный вопрос «кто я и зачем тут?»

Если мы будем зажимать знания, опыт, ресурсы — мы, как нация, проиграем. Дураку знания не нужны даже бесплатно. А умный знания добудет, как бы вы ему не препятствовали. Окружайте себя умными людьми, а не дураками. Формируйте комфортную среду обитания, а не защищайтесь по одиночке от одного районного урода. Нас все равно больше, чем уродов. Поэтому и не стоит играть (жить) по их правилам. Зло существует до тех пор, кока есть источники зла. Убей в себе зло, перестать мстить, перестань отвечать злом злом, и увидишь, как начнет меняться окружающий тебя мир. Это реально работает. Другое дело, что духовных наставников у нас нет, поэтому мы совершаем мелкие ошибки и в результате видим не то, к чему стремились.

Повсеместная защита ПО — это надуманная и чрезмерно раздутая проблема. Это зло.

Думайте не за себя, а за всю нацию. За всю цивилизацию. Я знаю, что вы мне скажите. Но я прошел достаточно длинный путь в этом направлении, но к сожалению, я так и не нашел способа ненавязчиво говорить об этом. Поэтому, я прошу прощения за то, что я сейчас К.О. Ну, не получается, пацаны, у меня сказать как-то по-другому.
+1
Если изделие успешно продаётся хорошими тиражами по всему миру, китайцы тут как тут. Мало того что передерут, ещё и продавать будут под Вашей маркой.
+1
А Вы пробовали продавать свою серийную продукцию за бугор?
Попробуйте, а потом мы вместе посмеемся.

Поэтому, я считаю, что Китай нам не конкурент. У нас проблема не воровастый Китай. У нас внутренние государственные проблемы.
0
Больше половины туда идёт. В основном Латинская Америка.
Было время, даже в США кое-что проталкивали, но та тема уже лет 5 как умерла.
0
Но подделки за океаном пока не всплывали. В России и Казахстане только. Может, потому, что к Китаю ближе. :)
Тайванцы делали ещё функциональные аналоги наших подантенных усилителей, но там всё честно — скопировали только форм-фактор (а его там особо и не изменишь) и продавали, естественно, под своими TM. SENAO и Harvest, может, кто-то ещё помнит.
0
Я используя техасовский свисток и утилитку от курта вполне прошивал себе 430е.
0
Интересно, свисток от хроносов подойдет?
0
Да я его и юзал. Да они одинаковые.
0
что скажете по поводу MSP-FET430UIF?)норм штука?
0
Ну по идее это фирменный USB-отладчик с полным набором функций. Так сказать, эталонное средство прошивки/отладки.
0
а то достался нахаляву, незнаю куда его деть)))
0
На сковородку=)
0
Ну подари кому-нить, кому нужен)
0
Если решил заниматься 430-ми, то вполне ничего. Его можно самому сделать. Схема есть на ti.com, а прошивки можно слить с готового девайса, техасовцы не лочат чипы, также прошивки есть на electronix'e(их 3 шт. если не ошибаюсь). Есть клон за полцены, называется MSP-Link.
0
заниматься ими… хз… а че у них интересного есть?)
0
Потребление(почти батарейное), порты для работы с жки(точнее подключение впрямую), система тактирования
0
  • avatar
  • pkuz
  • 17 января 2013, 10:12
Линк на SLAU319 битый. Хотя правильный выглядит точно так же.
0
  • avatar
  • Vga
  • 17 января 2013, 10:40
Исправил
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.