Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Защита программы от несанкционированного распространения
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
d7d1cd
Привет всем! Мне необходимо написать свою программу для устройства на МК MSP430F249 так, чтобы она работала только в данном конкретном устройстве. Подскажите, как это можно сделать?
Получается, что программе надо каким то образом идентифицировать МК, в котором она выполняется, на признак "свой" или "чужой" (если "чужой", то прекратить работу). Припоминается, что где-то я читал информацию о том, что каждый МК указанной марки хранит в ПЗУ для загрузчика BSL некий номер, уникальный для данного МК. Или я это выдумал?.. Есть ли нечто подобное в указанных МК?

P.S. Прожиг фьюза JTAG не предлагать, ибо программирование устройства будет делать другой человек, который заинтересован в использовании программы на нескольких устройствах (а я против этого). И еще: я понимаю, что любую защиту можно взломать, поэтому прошу не указывать на это и не говорить, что все попытки данной защиты бесполезны.
Obam
BSL через УАПП:

Access to the MSP430 flash memory via the BSL is protected by a 256-bit userdefined
password. For more details see the MSP430 Programming Via the Bootstrap Loader User's Guide
(SLAU319).

А фузы всё равно пережигать, потому как JTAGом вычитывается вся память.
d7d1cd
Цитата(Obam @ Aug 19 2015, 09:31) *
BSL через УАПП:

Access to the MSP430 flash memory via the BSL is protected by a 256-bit userdefined
password. For more details see the MSP430 Programming Via the Bootstrap Loader User's Guide
(SLAU319).

А фузы всё равно пережигать, потому как JTAGом вычитывается вся память.


Видимо Вы не поняли постановки задачи (почитайте первый пост внимательно).
Мне необходимо сделать так, чтобы программа выполнялась только в конкретном МК. При ее загрузке в другой МК, программа "понимает", что она в "чужом" МК и прекращает свое выполнение (пустой бесконечный цикл, например).
Вопрос в том, как сделать идентификацию, что МК "свой". Если бы в каждом МК был уникальный номер, то это было бы легко сделать (или такой номер есть в МК?). Есть еще идея как-то использовать микросхемы памяти, подключенные к МК (может быть в них есть что-то уникальное), но пока не знаю как.
Есть ли какие-то сображения по этому вопросу?
Obam
"Припоминается, …, что каждый МК указанной марки хранит в ПЗУ для загрузчика BSL некий номер, уникальный для данного МК."

Я привел из документации, что это за номер такой требуется BSL, это раз;
"серийного" номера проца на борту проца нет, это два;
есть некая TLV Structure с калибровочными данными, они должны по идее быть уникальными, но… короче, тут вам думать, это три.
d7d1cd
Цитата(Obam @ Aug 19 2015, 10:42) *
Я привел из документации, что это за номер такой требуется BSL, это раз;

Этот номер - таблица векторов прерываний. Он пароль для BSL. Мне он не подходит.

Цитата(Obam @ Aug 19 2015, 10:42) *
"серийного" номера проца на борту проца нет, это два;

Это плохо...

Цитата(Obam @ Aug 19 2015, 10:42) *
есть некая TLV Structure с калибровочными данными, они должны по идее быть уникальными, но… короче, тут вам думать, это три.

Уверен, что эта структура хранится в FLASH памяти. Ее можно скопировать. Значит тоже не подходит.

Буду, наверное, использовать внешнюю память.
k155la3
вместо внешней памяти использовать недорогой микроконтроллер, подключаемый по SPI или I2C.
Протокол свой-чужой - подобный методе лицензирования IAR через интернет.
Т.е. основной контроллер пытается получить у "держателя лицензий" разрешение на работу.


d7d1cd
Цитата(k155la3 @ Aug 19 2015, 11:46) *
вместо внешней памяти использовать недорогой микроконтроллер, подключаемый по SPI или I2C.
Протокол свой-чужой - подобный методе лицензирования IAR через интернет.
Т.е. основной контроллер пытается получить у "держателя лицензий" разрешение на работу.

Устройства с МК, для которых надо защитить программу, уже выпущены. В них нельзя добавить что-то.
k155la3
Ага, тогда понятно. У меня аналогичная ситуация, которая решилась пережигом JTAG и дальнейшей работой с BSL.
Если надо не защита, а примитивное ограничение доступа - прописывайте в INFO-сегменты серийные номера, хеши-CRC.
Делайте "индивидуальные" прошивки для каждого девайса.
d7d1cd
Цитата(k155la3 @ Aug 19 2015, 12:01) *
Ага, тогда понятно. У меня аналогичная ситуация, которая решилась пережигом JTAG и дальнейшей работой с BSL.
Если надо не защита, а примитивное ограничение доступа - прописывайте в INFO-сегменты серийные номера, хеши-CRC.
Делайте "индивидуальные" прошивки для каждого девайса.

Вот как раз сделать "индивидуальные" прошивки для каждого девайса мне и нужно. Однако эту прошивку я не сам буду заливать в МК. Но в то же время в моих интересах сделать так, чтобы эта прошивка работала только в одном устройстве. В противном случае, человек один раз купит у меня прошивку и будет заливать ее в такое количество устройств, какое захочет.
Ваш совет о прописывании в INFO-сегменты серийных номеров, как я понимаю, тут применить нельзя. В устройствах, для которых пишется программа, есть микросхема памяти, а так же микросхема-драйвер ЖК дисплея. Сейчас я думаю, как можно использовать эти устройства для решения моей задачи.
Tanya
Цитата(d7d1cd @ Aug 19 2015, 14:23) *
как можно использовать эти устройства для решения моей задачи.

А я думаю, что если Вы сами будете заливать прошивку дистанционно, то это шанс...
d7d1cd
Цитата(Tanya @ Aug 19 2015, 14:38) *
А я думаю, что если Вы сами будете заливать прошивку дистанционно, то это шанс...

Так так... Как залить дистанционно? Team Viewer?
Abell
Цитата(d7d1cd @ Aug 19 2015, 14:23) *
Вот как раз сделать "индивидуальные" прошивки для каждого девайса мне и нужно. Однако эту прошивку я не сам буду заливать в МК.

Прошивка - в Ваших руках, все железо - в руках другого человека, правильно понял?
Вот чего не понял - каким образом, не зная серийников железа, вставить их в прошивку?
d7d1cd
Цитата(Abell @ Aug 19 2015, 14:43) *
Прошивка - в Ваших руках, все железо - в руках другого человека, правильно понял?

Все правильно.

Цитата(Abell @ Aug 19 2015, 14:43) *
Вот чего не понял - каким образом, не зная серийников железа, вставить их в прошивку?

Устройства могут обмениваться информацией с компьютером. Сначала необходимо отправить заказчику прошивку, которая по запросу с компьютера выдаст серийник железа. Программа на компьютере сохранит его в файле, заказчик пришлет файл мне. Я на основе этого серийника сделаю итоговую прошивку и вышлю заказчику. Как то так...

Tanya
Цитата(d7d1cd @ Aug 19 2015, 14:41) *
Так так... Как залить дистанционно? Team Viewer?

Только принцип... Ваш недруг должен поставить на машине UNIX, который Вы закажете, и дать Вам пароль суперпользователя. Как с Винд* - не знаю.
d7d1cd
Цитата(Tanya @ Aug 19 2015, 15:00) *
Только принцип... Ваш недруг должен поставить на машине UNIX, который Вы закажете, и дать Вам пароль суперпользователя. Как с Винд* - не знаю.

Хорошо, дистанционный доступ есть. Я должен буду залить прошивку и прожечь JTAG. И никакой защиты мудить мудрить не надо. Верно?
Tanya
Цитата(d7d1cd @ Aug 19 2015, 15:06) *
Хорошо, дистанционный доступ есть. Я должен буду залить прошивку и прожечь JTAG. И никакой защиты мудить мудрить не надо. Верно?

Если только он не пригласит юникс-гуру... их трудно найти... хотя это вопрос цены. Еще должны быть соответствующие драйверы прошивщика.
zltigo
QUOTE (d7d1cd @ Aug 18 2015, 14:11) *
И еще: я понимаю, что любую защиту можно взломать, поэтому прошу не указывать на это и не говорить, что все попытки данной защиты бесполезны.

А я тем неменее скажу. То, что Вы пытаетесь сделать, даже если-бы вдруг был серийный номер, вообще ЗАЩИТОЙ НЕ ЯВЛЯЕТСЯ любой, кто отличает бит от байта найдет вашу "защиту" в открытой прошивке и выкинет нафиг. Тем более имея любезно предоставленные Вами НЕСКОЛЬКО прошивок sm.gif. Так-что либо Вы сами производите устройство (обычную не электронную почту еще никто не отменял), либо доверяете. Все остальное это создание проблем на свою-же голову.
d7d1cd
Цитата(zltigo @ Aug 19 2015, 15:42) *
А я тем неменее скажу. То, что Вы пытаетесь сделать, даже если-бы вдруг был серийный номер, вообще ЗАЩИТОЙ НЕ ЯВЛЯЕТСЯ любой, кто отличает бит от байта найдет вашу "защиту" в открытой прошивке и выкинет нафиг. Тем более имея любезно предоставленные Вами НЕСКОЛЬКО прошивок sm.gif . Так-что либо Вы сами производите устройство (обычную не электронную почту еще никто не отменял), либо доверяете. Все остальное это создание проблем на свою-же голову.

Ну что я могу сказать... Вы правы. Однако чтобы найти защиту и выкинуть ее надо не просто отличать бит от байта. Надо еще уметь дизассемблировать и знать систему команд МК. Кроме этого, каждая прошивка будет скомпилирована по-разному, то есть, программа будет одна и та же, но функции будут в ней расположены каждый раз в разных местах. Да и в свободное место будет набросан мусор.
Конечно, мой заказчик может нанять человека, который все это знает, заплатить ему один раз и не покупать у меня больше прошивок. Но тут надо вычислить экономический эффект. Думаю этот знающий человек возьмет не малую цену за свою работу.
Abell
Может, глупость скажу, но тем не менее - может есть более простой путь, который Вы упускаете из виду?
Допустим, нормальный договор с заказчиком.
Где-то видел, как начиналась майкрософт - договор с IBM на продажу вместе с их компьютерами MS-DOS.
Если речь идет о больших объемах - в договоре можно предусмотреть пункт о контроле количества выпускаемой продукции, и сидеть всю жизнь возле конвейера, одним глазом наблюдая количество устройств, а другим - растущий счет в банке laughing.gif
zltigo
QUOTE (d7d1cd @ Aug 19 2015, 15:56) *
Кроме этого, каждая прошивка будет скомпилирована по-разному, то есть, программа будет одна и та же, но функции будут в ней расположены каждый раз в разных местах. Да и в свободное место будет набросан мусор.

Это как раз те действия, котрые и приводят к проблемам на свою голову. Ну а ломать, уж поверьте, это не строить - квалификация нужна МИНИМАЛЬНЕЙШАЯ.
ASN
d7d1cd
Как обстоят дела с MSP430 не знаю, но старый добрый метод делали такой (основан на том, что состояние не инициализированного ОЗУ у разных МК разное и случайное - "серийник"):
- основной функционал программы переписывается таким образом, чтобы исполнялся из ОЗУ (типа объекты с таблицами виртуальных функций);
- программа разбивается на две части: постоянная часть (загрузчик, таблицы и т.п.) и переменная (сами функции);
- при старте запускается генератор гаммы, где входными параметрами является хеш-функция состояния ОЗУ, которая накладывается на образ переменной части при копировании;
Но хотя "ломается" всё это "на раз". Поставляемая отдельно внешняя микросхема-ключ посложнее для взлома, но тоже не сильно.
Лучше, IMHO, договорится с заказчиком о "технадзоре". Выгодно обоим.
controller_m30
От программиста оснащённого JTAG-отладчиком, защитить программу в МК не получится никак. Но от тупого тиражирования того файла, что вы отправите покупателю прошивки - защититься можно.

Прошивку надо отправлять на плате с контроллером и микросхемой памяти (24Сххх например). Прошивка хранится в частично закодированном виде, непригодном для прямого исполнения, а часть может работать. Ключ к раскодировке находится в микроконтроллере. Этот МК загружает прошивку в неизменном виде (зашифрованную), и запускает её в целевом устройстве.
Незакодированная часть программы делает распаковку зашифрованных модулей, постоянно запрашивая ключ к их расшифровке у МК полученного по почте. После полной распаковки программы, в МК-загрузчик раппортуется об успешном завершении распаковки, и тот стирает содержимое 24Сххх, и какой-нить бит (байт) собственной памяти, чтоб больше функцию загрузки он выполнять не мог - может даже пускай самостирается весь.

Этого достаточно, чтоб не дать тиражировать присланную по почте прошивку, т.к. она без сопровождающего МК не распакуется. А МК участвует в процессе распаковки программы только один раз, а потом блокируется.

Но от программера с JTAG-отладчиком и дизассемблером, который сольёт вашу прошивку из целевого МК это не спасёт laughing.gif Разве что МК, сопровождающий прошивку - как то ухитрится ещё и JTAG пережечь... Тогда было бы всё в порядке.
d7d1cd
Цитата(controller_m30 @ Aug 19 2015, 18:47) *
От программиста оснащённого JTAG-отладчиком, защитить программу в МК не получится никак. Но от тупого тиражирования того файла, что вы отправите покупателю прошивки - защититься можно.
Прошивку надо отправлять на плате с контроллером и микросхемой памяти (24Сххх например). Прошивка хранится в частично закодированном виде, непригодном для прямого исполнения, а часть может работать. Ключ к раскодировке находится в микроконтроллере. Этот МК загружает прошивку в неизменном виде (зашифрованную), и запускает её в целевом устройстве.
Незакодированная часть программы делает распаковку зашифрованных модулей, постоянно запрашивая ключ к их расшифровке у МК полученного по почте. После полной распаковки программы, в МК-загрузчик раппортуется об успешном завершении распаковки, и тот стирает содержимое 24Сххх, и какой-нить бит (байт) собственной памяти, чтоб больше функцию загрузки он выполнять не мог - может даже пускай самостирается весь.
Этого достаточно, чтоб не дать тиражировать присланную по почте прошивку, т.к. она без сопровождающего МК не распакуется. А МК участвует в процессе распаковки программы только один раз, а потом блокируется.
Но от программера с JTAG-отладчиком и дизассемблером, который сольёт вашу прошивку из целевого МК это не спасёт laughing.gif Разве что МК, сопровождающий прошивку - как то ухитрится ещё и JTAG пережечь... Тогда было бы всё в порядке...

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

Но Ваше предложение об устройстве, заливающем прошивку, родило следующую идею. Можно изготовить устройство-загрузчик на основе лишь одного МК без микросхемы памяти. В этом МК будет хранится прошивка для заливки и загрузчик. Фьюз JTAG у этого МК должен быть пережжен. Заказчик, получив от меня устройство-загрузчик по обычной почте, подключает его к своему целевому МК. Что важно, подключение будет осуществлено по JTAG. После физического подключения, заказчик нажимает на устройстве-загрузчике кнопку, в результате чего оно начинает копировать в целевой МК прошивку. После завершения копирования, устройство-загрузчик прожигает фьюз целевого МК, а так же стирает собственную память. В результате у заказчика остается работоспособное устройство с моей прошивкой, но с невозможностью сделать копию, а так же мое устройство-загрузчик, которое уже не способно что-либо загрузить. Его он мне отсылает назад. Я через BSL загружаю в него прошивку и загрузчик и снова готов отправить ее для заливки.
Вопрос: как осуществить "общение" по JTAG порту? Где взять протокол обмена?
Abell
Цитата(d7d1cd @ Aug 20 2015, 08:51) *
Погодите-ка...
Можно изготовить устройство-загрузчик...
Заказчик, получив от меня устройство-загрузчик по обычной почте...
Его он мне отсылает назад...

Извиняюсь за не в тему, но, промаявшись с полгода с Вашими мудреными прошивками, заказчик-таки будет искать другого исполнителя, озабоченного более функционалом прошивки, нежели ее защитой biggrin.gif
d7d1cd
Цитата(Abell @ Aug 20 2015, 09:23) *
Извиняюсь за не в тему, но, промаявшись с полгода с Вашими мудреными прошивками, заказчик-таки будет искать другого исполнителя, озабоченного более функционалом прошивки, нежели ее защитой biggrin.gif

Залитую прошивку можно будет обновить по интерфейсу обмена с устройством. Так что расширение функционала или исправление ошибок, в плане заливки в целевое устройство, не проблема.
Кроме этого, другой исполнитель тоже не захочет продать прошивку только один раз, ибо там совсем не простенькая программа, а заказчик может купить ее один раз, а далее просто копировать. Другой исполнитель все это понимает и тоже будет думать над защитой. С другой стороны, исполнитель может продать ее один раз за соответствующую ей цену, однако, скорее всего, заказчик не будет совершать покупку, так как он не знает, сколько устройств он сможет "осчастливить" купленной прошивкой.

Но давайте вернемся к вопросу: как осуществить "общение" по JTAG порту? Где взять протокол обмена?
Obam
Тщета это всё…
Пару-тройку раз заказчик сымитирует ошибку при обновлении прошивки, пару раз метнётесь к нему в командировку (хорошо если километров за 150..200), потому как по почте ваш программатор дошёл битый (или "потерялся"), пообщаетесь с заказчиком "тет-а-тет" (типа "ты, мля, за мои бабки геморрой мне… " ну и т.д.) и забъёте на защиту FW в копеешном проце не предназначенном для ответственных применений.

"…Но давайте вернемся к вопросу: как осуществить "общение" по JTAG порту? Где взять протокол обмена?…"
slau320a.pdf
controller_m30
Я бы оставил контроллер покупателю, и не загружал почту. Тот-же ATTiny85 стоит в два раза дешевле чем его пересылка в одну сторону. Включить его стоимость в цену прошивки и всего делов.

По JTAG протоколу информация у Техаса открытая. Например slau320. Там и операции с памятью, и с фьюзом есть. Но это подвиг, как по мне wink.gif
d7d1cd
Спасибо. Прошу прощения, а на кириллице нет сего произведения? Ибо буржуйский с трудом перевариваю.
Obam
Цитата(d7d1cd @ Aug 20 2015, 11:21) *
Спасибо. Прошу прощения, а на кириллице нет сего произведения? Ибо буржуйский с трудом перевариваю.


05.gif а заказчику "руки выкручивать" собраетесь sm.gif
Abell
Цитата(d7d1cd @ Aug 20 2015, 09:47) *
другой исполнитель тоже не захочет продать прошивку только один раз, ибо там совсем не простенькая программа, а заказчик может купить ее один раз, а далее просто копировать. Другой исполнитель все это понимает и тоже будет думать над защитой. С другой стороны, исполнитель может продать ее один раз за соответствующую ей цену, однако, скорее всего, заказчик не будет совершать покупку, так как он не знает, сколько устройств он сможет "осчастливить" купленной прошивкой.

Опять сильно извиняюсь, но таки ой как все сложно в отношениях с заказчиком...
Я к чему клоню - Вы участвуете в разработке устройства, соответственно имеете некоторые права на него, в части ПО. Это юридический вопрос, и решается юридическими способами.
Технологический вопрос в том, что программная защита не относится к основному функционалу устройства, а значит - требует некоторых аппаратных затрат и снижает надежность.
Финансовый вопрос в том, что Ваши изыски с защитой в конечном итоге ведут к необоснованному удорожанию устройства, а значит - снижают его конкурентоспособность. Если выпуск недорогого, востребованного на рынке устройства не в Ваших интересах - так и скажите заказчику.

В общем, или кто-то из вас кого-то куда-то пошлет лесом, или китайцы, глядя на ваши бодания, сделают такое же устройство в пять раз красивее, в десять раз быстрее и в сто раз дешевле biggrin.gif
Прошу прощения за не в тему обсуждения, дальше помолчу laughing.gif
digital


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

можно тоже самое сделать через bootloader, предварительно проверить убит ли jtag

Цитата(d7d1cd @ Aug 20 2015, 08:51) *
Погодите-ка... Получается, после распаковки в устройстве заказчика будет находится работоспособная прошивка. С условием того, что JTAG у него рабочий, что мешает ему скопировать эту прошивку и заливать ее уже без моего участия? Не пойдет так!

Но Ваше предложение об устройстве, заливающем прошивку, родило следующую идею. Можно изготовить устройство-загрузчик на основе лишь одного МК без микросхемы памяти. В этом МК будет хранится прошивка для заливки и загрузчик. Фьюз JTAG у этого МК должен быть пережжен. Заказчик, получив от меня устройство-загрузчик по обычной почте, подключает его к своему целевому МК. Что важно, подключение будет осуществлено по JTAG. После физического подключения, заказчик нажимает на устройстве-загрузчике кнопку, в результате чего оно начинает копировать в целевой МК прошивку. После завершения копирования, устройство-загрузчик прожигает фьюз целевого МК, а так же стирает собственную память. В результате у заказчика остается работоспособное устройство с моей прошивкой, но с невозможностью сделать копию, а так же мое устройство-загрузчик, которое уже не способно что-либо загрузить. Его он мне отсылает назад. Я через BSL загружаю в него прошивку и загрузчик и снова готов отправить ее для заливки.
Вопрос: как осуществить "общение" по JTAG порту? Где взять протокол обмена?


вот это устройство
http://www.ti.com/tool/msp-gang

наверно уже можно прямо на нем сделать однократную прошивку
d7d1cd
Бутлоадер - это программа в МК, которая может обновить проц? Если так, то как бутлоадер проверит, что JTAG пережжен?

digital
Цитата(d7d1cd @ Aug 20 2015, 11:57) *
Бутлоадер - это программа в МК, которая может обновить проц? Если так, то как бутлоадер проверит, что JTAG пережжен?


если не ошибаюсь в бутлоадере есть такая функция,
если нет, то это можно проверить аппаратно (если есть доступ к jtag)


сколько планируется прошивать штук? единичные количества или как?
чем плоха почта? нельзя выпаивать ?
обновления версии планируется?


можно отправлять с уже прошитым своим бутлоадером, который принимает шифрованный образ и имеет свой серийный номер
d7d1cd
Сколько работаю с MSP430, никогда нигде не видел, что можно программно определить, прожжен фьюз или нет. Думаю, что это в принципе невозможо сделать "изнутри" проца.
Сколько будет прошиваться устройств не знаю. Может одно-два, может 100-200.
Выпаивать нельзя.
Обновление чего? Заливаемой прошивки? Да, планируется, но уже через интерфейс связи.

Если бы программно можно было определить состояние фьюза JTAG, то решение моей задачи было бы очень простым. 05.gif
digital
как добавить уникальности

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

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

Цитата(d7d1cd @ Aug 20 2015, 12:16) *
Сколько работаю с MSP430, никогда нигде не видел, что можно программно определить, прожжен фьюз или нет. Думаю, что это в принципе невозможо сделать "изнутри" проца.


не знаю, спорить не буду,

fuse можно проверить Jtag программатором, но лучше чтобы он сам его и прожигал

JTAG fuse check mode
MSP430 devices that have the fuse on the TDI terminal have a fuse check mode that tests the continuity of the
fuse the first time the JTAG port is accessed after a power-on reset (POR). When activated, a fuse check current,
I TF , of 1 mA at 3 V, 2.5 mA at 5 V can flow from the TDI pin to ground if the fuse is not burned. Care must be
taken to avoid accidentally activating the fuse check mode and increasing overall system power consumption.
Activation of the fuse check mode occurs with the first negative edge on the TMS pin after power up or if the
TMS is being held low during power up. The second positive edge on the TMS pin deactivates the fuse check
mode. After deactivation, the fuse check mode remains inactive until another POR occurs. After each POR the
fuse check mode has the potential to be activated.
The fuse check current will only flow when the fuse check mode is active and the TMS pin is in a low state (see
Figure 18). Therefore, the additional current flow can be prevented by holding the TMS pin high (default
condition).
d7d1cd
Цитата(digital @ Aug 20 2015, 12:22) *
все вышеперчисленное меняеться от времени и температуры, но если запрос уникальности, формирование образа, прошивки и проверки делать автоматически и быстро, то за столь короткое время не успеет измениться.

Прошивка должна будет "всю жизнь" проверять эти параметры. А так как они могут измениться, то и работа прекратится.
digital
Цитата(d7d1cd @ Aug 20 2015, 12:26) *
Прошивка должна будет "всю жизнь" проверять эти параметры. А так как они могут измениться, то и работа прекратится.


нет, только однократно при старте

если нужен серийный номер для дальнейшей работы, то его можно сформировать (случайнный, последовательный и хэш) при старте и передать программатору , ну и сохранить у себя
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.