>>>>> "Werner" == Werner Almesberger <[email protected]> writes:

> So far, when using DMA, all the 640x480 modes suffered from what I
> call FIFO jitter, where many lines are shifted by 10-20 pixels,
> similar to the artefacts shown here:

[..]

> As one can see, there is still considerable jitter in the range of a
> few pixels. I suspected that this was caused by the low accuracy of my
> timer polling loop: the timer runs at about 112 MHz but we can only
> poll it with approximately 10 MHz.

Hi Werner,

I wonder whether having a high-priority timer interrupt would help here?
Already thought about hooking into interrupts on the NanoNote.  Might
work like in the MS-DOS days.  Just read out the current value of the
IRQ in the vector table, replace it by our own IRQ routine, and make our
IRQ routine (selectively?) tail-jump to the original IRQ.

After a short glance at Linux memory mapping basics, I think we might
get away with putting our IRQ routine into a of physical memory, using
then the corresponding kernel logical address of the IRQ vector table!?
Where kernel logical address maybe equals the physical address?

Would help if the service routine where 100% position-independant code.
But that should be possible.  Just use only relative jumps (BGTZ etc.).
PC-relative references are a little tricky (since PC cannot be read),
but doing a 'BGEZAL #4' captures PC in $31 ($ra).

just my $0.02

cheers,

David
-- 
GnuPG public key: http://user.cs.tu-berlin.de/~dvdkhlng/dk.gpg
Fingerprint: B17A DC95 D293 657B 4205  D016 7DEF 5323 C174 7D40

Attachment: pgp22Oz7mbTzQ.pgp
Description: PGP signature

_______________________________________________
Qi Hardware Discussion List
Mail to list (members only): [email protected]
Subscribe or Unsubscribe: 
http://lists.en.qi-hardware.com/mailman/listinfo/discussion

Reply via email to