-
- Какое связывание символов, ты о чем? Связывание сделает линкер.
Модули у ТС самодостаточные, не имеют импортов/экспортов. LightElf(127 знак., 15.09.2020 13:23 - 13:54)
- модули могут получать доступ к функциям основной логики через
таблицу указателей размещенную по прибитому адресу! С этим не
должно быть проблем! - Aleksey_75(15.09.2020 13:27)
- Не надо прибивать адреса. Верней надо, но ровно один адрес одной функции. Нужно лишь сделать самодельный недо-COM. Где эта одна функция в зависимости от аргументов реализует несколько функций, вроде получения версии, получения интерфейса по заданным параметрам. Предполагается что компонент (библиотека) может реализовать несколько интерфейсов. А интерфейс -- это структура из набора указателей на функции. Т.е. загружаешь библиотеку, зовёшь единственную функцию и говоришь ей fk0(17590 знак., 16.09.2020 04:46, ссылка)
- Может быть, логичнее вообще подгружаемые модули сделать в виде
интерпретируемых скриптов. - SciFi(15.09.2020 13:35)
- два варианта модулей именно так и сделаны, оформлены в виде массива
структур, основная логика их разбирает и делает то что нужно, у
меня эти модули собирает даже не arm компилер а CVI. Но эти модули
достаточно примитивны, отсутствует математика. С третим вариантом
все сложнее все сложнее, там полноценные функции с математикой и
прочим! Я думал об этом, но это надо писать свой интерпретатор по
сути свой язык придумывать ))) пока отказался! Если есть готовое
нечто похожее с Aleksey_75(24 знак., 15.09.2020 13:56)
- Pawn SciFi(76 знак., 15.09.2020 14:09, ссылка)
- Мне кажется, что это не совсем решение. Код ВМ вы запустите, но он
же не сфероконь в вакууме: нужно куда-то выдавать результат,
какие-то функции нативного кода дёргать из ВМ, что в свою очередь
потребует знать адреса этих функций, переменных, и т.п. Dingo(76 знак., 16.09.2020 10:25)
- Вы не в теме. Там вакуумом и не пахнет, можно вызывать функции в ту
и в другую сторону, с передачей данных трудностей тоже нет. - SciFi(16.09.2020 10:52)
- Откуда вакуум? "ВМ" - виртуальная машина, у автора - abstarct
machine. Проблема не в вызове функций, а в том, что вызываемые
вновь добавленые должны быть position independed. Если идут с
обновлённой версией прошивки. То есть от чего уходили к тому и
вернулись. Pawn можно применить, но только если новых функций на
нативном машинном коде добавляться не будет. Dingo(361 знак., 16.09.2020 11:46)
- Он уже пояснял. Речь о том, что весь код в память не лезет, а не о том, что "обновлять по частям" >>> - SciFi(16.09.2020 12:05, ссылка)
- Откуда вакуум? "ВМ" - виртуальная машина, у автора - abstarct
machine. Проблема не в вызове функций, а в том, что вызываемые
вновь добавленые должны быть position independed. Если идут с
обновлённой версией прошивки. То есть от чего уходили к тому и
вернулись. Pawn можно применить, но только если новых функций на
нативном машинном коде добавляться не будет. Dingo(361 знак., 16.09.2020 11:46)
- Вы не в теме. Там вакуумом и не пахнет, можно вызывать функции в ту
и в другую сторону, с передачей данных трудностей тоже нет. - SciFi(16.09.2020 10:52)
- спасибо! гляну! - Aleksey_75(15.09.2020 14:14)
- Мне кажется, что это не совсем решение. Код ВМ вы запустите, но он
же не сфероконь в вакууме: нужно куда-то выдавать результат,
какие-то функции нативного кода дёргать из ВМ, что в свою очередь
потребует знать адреса этих функций, переменных, и т.п. Dingo(76 знак., 16.09.2020 10:25)
- Pawn SciFi(76 знак., 15.09.2020 14:09, ссылка)
- два варианта модулей именно так и сделаны, оформлены в виде массива
структур, основная логика их разбирает и делает то что нужно, у
меня эти модули собирает даже не arm компилер а CVI. Но эти модули
достаточно примитивны, отсутствует математика. С третим вариантом
все сложнее все сложнее, там полноценные функции с математикой и
прочим! Я думал об этом, но это надо писать свой интерпретатор по
сути свой язык придумывать ))) пока отказался! Если есть готовое
нечто похожее с Aleksey_75(24 знак., 15.09.2020 13:56)
- модули могут получать доступ к функциям основной логики через
таблицу указателей размещенную по прибитому адресу! С этим не
должно быть проблем! - Aleksey_75(15.09.2020 13:27)
- Какое связывание символов, ты о чем? Связывание сделает линкер.
Модули у ТС самодостаточные, не имеют импортов/экспортов. LightElf(127 знак., 15.09.2020 13:23 - 13:54)