Jump to content

    

Виртуальная машина

21 minutes ago, demiurg_spb said:

Мы подобное даже на AVR делали. Так что по поводу ресурсов не переживайте - там генерируется Си-код

Если я правильно понял, это же обычное обновление ПО?!

Share this post


Link to post
Share on other sites

Да. И что? Вся прошивка заливается заново всякий раз как пользователь что-то изменил в алгоритме.

Неизменный лишь bootloader. Это оптимально для маленьких контроллеров: никаких виртуальных машин и интерпретаторов.

Share this post


Link to post
Share on other sites
1 minute ago, demiurg_spb said:

И что?

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

*Под ПО понимаю только прикладное ПО.

Share this post


Link to post
Share on other sites

Решать всё равно Вам, я лишь предложил пройденный нами путь.

Share this post


Link to post
Share on other sites
2 minutes ago, demiurg_spb said:

Решать всё равно Вам, я лишь предложил пройденный нами путь.

Тут вопрос в другом: либо форум глючит, либо вы дописываете сообщения) Потому, что я отвечаю на одно сообщение. А спустя некоторое время появляется его вторая часть, и смысл меняется(

Вот и сейчас, появилась эта строка

16 minutes ago, demiurg_spb said:

Неизменный лишь bootloader. Это оптимально для маленьких контроллеров: никаких виртуальных машин и интерпретаторов.

А это меняет смысл поста. Теперь бы я ответил так: да оптимально. Но есть некоторые требования, я их уже озвучил. Также не нравится, что пользователю нужно иметь прилинковываемую либу с фреймворком. Да и LPC1768 не такой уж маленький. 

Share this post


Link to post
Share on other sites
7 часов назад, haker_fox сказал:

А какой язык использовали для написания программы?

Компилятор из С4. Программа для МК написана под ИАРовский компилятор. Скрипт писал в той-же ИАРовской ИДЕ, чтоб подсветка синтаксиса и скобок была:biggrin:

54 минуты назад, demiurg_spb сказал:

А пользователю конечному гораздо удобнее работать с такими изделиями стандартными средствами (языки МЭК 61131-3), а не Си и т.п....

Смотря каким пользователям. Многим гораздо логичнее написать несколько строк на Си-подобном макроязыке, чем изучать всю эту вотчину АСУТПшников...

Share this post


Link to post
Share on other sites

Да. Я дописал сообщение, но не меняя его смыла.

А что страшного в передаче пользователю библиотеки для линковки проекта?

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

Да шансы есть. Тогда можно сделать двухуровневый загрузчик и вынести туда ту часть которую вы хотите сокрыть.

Всегда есть варианты...

Share this post


Link to post
Share on other sites
32 минуты назад, demiurg_spb сказал:

Вся прошивка заливается заново всякий раз как пользователь что-то изменил в алгоритме.

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

3 минуты назад, demiurg_spb сказал:

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

А почему вы считаете, что нет? Были попытки и не раз... Конкурентов хватает..

Edited by mantech

Share this post


Link to post
Share on other sites

Пересобирать ВЕСЬ проект не надо. Надо лишь пересобрать ТОЛКО пользовательскую часть и СЛИНКОВАТЬ с библиотекой (она не в исходных кодах...)

Share this post


Link to post
Share on other sites
5 минут назад, demiurg_spb сказал:

Да шансы есть. Тогда можно сделать двухуровневый загрузчик и вынести туда ту часть которую вы хотите сокрыть.

Всегда есть варианты...

Конечно есть, почему и решил вопрос с вирт. машиной, ибо это проще в доработках ПО, (маленький файл скрипта, где все понятно и видно сразу) и даже клиент может что-то под себя подправить, потом скомпилить одним файлом, без установки непонятных ему ИДЕ и пр... По-моему неплохо...

Share this post


Link to post
Share on other sites
11 minutes ago, demiurg_spb said:

Вашу интеллектуальную собственность?

Точно нет. ПРичины я уже озвучил. Нужна именно "динамеческая" возможность запускать "экзешники". Т.е. один, два, пять. И делать это оперативно: вставил карту с память, и запустил. Залил по фтп, и запустил. Ну да, в случыае заливки - напоминает загрузчик. Ах да, и ещё одна причина - сегодня контрооллер на cortex-m3, завтра на mc68000. Прикладное ПО не должно быть аппаратно зависимым.

11 minutes ago, demiurg_spb said:

Тогда можно сделать двухуровневый загрузчик и вынести туда ту часть которую вы хотите сокрыть.

Да, верно. Этот вариант я тоже предлагал в стартовом сообщении.

8 minutes ago, mantech said:

В вашем случае нужно при любом изменении алгоритма пересобирать весь проект

Если сделать библиотеку, то не нужно)

 

Share this post


Link to post
Share on other sites
11 minutes ago, mantech said:

Конкурентов хватает..

 

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

Share this post


Link to post
Share on other sites
7 hours ago, haker_fox said:

Меня тут тревожит, наверно, не столько даже новый язык, сколько перспектива вычистки интерпретатора и портирования его под IAR.

Спасибо, действительно быстро. Вопрос, на сколько качественно?)

да сама Lua написана на С и собрирается вообще каким угодно компилятором, так что портировать там особо нечего, плавующая арифметика заменяется на целочисленную просто дефайном препроцессора, также можно просто отрезать парсер (google: lua noparse.c), оставив в МК только ВМ. что делать с stdio описано тут https://habr.com/ru/post/459602/ 

можно ещё поглядеть на патчи от eLua, но оно вроде как в около 5.1 затормозилось и в нынешнее 5.3 и 5.4 просто так думаю не перетащить. с другой стороны разницы для простого скрипта между 5.1 и 5.4 практически никакой.

но LPC1768 там вполне поддерживается http://www.eluaproject.net/overview/status, и есть библиотеки для периферии

Share this post


Link to post
Share on other sites
12 минут назад, demiurg_spb сказал:

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now