Драйвер устройства Linux: поток данных в единый регистр

Я пытаюсь как можно быстрее передать часть данных в один аппаратный регистр и был бы признателен за некоторые советы. То есть записывать каждое слово данных в регистр последовательно.

Я представляю потоковую передачу данных путем перенаправления в файл устройства: data.bin > /dev/stream_df0

Я знаю, что это расплывчато, но я впервые делаю что-то подобное и буду признателен за все, что вы мне бросите:

? Какие соображения я должен принять во внимание, прежде чем приступить к этому проекту, чтобы сделать это как можно быстрее?

? Будет ли драйвер символьного устройства хорошо обрабатывать потоковую передачу/подходить для этой задачи?

? Является ли то, как я это делаю, совершенно неэффективным/непрактичным?

Заранее спасибо.


person user2162449    schedule 22.08.2013    source источник
comment
Драйвер символьного устройства кажется подходящим, да :) Фактическая механика прерывания / DMA самого низкого уровня, которая фактически загружает аппаратные средства FIFO, зависит от устройства / архитектуры. Если вы впервые применяете такой драйвер, желаю вам удачи :)   -  person Martin James    schedule 22.08.2013


Ответы (1)


Если вы имеете в виду, что хотите сделать что-то вроде этого:

for(i=0;i<N;i++) { outp(data[i],port_number); }

Я бы попытался сделать это, используя инструкции ассемблера "rep outsb/outsw/outsd".

person Martin Rosenau    schedule 22.08.2013
comment
О, это вряд ли будет НАСТОЛЬКО легко ;( - person Martin James; 23.08.2013