А вообще Вы не правы Для того, чтобы можно было хорошо "утоптать" в мелкий контоллер, оно должно быть продумано:
* разбиение на модули
* оптимизация потока данных между модулями
* оптимизация взаимодействия модулей между собой
* даже пространство имен и то надо как следует продумать, чтобы потом было легче с исходниками разбираться.
Изначальный каркас приложения (судя по описаниям и по мнению многих людей) куда приятнее продумывать на Ch, чем JTAG'ить его на реальной железяке (или даже на симуляторе).
Разумеется, все не предусмотришь, и этап "железного утаптывания" никуда не денется (не говоря уже о дровах - тут без JTAG вообще сложно!), но при хорошо продуманном каркасе приложения утаптывать его куда проще, чем профайлить хреново структурированый код.
Собственно, моя идея с "мега репозиторием" кода основана на послойной разработке:
По мере перехода от алгоритма к железяке целевой код обрастает подробностями (ОСь, железо). И если в начале пути Ch самое то, но в конце только C код под целевую платформу.
Но если воспользоваться Cog
http://www.nedbatc …code/cog/index_ru.html
то процесс "обрастания" можно сделать контролируемым, можно в какой-то момент откатить назад, и начать выращивать "новую ветвь" под новый процессор (условно).
Понятно, что идеал не достижим, но планомерно пути по этому пути IMHO полезно.