В котуинке ассемблер дает доступ к любому желанию (адресное пространство и независимая компиляция программ, каждого модуля в свою область с последующим использованием взаимных ресурсов)...
К примеру функционал из биоса может быть использован любой из подгружаемых программ для расширения нужд той подгружаемой программы...
А вот как такой же вариант под СИ и в АВРках провернуть?
Да еще и под адуриньим СИ, в коем листинг по умолчанию не делается (есть возможность только hex файл для загрузки из программатора получить)...
Собственно...
Делается базовая программа ввода/вывода, индикации и собственного загрузчика определенной области свободного ПЗУ ("биос")...
Далее отдельно компилируется прикладная программа, которая может использовать часть функционала того "биоса" в своих нуждах. Но размещение этой прикладной программки должно быть выполнено в области "свободного ПЗУ" МК (загрузчиком "биоса")...
Как бы вот такое под СИ (тем более ардуино-варианте) исполнить?
1. Нужно получить адреса конкретного размещения функций в "биос" МК для их дальнейшего использования в модуле прикладной программы (желательно без опоры на листинг).
2. как при компиляции прикладной программы задать конкретный начальный адрес размещения кода?
И третье - а как быть с ОЗУ, чтоб области, используемые "биос" и прикладной программой не "наехали" друг на друга?
(программы пишутся и компилируются РАЗДЕЛЬНО друг от друга)
Это же СИ, а не ассемблер, в котором "все просто решается"...
(работу встроенного в "биос" загрузчика пока не трогаем)
Вобшчемсс... Как то такие глуповопросы лениво посещают...


