Я хотел бы создать программное обеспечение, где некоторые функции (или блоки) могут быть запрограммированы позже на моем микроконтроллере без необходимости перепрограммировать все программное обеспечение снова (флэш-память будет выполняться через интерфейс связи, например, SPI).Все новые блоки будут иметь один и тот же API (например, 5 байтов в качестве аргументов, возвращенный 1 байт).
Архитектура памяти будет организована, как показано на этом рисунке: Block architcuture .
В настоящее время я не вижу проблем, если я использую только локальные переменные в своих новых функциях, потому что переменные будут помещены в стек и не будут инициализированы в сегменте .bss.Но если я захочу добавить статическую переменную в свою функцию, у меня возникнут некоторые проблемы, потому что код запуска не инициализирует эту переменную в сегменте .bss (или .data).
Мой вопрос: возможно ли это событие для реализации подобной архитектуры в коде C?Если да, как я могу адаптировать мой код запуска для инициализации моих новых переменных?Как вы думаете, C ++ более уместен для подобных вещей?
Большое спасибо!