[so2] [Tema 2] Problemă write

Andreea Mitran andreea.mitran10 at gmail.com
Sun Apr 5 20:47:09 EEST 2020


Am încercat, problema este că atunci când se ajunge în handler pentru
întreruperea TX, valoarea registrului IIR este 193, ceea ce nu pare deloc
în regulă.

On Sun, Apr 5, 2020 at 6:02 PM Paul Olaru <olarupaulstelian97 at gmail.com>
wrote:

> 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/0f3c363d/attachment.html>


More information about the so2 mailing list