Цитата
Сорри за нескромный вопрос. Для чего Вы хотите смешать C++ с asm? Ведь от этого только переносимость и читаемость кода пострадает. Выигрышь в производительности весьма сомнительный.
Согласен, совместимость и читабельность ухудьшается, а выигрыш довольно большой. Даже если взять текуший отлаженный, вылизанный ассемблерный код и перевести его на С/С++ диву даешься, что компилятор вытваряет, сердце кровью обливается. Я тут такты экономлю, а он такой код раздувает.
Задача, каторую я решаю - это протокол на основе RS485 интерфейса работающий на скорости 115200.
Это давольно умный протокол в катором все устройства являются главными и могут говорить в любой момент кому угодно. Для таких возможностей появляется необходимость выявления занятости линии и определения кализий на линии. Каждый контроллер должен успевать, по приему каждого байта, определять кому, от кого летит пакет, подсчитывать контрольную сумму и так далее.
А теперь представим, что у главного контроллера есть два таких интерфейса, и по обоим летят пакеты и все это нужно успеть при тактовой чистоте 14МГц. При старой организации на С, в самых сложных случаях (когда контроллер передает в оба интерфейса одновременно, а значит и принимает для определения кализий) это занимало 2/3 процессорного времени, а сейчас 1/3. Объем кода снижен с 5К до 2К, а для atmega8 это существенно.
Я могу ВСЁ, вопрос, сколько времени у меня это займет.