Например TDA7294

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



Текущее время: Вт мар 09, 2021 13:50:58

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


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



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

Зарегистрирован: Вс июл 15, 2012 16:21:55
Сообщений: 9
Рейтинг сообщения: 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, 2019 22:52:01
Сообщений: 869
Рейтинг сообщения: -3
Так это нужно писать свой бутлоадер с шифрованием....
Глупая идея.

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

_________________
Я на гитхабе, в ЖЖ


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

Вернуться наверх
 
Друзья! Скоро Новый Год! Китайский! Но мы работаем и в праздники тоже!

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

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

Карма: 36
Рейтинг сообщений: 798
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2915
Рейтинг сообщения: 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
Рейтинг сообщений: 451
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3654
Рейтинг сообщения: 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 нужно скрыть, удобно на этапе отладки
созданный файлик удаляете


Вернуться наверх
 
Как сделать ИП с ультрашироким диапазоном?

Ключевыми особенностями высоковольтных SiC MOSFET Wolfspeed являются малое сопротивление канала в открытом состоянии и минимальное значение паразитных емкостей, что позволяет максимально снизить статические и динамические потери, и, соответственно, увеличить рабочую частоту преобразователей.

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

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

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

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


Вернуться наверх
 
STM32L5 – первое семейство ST на ядре Cortex-M33 с ультранизким потреблением

Первое семейство STM32L5 на базе ядра ARM Cortex-M33, флагман семейств ST с низким потреблением. Область применения IoT, расходомеры, умные часы, промышленные датчики и многое другое. Опубликованы материалы двух практических вебинаров по расчету энергопотребления и работой с TrustZone. Рассмотрены особенности и примеры практической реализации CAN FD на STM32L5.

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

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

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


Вернуться наверх
 


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

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

_________________
Я на гитхабе, в ЖЖ


Вернуться наверх
 


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

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


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

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

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

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

-------

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

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

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


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

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

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


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

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

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


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

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

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

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

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

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


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

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


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

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

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


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

Зарегистрирован: Пт янв 27, 2012 20:07:54
Сообщений: 125
Откуда: Томск
Рейтинг сообщения: 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 часа


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

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


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

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


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