Ну .... Відповіді цікавляться, але залежать від того, що JuanV має на увазі, коли він каже "розділені модулі" ...
Для мене, як "старий таймер програмного забезпечення", "розділені модулі" означають, що я будую центральний блок коду ("гайка") та модуль завантаження користувача, які автоматично "підключені" до гайок, розширюючи цю функцію.
Трохи схоже на драйвер принтера, який ви додаєте до своєї системи, і який додає функцію для всього програмного забезпечення.
Коли я дивлюся на мої минулі дед, використовуючи це, я повинен визнати, що у мене є деякі проблеми, які думають про це на Arduino.
Якщо ви шукаєте, то потрібно подумати про різні проблеми:
1) як оновити? Може бути, програма для Android отримає код з Інтернету та надсилає ці дані на Arduino через Bluetooth. Ви також можете подумати про додавання інтерфейсу Wi-Fi на Arduino
2) де зберігати новий шматочок коду ... Здається, ви можете писати на флеш "на льоту", але, здається, складно
Через цю другу точку, може бути, найпростіший спосіб полягає в тому, щоб створити колонтитулу, яка буде "інтерпретувати" дані (такими, які читають якийсь невеликий скрипт), а потім вам потрібно буде просто відправити дані.
Я пропоную поглянути на ЧПУ з Arduino. У більшості випадків вони використовують інтерпретатор GCode. GCode - це дескриптна програма для машини з ЧПУ. Тому інтерпретатор прочитати код і відповідно до коду, відправляти "замовлення" на машину.
Може бути, така річ буде гарною відправною точкою.
З іншого боку, якщо те, що ви називаєте "модульним підходом", є лише способом побудови lib і повторного їх використання, то відповідь лорда Гонка - це шлях :)