-
- Операцией вызова ассемблерной функции :-) - SciFi(05.02.2012 22:49)
- Тоже вариант. Для одного и того же компилятора будет постоянное время. Но переносимость между компиляторами... Да и надо там что-то делать. Опять же - лучше всего писать в порт... - Юрий_СВ(05.02.2012 23:05)
- Вот так должно быть переносимо - Dmitry_D(78 знак., 06.02.2012 01:30)
- Задержка в несколько тактов с переносимостью между компиляторами? Оригинально. - SciFi(05.02.2012 23:14)
- А что удивительного ? Ядро одно, частота одно. Команды ассемблера указаны буквально. Если бы не разный синтаксис и особенности передачи параметров и работы со стеком - вполне реально. - Юрий_СВ(05.02.2012 23:17)
- Это всё от лукавого. Когда счёт пошёл на такты, Си не катит, нужен ассемблер. - SciFi(05.02.2012 23:19)
- Вдвойне от лукавого, и ассемблер может не помочь для современных МК, где кеши, акселераторы и им подобное. Даже на STM32F1хх за счет буфера предвыборки задержки на командах переходов будут зависеть от адреса перехода и на какие команды выполняется sbb(14 знак., 06.02.2012 16:51)
- это если ещё не упоминать про то, что с ARM вообще не имеет смысла такты считать - koyodza(05.02.2012 23:27)
- Это всё от лукавого. Когда счёт пошёл на такты, Си не катит, нужен ассемблер. - SciFi(05.02.2012 23:19)
- А что удивительного ? Ядро одно, частота одно. Команды ассемблера указаны буквально. Если бы не разный синтаксис и особенности передачи параметров и работы со стеком - вполне реально. - Юрий_СВ(05.02.2012 23:17)
- Тоже вариант. Для одного и того же компилятора будет постоянное время. Но переносимость между компиляторами... Да и надо там что-то делать. Опять же - лучше всего писать в порт... - Юрий_СВ(05.02.2012 23:05)
- "Запись в порт" -- не операция C. Кроме того, именно обращение к портам может притормозить выполнение на неизвестно сколько (зависит от архитектуры) и иногда достаточно много (пример: обращение к LPT-порту на 3ГГц пеньтиуме...) В общем случае fk0(155 знак., 05.02.2012 21:16)
- :)) Это на АВР таие фокусы проходят. Здесь же НОП только для выравнивания "NOP is not necessarily a time-consuming NOP. The processor might remove it from the pipeline before it reaches the execution stage." - Юрий_СВ(05.02.2012 21:21)
- Зато компилятор cycles-- уже не выкинет в силу того, что (asm volatile...) И как минимум 2*cycles задержка будет. - fk0(05.02.2012 21:32)
- по идее, не будет ни одного - Юрий_СВ(05.02.2012 21:41)
- Зато компилятор cycles-- уже не выкинет в силу того, что (asm volatile...) И как минимум 2*cycles задержка будет. - fk0(05.02.2012 21:32)
- :)) Это на АВР таие фокусы проходят. Здесь же НОП только для выравнивания "NOP is not necessarily a time-consuming NOP. The processor might remove it from the pipeline before it reaches the execution stage." - Юрий_СВ(05.02.2012 21:21)
- Чем использование счетчика циклов ядра не устраивает? - she(05.02.2012 21:14)
- Операцией вызова ассемблерной функции :-) - SciFi(05.02.2012 22:49)