simulavr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Simulavr-devel] IRQ Table changes


From: Theodore A. Roth
Subject: Re: [Simulavr-devel] IRQ Table changes
Date: Wed, 15 Oct 2003 11:47:34 -0700 (PDT)


On Wed, 15 Oct 2003, Keith Gudger wrote:

> Ted:
>
> I implemented your changes, and they compile and (so far) check out OK.
>
> I was going to change the following message to give me the converted irq
> info:
>
>     avr_message( "Raising irq # %d\n", irq );
>
> when I noticed that you had changed the data passed to irq_list_add:
>
>     core->irq_pending = irq_list_add( core->irq_pending,
>                                       &core->irq_vtable[irq] );
>
> I noticed, however, that the data passed to irq_list_delete did not
> change:
>
>     core->irq_pending = irq_list_delete( core->irq_pending, irq );
>
> Was this on purpose?  Am I missing something?

I think you're missing something. ;-) I didn't change the irq_raise()
function at all. This is the only change I made to avrcore.c
yesterday:

  
http://savannah.nongnu.org/cgi-bin/viewcvs/simulavr/simulavr/src/avrcore.c.diff?r1=1.68&r2=1.69

Essentially, the core still stores an array of IntVect. The new
IntVectTable structure is only used to simplify initialization
of the static vector tables. The assumption here is that the structure
and the array look exactly the same once then are in memory. So in the
end, it's a hack that makes the init conceptually cleaner at the cost
of a slight obfuscation of the underlying irq delivery mechanism (the
cast when installing the selected array into the core).

>
> Anyway, if you could suggest a good way to get the avr_message to tell me
> more information (the irq + converted irq) it would be great.  Thanks.

Like the attached patch?

Ted Roth

Attachment: sim-irq-info.diff
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]