Перейти к содержанию
    

Основная программа со сменными модулями

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно встроить в ядро программы виртуальную машину или скриптовой движок, который будет выполнять скрипты верхнего уровня.

Сам мечтаю такое сделать, да всё пока руки не доходят.

Другой вариант - использовать bootloader собственной конструкции, можно с шифрованием, чтобы прошивку не открывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Архитектура какая?
Пока Мега128, но с перспективой на LPC2368

 

Все варианты хороши. Какой проще? Такой вероятно надежней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ИМХО проще с бутлоадером и шифрованной прошивкой...

Надежней в плане криптостойкости/секретности или безглючность?

Когда прошивка целиком(шифрованная) вы целиком её и отлаживаете, так что может оказаться, что это будет надежнее, чем скрипт-машина и различные скрипты, которые могут составлять причудливые сочетания.... возможно не всегда 100% протестированные и надёжные...хотя как знать, если их будет не много - то такой подход даст даже бОльшую гибкость...

Решать Вам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не совсем точно описал задачу. Дело в том, что клиент саи скачивает с сайта то, что ему сейчас нужно и сам с помощью специальной программы на ПК подключает к головной программе. Одновременно подключенных модулей не много будет 16-32 примерно. Ну совем для понимания полного представим себе кнопку на головном блоке. По нажатию или печатается что-то или включается лампочка или еще что, не суть. Суть в том, что реакцию на нажатие кнопки и будет проделывать подключаемый клиентом обработчик. Где-то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне больше нравится идея MrYuran - скрипты. Есть набор функций на все случаи жизни. Ну, как API в Windows. Они описаны, но как они реализованы - тайна. Из них составляется то, что нужно для конкретной задачи. Этот список и загружается в контроллер.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот это я почти попробовал, даже немного исходник поправил, у меня ошибка вываливалась при компиляции в Dev-С.

Это до предела урезанная и упрощённая форт-машина, которая исполняет байт-код пользователя, зашитый внутрь или загружаемый извне.

Примитивы определяются и компилируются на си, а байт-код представляет собой цепочку номеров этих примитивов.

Но, рутина засосала...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне больше нравится идея MrYuran - скрипты. Есть набор функций на все случаи жизни. Ну, как API в Windows. Они описаны, но как они реализованы - тайна. Из них составляется то, что нужно для конкретной задачи. Этот список и загружается в контроллер.

У меня есть статья еще от 2002 (кажется) о форт процессорах. Так вот англичане загружали в микроконтроллер интерпритатор Форта. А саму программу на форте можно было загружать откуда угодно... Но это будет несколько медленно исполняться. Гораздо проще, если клиент формирует задачу, Вы ее компилите у себя "дома" или на сервере. И клиенту отдаете уже зашифрованный бинарник...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гораздо проще, если клиент формирует задачу, Вы ее компилите у себя "дома" или на сервере. И клиенту отдаете уже зашифрованный бинарник...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня есть статья еще от 2002 (кажется) о форт процессорах. Так вот англичане загружали в микроконтроллер интерпритатор Форта. А саму программу на форте можно было загружать откуда угодно... Но это будет несколько медленно исполняться.

Медленно - понятие относительное.

Если большинство слов скомпилировано заранее на си, а форт-машина только оперирует этими большими кусками программы, то особого замедления не будет. Разве что на ARM, с их глубоким конвейером, частые переходы противопоказаны. Да и то не особо заметно будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...