Цитата(Yura_K @ May 5 2006, 22:18)

Но у компиляторов не слишком мощная оптимизация и все равно приходится использовать asm-е вставки. Во-вторых, использование библиотек готовых функций (возможна и для asm-а, и для C). В-третьих, возникли мысли о некой прослойке (интерфейсе) между функц. узлами uC и программой, так чтобы написание как повторяющегося кода, так и нового свести к возможному минимуму. Также возможно использование некой RTOS. Ваши мысли по сабжу?
Насчет возможностей оптимизации в компиляторах, я думаю, Вы несколько заблуждаетесь. Ручная оптимизация кода, сгенерированного компилятором, позволит сократить программу примерно на 10%, не более. Все зависит от того, как именно написана программа. Использование ассемблерных вставок практического эффекта не дает, поскольку эти вставки ограничивают возможности компилятора оптимизировать программу. Если все же требуется "выжать" из программы десяток байт или пяток микросекунд, то тогда лучше написать соответствующую функцию целиком на ассемблере и выделить ее в отдельный модуль.
Насчет библиотек функций Вы правильно заметили. Именно использование библиотечных функций и дает возможность ускорить разработку программы. Возможно странслировать интерфейсные функции и также поместить их в библиотеку. Кстати, здесь возможности ассемблера (+ линкера) гораздо шире, чем у компилятора. Ассемблер позволяет определять глобальные символы на уровне порта или даже бита, без необходимости использования заголовочных файлов. Странслировав такой модуль один раз и поместив его в библиотеку, далее можно просто про него забыть. Единственно, что нужно будет потом сделать, это присвоить портам или битам конкретные значения, которые могут изменяться от проекта к проекту.
Использование RTOS тоже способствует ускорению создания программ, поскольку программа разбивается на ряд задач, работающих под управлением такой RTOS. В этом случае добавление или изменение какой-то функции может рассматриваться как добавление еще одной задачи или модификация существующей, без переработки заново всей программы в целом. Только нужно помнить, что работа самой RTOS требует дополнительных ресурсов, как по времени, так и по памяти.