Lexey (Guest) |
|
|
Изучал скорость работы. Ножку вверх, потом пустой цикл while(i--), ножку вниз, цикл.
В асме этот цикл три команды, пять тактов, т.е. получал на ножке 2 КГц, при цикле в 10000, это как раз 25 нс на один проход цикла 1+1+3 (200 МГц).
Вопрос вот в чем, если с выполнением в SRAM все понятно, то в SDRAM это выполняется с такой же скоростью, а не в два раза медленнее. Получается, что проц забрал в кэш этот цикл, хотя я его не просил ? |
|
|
|
|
|
starterkit (Guest) |
|
|
Значит, он Вас не спросил :) ... |
|
|
|
|
|
Lexey (Guest) |
|
|
Вот ведь, какой он умный. :)
Другими словами - это нормальное его поведение. |
|
|
|
|
|
starterkit (Guest) |
|
|
Если самому кеши не отключать, так и будет.
Не знаю, в контексте ОСи, можно ли вообще самовольно включать/выключать кеши ... |
|
|
|
|
|
igor1 (Guest) |
|
|
Можно узнать, если в linux написал программу дрожание вывода 2-3 МГц (максимум), а под внешним модулем будет быстрее??? Дайте совет, где лучше! |
|
|
|
|
|
starterkit (Guest) |
|
|
Не понял, что значит "под внешним модулем"? |
|
|
|
|
|
igor1 (Guest) |
|
|
Ну т.е. обычный gpio.ko модуль. Скорость дёргание ноги сколько? |
|
|
|
|
|
starterkit (Guest) |
|
|
Ну а сейчас Вы развен не чрез драйвер "ногой дрыгаете"?
То что драйвер модулем подключен или в ядро влинкован особой разницы нет.
Не уверен, но может быть быстрее получится если не через драйвер обращение делать а создать новые системные вызовы.
Сам я подобных экспериментов не ставил.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно starterkit 31.01.2009 г. в 19:06:48 |
|
|
|
|
|
igor1 (Guest) |
|
|
Дело в том, что обычная программа на Linux работает не более 2-3МГц (управление напрямую к регистрам). Хотелось использовать ещё быстрее, надо около 20Мгц. |
|
|
|
|
|
|