[so2] [Tema 2] Problemă write

Paul Olaru olarupaulstelian97 at gmail.com
Sun Apr 5 18:02:24 EEST 2020


Ai încercat ordinea:

* Înregistrezi handler, dacă n-ai făcut-o în module_init
* Activezi întrerupere, dacă n-ai făcut-o în module_init
* Atomic, verifici: dacă nu e busy primul octet îl scrii în hardware pe TX
direct. Folosești același spinlock ca în întrerupere și faci cu irq sau
irqsave ca să eviți deadlock
* Pe urmă lași întreruperile să muncească.

On Sun, Apr 5, 2020, 17:54 Andreea Mitran via so2 <so2 at cursuri.cs.pub.ro>
wrote:

> Din ce am citit pe listele de discuții din anii anteriori, întreruperea TX
> trebuie activată din nou, atunci când se efectuează write din user space.
>
> Deși fac acest lucru și handler-ul întreruperii este chemat, bitul
> corespunzător din IIR care să îmi spună că hardware-ul are de citit date
> scrise din user space este 0. Am afișat valoarea registrului IIR în
> întrerupere și aceasta este destul de bizară față de valoarea pe care o are
> la testele corespunzătoare pentru read.
>
> La testul 3, am passed pentru operația de read, însă la testul 4,
> programul se blochează, întrucât eu în handler-ul de întrerupere verific
> valoarea bitului corespunzător întreruperii pentru a stabili că trebuie să
> trimit date la hardware, care este 0.
>
> Știți cumva care ar putea fi problema?
>
> Mulțumesc,
> Andreea
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20200405/91937e36/attachment.html>


More information about the so2 mailing list