[pso] Tema 2 Linux - probleme handler intrupere

Daniel Baluta daniel.baluta at gmail.com
Sat Apr 4 15:11:25 EEST 2009


2009/4/4 ovidiu popa <ov.popa at gmail.com>:
> Pai cred ca exista o problema cu ce zici tu. In tema se specifica
> urmatoarele chestii :
>
> Driverul trebuie să folosească înteruperi atât pentru recepţie cât şi pentru
> transmisie, pentru a reduce latenţa şi timpul de utilizare a procesorului.
> De asemenea, apelurile read şi write trebuie să fie blocante. Temele care nu
> respectă aceste cerinţe nu se iau în considerare.
>
> Din ce inteleg eu de aici, outb-urile trebuie date in handlerul de
> intrerupere. Am incercat sa dau outb-urile in write si intr-adevar merge.
> Dar nu cred ca solutia este una acceptabila deoarece in handler nu se face
> transmisia de date, doar receptia.
>
> Cum as putea din write sa generez o intrerupere pentru a intra in hadler si
> sa trimit datele de aici?

Nu generezi din write nici o intrerupere. In write doar va trebui sa
iei date din userspace si sa le pui in bufferul
de write. Atat!
Daca ti-ai configurat bine registrii intreruperea de write se
genereaza singura cand exista loc de scris in bufferul controllerului
de seriala.

Astfel , in rutina de tratare a intreruperii citesti datele din
bufferul completat in rutina de write si le scrii in bufferul
controllerului de seriala.


More information about the pso mailing list