Как стать автором
Обновить

Комментарии 5

Хвалёная американская свобода.
Круто, не спорю. Использование ASM'а оправдано (чтобы выжать всю производительность (ставим радиаторы на ATTiny 5)).
Но хотелось бы подобное на С/C++ заценить, если это возможно.
Ухх чую я минусов нахватаю...
ASM нужен здесь не только для того, чтобы «выжать всю производительность», но и для формирования точных временных задержек. Как иначе можно генерировать видеосигнал, если там пиксельная частота может составлять десяток мегагерц? Никакие таймеры не помогут. Задержки формируются путём подсчёта количества машинных команд, выполненных между изменением уровня сигнала на портах ввода-вывода. Благо, кэша нет, операционки нет, прерывания можно запретить или заранее знать, когда они придут. Поэтому каждая команда исполняется за фиксированное время.

Поэтому я думаю, что для подобных проектов вообще нет смысла рассматривать C/C++. Если сильно захотеть — можно, наверное, и на C такое написать, но это будет что-то вроде обратного перевода с ассемблера на си, и борьба с оптимизациями компилятора, постоянно сверяясь с ассемблерным листингом. Проще уж сразу на ассемблере написать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории