Только что пришёл в голову физическо-извращенческий метод)
Суть в том, что после программирования МК мы просто под корень обрезаем одну/все ножки программирования, т.е SCK/MISO/MOSI. Лучше использовать МК без бутлоадера, тогда не надо будет корябать UART. А хардварный SPI не такая уж и большая потеря)
Желающим прятать свой код подкину идейку: как известно, через JTAG и/или SPI можно перепрограммировать фьюзы и соответственно считать/перепрошить МК. Поступаем просто: эти ноги в проге используем "на выход", задействуя сразу по включению .. всё. :)
как известно, через JTAG и/или SPI можно перепрограммировать фьюзы и соответственно считать/перепрошить МК. Поступаем просто: эти ноги в проге используем "на выход", задействуя сразу по включению .. всё. :)
нда... как всё оказывается просто - в "проге" нужно ноги на выход... и всё - JTAG и/или SPI аппаратный интерфейс работать перестанет.
Для надежности можно ещё скомпилять так, чтобы бутлоадер не "включался", а сразу шел старт с нуловего адреса программы. Что-то мешает? :)
ок. объясню, что мешает:
контроллеру - аппаратное устройство: где нулевых адресов несколько - область загрузчика и область прикладной программы, где пины во время чтения/прошивки флеша конфигурируются аппаратно и никакая прога не может повлиять на их состояние.
Клапауций 322, так яж и отписал: закрыть возможность второго нулевого адреса при старте - делается настройкой фьюзов. Фсё, нет нулевого адреса загрузчика. А чтобы "запустить" прошивку, надо подключиться к JTAG или SPI .. как вам это "удастся" в пропаянной плате, где эти ноги запаяны как выхода с навесным железом? Мы жеж о "встроенном" МК, не? :)
Оставляем "прошивку" только через UART, для контролируемых обновлений, встраивая переход на загрузчик в скетч .. и фсё.
Клапауций 322, так яж и отписал: закрыть возможность второго нулевого адреса при старте - делается настройкой фьюзов. Фсё, нет нулевого адреса загрузчика.
при каком "старте"?
перевод МК в режим программирования происходит так:
после этого никакие "проги" ниоткуда не запускаются.
Arhat109-2 пишет:
А чтобы "запустить" прошивку, надо подключиться к JTAG или SPI .. как вам это "удастся" в пропаянной плате, где эти ноги запаяны как выхода с навесным железом? Мы жеж о "встроенном" МК, не? :)
запаяны, как что? у взломщика, так понимаю, должны руки из жопы расти...
Arhat109-2 пишет:
Оставляем "прошивку" только через UART, для контролируемых обновлений, встраивая переход на загрузчик в скетч .. и фсё.
ну, вот - плату залили ебоксидкой, покрыли тремя слоями брони, ноги запаяны как выхода, SPI и JTAG недоступен вследствие рукожопости взломщика... и, тут вот оно счатье - UART! заливай/сливай - счастье есть, его не может не быть.
и, как же заливать обновления, если ты загрузчик утилизировал в целях безопасности?
==============
Arhat109-2, прекращай убеждать меня и форумчан в собственной безграмотности.
Q. Can I build a commercial product based on Arduino?
A. Yes, with the following conditions:
Physically embedding an Arduino board inside a commercial product does not require you to disclose or open-source any information about its design.
Deriving the design of a commercial product from the Eagle files for an Arduino board requires you to release the modified files under the same Creative Commons Attribution Share-Alike license. You may manufacture and sell the resulting product.
Using the Arduino core and libraries for the firmware of a commercial product does not require you to release the source code for the firmware. The LGPL does, however, require you to make available object files that allow for the relinking of the firmware against updated versions of the Arduino core and libraries. Any modifications to the core and libraries must be released under the LGPL.
The source code for the Arduino environment is covered by the GPL, which requires any modifications to be open-sourced under the same license. It does not prevent the sale of derivative software or its inclusion in commercial products.
-------------
Но вот что за ботва с "object files"? Типа при обновлении библиотеки заказчик побежит перекомпилировать и перезаливать прошивку? ) Но формальное требование есть.
А где их там ардуино сохраняет при компиляции?
Только что пришёл в голову физическо-извращенческий метод)
Суть в том, что после программирования МК мы просто под корень обрезаем одну/все ножки программирования, т.е SCK/MISO/MOSI. Лучше использовать МК без бутлоадера, тогда не надо будет корябать UART. А хардварный SPI не такая уж и большая потеря)
А хардварный SPI не такая уж и большая потеря)
Особливо на Tiny85, где кроме него всего два пина остаются :)
Желающим прятать свой код подкину идейку: как известно, через JTAG и/или SPI можно перепрограммировать фьюзы и соответственно считать/перепрошить МК. Поступаем просто: эти ноги в проге используем "на выход", задействуя сразу по включению .. всё. :)
как известно, через JTAG и/или SPI можно перепрограммировать фьюзы и соответственно считать/перепрошить МК. Поступаем просто: эти ноги в проге используем "на выход", задействуя сразу по включению .. всё. :)
нда... как всё оказывается просто - в "проге" нужно ноги на выход... и всё - JTAG и/или SPI аппаратный интерфейс работать перестанет.
Для надежности можно ещё скомпилять так, чтобы бутлоадер не "включался", а сразу шел старт с нуловего адреса программы. Что-то мешает? :)
Для надежности можно ещё скомпилять так, чтобы бутлоадер не "включался", а сразу шел старт с нуловего адреса программы. Что-то мешает? :)
ок. объясню, что мешает:
контроллеру - аппаратное устройство: где нулевых адресов несколько - область загрузчика и область прикладной программы, где пины во время чтения/прошивки флеша конфигурируются аппаратно и никакая прога не может повлиять на их состояние.
тебе - обычная безграмотность.
ты вроде читал http://arduino.ru/forum/programmirovanie/kak-ispolnit-svoi-kod-do-initsi... но нихрена не понял по причине, указанной мной выше.
ЕвгенийП, ну д, проблемка)
Клапауций 322, так яж и отписал: закрыть возможность второго нулевого адреса при старте - делается настройкой фьюзов. Фсё, нет нулевого адреса загрузчика. А чтобы "запустить" прошивку, надо подключиться к JTAG или SPI .. как вам это "удастся" в пропаянной плате, где эти ноги запаяны как выхода с навесным железом? Мы жеж о "встроенном" МК, не? :)
Оставляем "прошивку" только через UART, для контролируемых обновлений, встраивая переход на загрузчик в скетч .. и фсё.
Клапауций 322, так яж и отписал: закрыть возможность второго нулевого адреса при старте - делается настройкой фьюзов. Фсё, нет нулевого адреса загрузчика.
при каком "старте"?
перевод МК в режим программирования происходит так:
после этого никакие "проги" ниоткуда не запускаются.
А чтобы "запустить" прошивку, надо подключиться к JTAG или SPI .. как вам это "удастся" в пропаянной плате, где эти ноги запаяны как выхода с навесным железом? Мы жеж о "встроенном" МК, не? :)
запаяны, как что? у взломщика, так понимаю, должны руки из жопы расти...
Оставляем "прошивку" только через UART, для контролируемых обновлений, встраивая переход на загрузчик в скетч .. и фсё.
ну, вот - плату залили ебоксидкой, покрыли тремя слоями брони, ноги запаяны как выхода, SPI и JTAG недоступен вследствие рукожопости взломщика... и, тут вот оно счатье - UART! заливай/сливай - счастье есть, его не может не быть.
и, как же заливать обновления, если ты загрузчик утилизировал в целях безопасности?
==============
Arhat109-2, прекращай убеждать меня и форумчан в собственной безграмотности.
Я уже однажды отписывал свое мнение к вопросу "как защитить от недобросовестного покупателя" .. ДОГОВОРОМ. Это стеб, если до вас ещё не дошло. :)
Знаю как защитить код ! Если кому интересно то первый этап это строить свое устройство по схеме
http://www.terminal-kom.ru/index.php/proektatmel
Данная схема дает возможность удаленного программирования Вашего устройства.
Второй этап это создание программы загрузчика со связью с вашим сайтом.
По вот такому типу http://www.shop.terminal-kom.ru/exe/Project1.exe
В устройство зашивается индивидуальное UID. Также зашивается загрузчик с возможностью разшифрования получаемых файлов.
Страница с передаваемым кодом как пример http://www.shop.terminal-kom.ru/ код открыт.
Ну и третий этап это размещение демо версий и версий ограниченного срока действия на Вашем сайте в свободном доступе.
Ну и доступ к загрузке зарегистрированным пользователсям. Вот и вся бизнес модель.
щитаю, что озолотишься... если у пейсателей скейчей деньги когда-то появятся в обозримом прошлом.
Опоздал лет на 10 :)))
Q. Can I build a commercial product based on Arduino?
A. Yes, with the following conditions:
-------------
Но вот что за ботва с "object files"? Типа при обновлении библиотеки заказчик побежит перекомпилировать и перезаливать прошивку? ) Но формальное требование есть.
А где их там ардуино сохраняет при компиляции?
(https://www.arduino.cc/en/Main/FAQ)