skyled 0 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба По сути задачи поясняю, что в устройстве на МК предполагается постоянное наличие "главной" программы, обладающей основным функционалом и управляет набором периферийных устройств. При этом стоит задача чтобы клиент мог на свой выбор в зависимости от того какое ему угодного поведения управляемых периферийных устройств скачивать с сайта соответствующий файлик и с помощью программы на ПК "заливать" нужные ему файлики в "головной модуль" на место ненужных или в дополнение к имеющимся. Оно бы может можно было заливать прошивку целиком, но нельзя ее давать, поскольку интеллектуальная собственность и секрет произвродства. Как лучше реализовать такой подход? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 21 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба Можно встроить в ядро программы виртуальную машину или скриптовой движок, который будет выполнять скрипты верхнего уровня. Сам мечтаю такое сделать, да всё пока руки не доходят. Другой вариант - использовать bootloader собственной конструкции, можно с шифрованием, чтобы прошивку не открывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaG 0 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба Архитектура какая? Если фоннейман, то может получится через указатели на функции? Те основная программа заливает бинарник в определенное место и запускает код на исполнение (ес-но подгружаемый код должен быть слинкован с учетом этого) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skyled 0 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба Архитектура какая?Пока Мега128, но с перспективой на LPC2368 Все варианты хороши. Какой проще? Такой вероятно надежней. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба ИМХО проще с бутлоадером и шифрованной прошивкой... Надежней в плане криптостойкости/секретности или безглючность? Когда прошивка целиком(шифрованная) вы целиком её и отлаживаете, так что может оказаться, что это будет надежнее, чем скрипт-машина и различные скрипты, которые могут составлять причудливые сочетания.... возможно не всегда 100% протестированные и надёжные...хотя как знать, если их будет не много - то такой подход даст даже бОльшую гибкость... Решать Вам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skyled 0 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба Я не совсем точно описал задачу. Дело в том, что клиент саи скачивает с сайта то, что ему сейчас нужно и сам с помощью специальной программы на ПК подключает к головной программе. Одновременно подключенных модулей не много будет 16-32 примерно. Ну совем для понимания полного представим себе кнопку на головном блоке. По нажатию или печатается что-то или включается лампочка или еще что, не суть. Суть в том, что реакцию на нажатие кнопки и будет проделывать подключаемый клиентом обработчик. Где-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба Мне больше нравится идея MrYuran - скрипты. Есть набор функций на все случаи жизни. Ну, как API в Windows. Они описаны, но как они реализованы - тайна. Из них составляется то, что нужно для конкретной задачи. Этот список и загружается в контроллер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 21 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба Вот это я почти попробовал, даже немного исходник поправил, у меня ошибка вываливалась при компиляции в Dev-С. Это до предела урезанная и упрощённая форт-машина, которая исполняет байт-код пользователя, зашитый внутрь или загружаемый извне. Примитивы определяются и компилируются на си, а байт-код представляет собой цепочку номеров этих примитивов. Но, рутина засосала... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба Мне больше нравится идея MrYuran - скрипты. Есть набор функций на все случаи жизни. Ну, как API в Windows. Они описаны, но как они реализованы - тайна. Из них составляется то, что нужно для конкретной задачи. Этот список и загружается в контроллер. У меня есть статья еще от 2002 (кажется) о форт процессорах. Так вот англичане загружали в микроконтроллер интерпритатор Форта. А саму программу на форте можно было загружать откуда угодно... Но это будет несколько медленно исполняться. Гораздо проще, если клиент формирует задачу, Вы ее компилите у себя "дома" или на сервере. И клиенту отдаете уже зашифрованный бинарник... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба Гораздо проще, если клиент формирует задачу, Вы ее компилите у себя "дома" или на сервере. И клиенту отдаете уже зашифрованный бинарник... Это не проще, а выгоднее, если за каждую программу брать с клиента деньги. А если - сдал, получил свое, и забыл, то интерпретатор предпочтительнее. А потом, и сам интерпретатор можно модернизировать, добавлять и совершенствовать функции. И за новую версию уже брать мзду на законных основаниях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 21 27 июля, 2010 Опубликовано 27 июля, 2010 · Жалоба У меня есть статья еще от 2002 (кажется) о форт процессорах. Так вот англичане загружали в микроконтроллер интерпритатор Форта. А саму программу на форте можно было загружать откуда угодно... Но это будет несколько медленно исполняться. Медленно - понятие относительное. Если большинство слов скомпилировано заранее на си, а форт-машина только оперирует этими большими кусками программы, то особого замедления не будет. Разве что на ARM, с их глубоким конвейером, частые переходы противопоказаны. Да и то не особо заметно будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться