-
- Спасибо за пример. Вдруг заблокируют или "протухнет", кладу
картинку: Nikolay_Po(1 знак., 25.03.2026 12:57, картинка)
- Для, примера, пожалуй, стоило оптимизацию выключить. Тогда таблицу
указателей видно в коде. При раздельной компиляции библиотеки
компилятор её не выкинет, конечно же. - VladislavS.(25.03.2026 13:05)
- А не возникнет ли проблем, если библиотека сделана одним
компилятором, а приложение другим? И даже при использовании одного
компилятора не может ли измениться соглашение о вызовах при
изменении уровня оптимизации? - AlexBi(25.03.2026 23:01)
- Когда земля была чуть тёплая, Atmel в процессоре AT91RM9200 официально предоставлял набор библиотечных функций, которые можно было из прошивки дёргать. Про совместимость они вот так писили. В принципе, это как раз то что ТС хочет сделать. Там в даташите хорошо расписано как это работает. VladislavS.(1 знак., 26.03.2026 12:29, картинка)
- Зависит от многого. На ARM относительно стабильный ABI, изменения
были достаточно давно (с повсеместным внедрением плавучки произошёл
переход на hard float). Помнится на Coldfire в свое время
фрискейловцы изменили в какой-то момент раскладку параметров пр
регистрам, что, пмсм, стало одним из факторов окончания колдфайров.
Обычно в таких случаях добавляют какую-то прагму или атрибут для
указания "эту функцию надо вызывать по-старому". - LightElf(25.03.2026 23:52)
- Для АРМов вроде как есть какой-то стандарт, правда я не понял как
там решен вопрос передачи структур. Но для RISC-ов и MIPS-ов я не
видел такого. - AlexBi(26.03.2026 00:09)
- Для MIPS есть вот такое: LightElf(13 знак., 26.03.2026 14:50, ссылка, ссылка)
- Для АРМов вроде как есть какой-то стандарт, правда я не понял как
там решен вопрос передачи структур. Но для RISC-ов и MIPS-ов я не
видел такого. - AlexBi(26.03.2026 00:09)
- почему-то кажется, что для самого подгружаемого придется добавить
опцию position-independent code, и таки где-то положить трамплин(ы) - Vit(25.03.2026 15:43)
- Зачем PIC, если известно где во flash будет лежать код библиотеки? - VladislavS.(25.03.2026 16:13)
- во-первых, загружаемый, и почему вдруг во flash? во-вторых, даже с элементарным + (и
прочим из системной либы) возникает вопрос насчёт как такое этот
код будет доставать - хорошо ещё, если при PIC подлинкует к себе.
ну и в-третьих, вопрос инициализации для подгружаемого кода - где
тот стартап - тут решать по месту. ну или смотреть варианты с
окучиванием elf (F9), RPC (в т.ч. eRPC), интерпретаторами. КМК,
могут буть интересны решения взаимодействия 2-х ядер (а-ля Vit(10 знак., 25.03.2026 21:31, ссылка, ссылка)
- Мне кажется вы всё перевернули с ног на голову. Библиотека одна
прибита во флэш, а приложения подгружаемые. - VladislavS.(25.03.2026 22:51)
- может быть. попробовал перечитать - и так выворачивается;) - Vit(25.03.2026 23:01)
- Мне кажется вы всё перевернули с ног на голову. Библиотека одна
прибита во флэш, а приложения подгружаемые. - VladislavS.(25.03.2026 22:51)
- во-первых, загружаемый, и почему вдруг во flash? во-вторых, даже с элементарным + (и
прочим из системной либы) возникает вопрос насчёт как такое этот
код будет доставать - хорошо ещё, если при PIC подлинкует к себе.
ну и в-третьих, вопрос инициализации для подгружаемого кода - где
тот стартап - тут решать по месту. ну или смотреть варианты с
окучиванием elf (F9), RPC (в т.ч. eRPC), интерпретаторами. КМК,
могут буть интересны решения взаимодействия 2-х ядер (а-ля Vit(10 знак., 25.03.2026 21:31, ссылка, ссылка)
- Зачем PIC, если известно где во flash будет лежать код библиотеки? - VladislavS.(25.03.2026 16:13)
- А не возникнет ли проблем, если библиотека сделана одним
компилятором, а приложение другим? И даже при использовании одного
компилятора не может ли измениться соглашение о вызовах при
изменении уровня оптимизации? - AlexBi(25.03.2026 23:01)
- Для, примера, пожалуй, стоило оптимизацию выключить. Тогда таблицу
указателей видно в коде. При раздельной компиляции библиотеки
компилятор её не выкинет, конечно же. - VladislavS.(25.03.2026 13:05)
- Спасибо за пример. Вдруг заблокируют или "протухнет", кладу
картинку: Nikolay_Po(1 знак., 25.03.2026 12:57, картинка)