Алексей Мусин (27.12.2005 11:52, просмотров: 1) ответил Iwan на Почему разочаровывать? Я не очаровывался. Даже сам писал.
Потому что в асме это стандартизовано? :) Чем вам не нравится подход в разделении проекта на 2 части:
target и indep.
Мы даже в target части пишем на Си. Да, для другой платформы надо переписывать файлы в target, но это всяко меньше половины проекта, т.к. основная функциональность - в indep.
Ну и пример напоследок.
Коллега написал "драйвер": 2 UART'а, реализованных на capture/compare фукнциях 2 таймеров на асме.
Код безумно красив (один большой макрос и 2 вызова, натравливающих макрос на каждый таймер), хорошо документирован и использует аппаратные фичи ядра (резервирование 2 банков регистров, речь про F2MC-16LX).
Все это можно было написать на Си, с оверхедом на хранение переменных FSM.
Но в один прекрасный момент производитель добавил фичу - добавил еще один тип calling conventions. До этого параметры передавались через стек, а теперь можно и через регистры, что убыстряет программу.
Напиши коллега "драйвер" на Си, мы бы просто перекомпилировали его и все. Сейчас же надо отводить время на его доводку под новое оглашение о вызовах.