Например TDA7294

Форум РадиоКот • Просмотр темы - Утилита для программирования STM8S своими руками
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 22:25:57

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Сб янв 16, 2021 05:02:15 
Первый раз сказал Мяу!

Зарегистрирован: Вс июл 15, 2012 16:21:55
Сообщений: 21
Рейтинг сообщения: 0
Подскажите пожалуйста, где можно найти информацию (код) по непосредственной прошивке микроконтроллера типа STM8S (и наверное ему подобных) с помощью готового ST-LINK/V2 по интерфейсу SWIM. В интернете находил исходники для консольной версии на языке «C» вообще без каких либо объяснений. В моей ситуации это два минуса. Первый минус - привык делать оконные версии в Delphi на "Паскале", поэтому не подходит язык, команды вообще другие, много отсылок на библиотеки и DLL, второй минус – так как пример консольный, очень много лишнего, а объяснения как говорил ранее, нет вообще …. чужая душа потёмки.

Причина создания утилиты: она как всегда тривиальная, защитить себя от кражи своего исходного файла прошивки, написанного под микроконтроллер STM8S003F3, которую передаю сторонним лицам на программирование. И другой возможности просто нет, это требование заказчика/хозяина. Результат со мной будет обговоариваться спустя несколько месяцев, аж после продажи готовых изделий самим заказчиком. Но вот если я предоставлю утилиту для программирования МК это будет нормально, мало ли сколько есть всевозможных «прошивателей» микроконтроллеров, например тот же ST-VP.exe (оконная версия) и STVP_CmdLine.exe (консольная версия) и появление ещё какой-то ни у кого не вызовет лишних вопросов. Тем более что в своей программе смогу сделать защиту от кражи, как самого исходного файла прошивки, так и саму возможность программирования можно будет приостановить в любой момент, или поставить счетчик и т.п.

Краткое описание текущей ситуации: программа написана под самую завязку STM8S003F3, ноги полностью все заняты, в основном на выход, только одна на вход АЦП, кроме ножки сброса, поэтому скорее всего вариант с bootloader-ом не пройдет (если честно я ещё не совсем разобрался с этим моментом). Из того что понял на данный момент, мне кажется банально не хватит места, ведь у меня еле влезло то что требовалось, а использовать именно этот МК опять же требование заказчика. Да и программировать в два этапа, сначала откуда-то bootloader, а потом каким-то образом ещё откуда-то основную программу - не подойдет. Никого не устроит этот вариант. Если в этом моменте что-то недопонимаю поправьте.

Почти уверен, что просто прошивка через уже готовый ST-LINK/V2 через SWIM блоками по 256 или 512 байт в программную часть флеш наверняка даже проще чем городить сам bootloader, который пусть и сам себя может прошивать – ну незачем всё усложнять …. или я опять же что то не до понимаю!!!

P.S. защиту от чтения ROP уже прошитого МК установил в коде прошивки, поэтому об этом уже тоже позаботился


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Сб янв 16, 2021 08:46:56 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: -3
Так это нужно писать свой бутлоадер с шифрованием....
Глупая идея.

P.S. А код прошивальщика можно найти на гитхабе. Вот он. Если бы его не было, то STM8 просто невозможно было бы прошить: все-таки, у них, в отличие от тех же STM32F0x2, не так-то много возможностей загрузить прошивку: ни USB-DFU, ни встроенного бутлоадера нет…

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Последний раз редактировалось Eddy_Em Сб янв 16, 2021 10:00:16, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Сб янв 16, 2021 08:49:04 
Собутыльник Кота

Карма: 36
Рейтинг сообщений: 808
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 0
Изучайте программирование. Нет никакой проблемы работать с dll, это обязан уметь каждый программист. Да и нет там ничего сложного, фактически - тот же вызов функций/процедур и обработка их результата.
В консольных примерах, как правило, наоборот - нет ничего лишнего. Там всегда самая суть.
Если что-то на Си - значит, надо уметь читать Си, вряд ли кто-то будет портировать только ради Вас. Разве что, может это уже кто-то сделал, но тогда надо искать...
Вам поможет:
https://www.st.com/en/development-tools ... b-stm8.htm
PM0051 How to program STM8S and STM8A Flash program memory and data EEPROM
UM0470 STM8 SWIM communication protocol and debug module
UM0560 STM8 bootloader user manual
RM0016 STM8S and STM8A microcontroller families reference manual
AN2737 Basic in-application programming example using the STM8 I2C and SPI peripherals
AN2659 STM8 in-application programming (IAP) using a customized user-bootloader


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Сб янв 16, 2021 12:21:54 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 1
Делал подобное, правда для STM32
прошивку размещаете в теле программы, можно зашифровать
Код:
const flashCode: array [1..11184] of byte = (
$48,$05,$00,$20, $D1,$00,$00,$08, $81,$0E,$00,$08, $ED,$09,$00,$08,
$00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00, $00,$00,$00,$00,
...
)

конвертер в массив с бинарника пишется или ищется - слегка переделал
Цитата:
BIN2C (C) JRVV, ELECSAN S.A., 2016

затем из массива восоздаете файлик куда ни будь в мутное рандомное место типа
Код:
c:\Windows\Temp\cadf3629-8a5a\' + RandomPassword(15);
BlockWrite(f, flashCode, SizeOf(flashCode));

файл экзешника программатора тоже лучше переименовать STVP_CmdLine.exe->у меня отфонарное 'ch.bks' и приложить к программе
и вызвать это из своей программы:
Код:
str2 := 'ch.bks -c UR -P ' + str + ' 0x08000000';
RunDosInMemo(str2 , mmo1);

mmo1 нужно скрыть, удобно на этапе отладки
созданный файлик удаляете


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Сб янв 16, 2021 15:13:36 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
Результат со мной будет обговоариваться спустя несколько месяцев, аж после продажи готовых изделий самим заказчиком.
Что-то мутное. Как правило такие условия выдумывают когда собираются кинуть разработчика. Тем или иным способом. Хотя решать конечно вам. :dont_know:

Добавлено after 4 minutes 41 second:
у меня еле влезло то что требовалось, а использовать именно этот МК опять же требование заказчика.
Насчёт "требования заказчика" - скорее всего просто не сумели убедить его. Хотя иногда реально встречаются крайне упёртые личности.

Да и программировать в два этапа, сначала откуда-то bootloader, а потом каким-то образом ещё откуда-то основную программу - не подойдет.
Текстовым редактором пользоваться умеете? Если да: берёте два .hex-файла (бутлоадер + основное ПО) и тупо склеиваете их в текстовом редакторе несколькими нажатиями клавиш. Предварительно удалив некоторые строчки одного из файлов.
Всё - единый комплексный файл прошивки готов.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Вс янв 17, 2021 03:24:54 
Первый раз сказал Мяу!

Зарегистрирован: Вс июл 15, 2012 16:21:55
Сообщений: 21
Рейтинг сообщения: 0
oleg110592, спасибо Вам за дельный совет, так как все остальные очень и очень не простые, изучать все не смогу чисто физически, поэтому для ускорения этого вопроса собственно и пришел сюда, а Вашу идею можно очень неплохо развить, конечно небольшой изъян есть, но это уже нужно четко понимать и нахрапом не возьмешь, думаю этого будет достаточно.

Eddy_Em, я даже попытался разобраться в исходниках, но он даже не "компилится" с помощью Borland C++ 5.5.1, там куча ошибок как с синтаксисом, так и вплоть до нехватки библиотек (стандартные что были в инсталяторе все подтянул через .cfg).... не достающие пробовал находить и подставлять, так вылазят ещё ошибки в них. Безусловно можно было докопаться, рассмотреть, вплоть до того что удалять ругающиеся команды, но буду откровенен сдался, так как рубая одну голову вылазило две новые.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Вс янв 17, 2021 10:42:57 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
MarkTok, компилировать в линуксе надо, а не на игровой приставке!

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Пн янв 18, 2021 06:41:53 
Опытный кот

Карма: -9
Рейтинг сообщений: 29
Зарегистрирован: Пт янв 27, 2012 20:07:54
Сообщений: 859
Откуда: Томск
Рейтинг сообщения: 0
Тем более что в своей программе смогу сделать защиту от кражи, как самого исходного файла прошивки, так и саму возможность программирования можно будет приостановить в любой момент, или поставить счетчик и т.п.


Не сможешь.
В этой схеме, если захотят, тебя кинут просто на раз. Передал программу программирования - считай передал прошивку, которую будут шить столько раз, сколько захотят.
У тебя нет возможности приостановить возможность программирования, если только твой программатор не будет управляться тобой через интернет.

Если у тебя настолько ценная программа, что стоимость работ по извлечению прошивки перекроет написание прошивки с нуля,
то в твоей схеме прошивка извлекается логическим анализатором в процессе программирования.
Затем можно сделать дизассемблирование и поиск/удаление закладки.

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

Бутлоадер с шифрованием тоже не поможет, если зашивать его будешь не ты.
Бутлоадер нужен только для организации безопасного процесса обновления.
А если зашиваешь чипы ты сам, то можешь сам формировать готовый прошитый чип. И только в этом случае ты сможешь проконтролировать количество зашитых чипов.

-------

Вероятно оптимальный для тебя вариант: сделай программу программирования в виде законченного независимого аппаратного программатора.
Устройство: плата с процессором, кнопкой, парой светодиодов (зеленый, красный). Подключили контакты программирования, нажали кнопку.
По факту успеха внутри процессора учлось количество сделанных копий.

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Пн янв 18, 2021 18:43:42 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 20
Рейтинг сообщений: 648
Зарегистрирован: Пт май 31, 2013 17:14:38
Сообщений: 2081
Откуда: Украина, Винница
Рейтинг сообщения: 0
У тебя нет возможности приостановить возможность программирования, если только твой программатор не будет управляться тобой через интернет.

Что мешает сдампить SWIM интерфейс? Собственная прога на ПК это ерунда. Только самостоятельная прошивка с защитой даст хоть какую гарантию.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Чт янв 21, 2021 23:47:48 
Первый раз сказал Мяу!

Зарегистрирован: Вс июл 15, 2012 16:21:55
Сообщений: 21
Рейтинг сообщения: 0
Безусловно не совершенен этот способ, но думал чтобы хотя бы запутать и замести следы, так как особых специалистов там нет. Моя цель не испортить уже сделанные изделия, бог уже с ними, но хотя бы остановить дальнейшее использование, даже этот факт уже остановит от дальнейших шагов

P.S. Ещё что-то слышал о существовании такого способа:
Некий запрограммированный чип (заведомо с большей памятью и естественно залоченный) в который залита необходимая прошивка, и он уже в свою очередь программирует серийные МК. Может это и есть аппаратный программатор о котором говорил pavel2000?! Только там вообще получается всё на уровне «0» и «1» нужно передавать в SWIM порт, с необходимыми паузами и т.п., а из порта наверное и обратно что то посылается в свою очередь.... это же жесть какая-то, там же четко нужно знать протокол связи «SWIM» или как его там в узких кругах называют.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Пт янв 22, 2021 00:22:32 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
единственый способ ограничитьклдонировааниен -не давать прошифку в доступ
тут либо ты (или твой работник которому 200%доверия ) сам шьет чипы или делаеш сервер-сайт у себя дома и для прошифки софт прошива-клиент к нему логинится число логов считается счетчиком после выбора лимита(напрмерр 200шт) сервер болше не дает слить вылдавая что то типа ваш лимит исчерпан купите новый доступ на 200 шт
так давно делают изготовители совта для прошива и разлочки соток..

Добавлено after 7 minutes 32 seconds:
купить досту на нужно число чипоф можно онлай
кстати в ходе процедуры не сложно присвоит каждому кленту индивидуалный ID и прошить в него тогда вопрос легалности колпии заране легко проверить
толка не переувлекайтесь проверка успешности запуси чтением в процеси сесии обязателно лиш потом инкрементмруем счетчик циклоф записи..на сервере
это исключит апрорблемы если был сбой и потерю клиентом числакопий например изза битого чипа

Добавлено after 50 seconds:
и да весь трафик криптуйте своим апаратным ключом

Добавлено after 2 minutes 35 seconds:
есть еще вариант средний если полднять сесию нелзя изза протокола секретности или канала связи - апаратный HASP с счетчиком попыток каждая 3апись инкрементирут числ попыток после расхода лимита пусть покупают у вас новый HASP

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Пт янв 22, 2021 01:07:01 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 20
Рейтинг сообщений: 648
Зарегистрирован: Пт май 31, 2013 17:14:38
Сообщений: 2081
Откуда: Украина, Винница
Рейтинг сообщения: 0
Я бы сделал так. Взял бы лог анализатор, вцепился бы на линии SWD, поставил бы скорость пониже и посмотрел что же там на шине происходит и как оно передает файл прошивки. А дальше дело техники - берем МК побольше. прошивку ложим внутрь, кнопка, счетчик все дела. Еще бы конечно верификацию сделать, чтобы счетчик холостые проходы не считал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Пт янв 22, 2021 04:49:23 
Первый раз сказал Мяу!

Зарегистрирован: Вс июл 15, 2012 16:21:55
Сообщений: 21
Рейтинг сообщения: 0
Ярослав555 Оооочень интересный вариант! Главное чтобы в самом протоколе во время заливки не было предусмотрено запросов: типа "вопрос" - " логически правильный ответ", тогда вся затея может накрыться

Хотя если это будет делать сам программатор, то ответ можно впоследствии и игнорить ... но если наоборот, тогда такой "финт ушами" не пройдет


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Утилита для программирования STM8S своими руками
СообщениеДобавлено: Пт янв 22, 2021 08:09:38 
Опытный кот

Карма: -9
Рейтинг сообщений: 29
Зарегистрирован: Пт янв 27, 2012 20:07:54
Сообщений: 859
Откуда: Томск
Рейтинг сообщения: 0
Только там вообще получается всё на уровне «0» и «1» нужно передавать в SWIM порт, с необходимыми паузами и т.п., а из порта наверное и обратно что то посылается в свою очередь.... это же жесть какая-то, там же четко нужно знать протокол связи «SWIM» или как его там в узких кругах называют.


Немножко гуглим и через пару минут получаем ссылки

https://community.st.com/s/question/0D5 ... m-protocol
https://github.com/dimitarm1/SWIM_Programmer
http://kuku.eu.org/?projects/stm8spi/stm8spi

и так далее, затем по ссылкам изучаем информацию.
При этом фраза "STM8 microprocessors utilize a proprietary (but well documented) programming protocol called "SWIM" вселяет надежду на успех мероприятия.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y