(At last) I finally found the main source of GUI problems...

What happened was rather stupid. The USB mouse sometimes sent two
events in the same word (i.e. a motion + a button event) and with the
previous code, only one of these events went through. This created
inconsistencies (for example, a mouse button pressed twice without
being released in between) that Genode FX really did not like.

QEMU only sends one event per word, which is why the problem did not
manifest itself within it. This led me to believe it was an hardware
problem... but it was merely a small software bug and a huge and
frustrating time wastage.

There were also some crashes in the beginning that I haven't been able
to reproduce, I think they are gone with the later improvements that I
made to SDRAM timing (afaik Michael hasn't been able to crash
Flickernoise on the latest SoC either, even with the event handling
bug...)

So, the Flickernoise GUI is becoming usable on the board now :)

Next steps:
* write RTEMS drivers (graphics acceleration, audio)
* port the renderer
* fix USB bugs, some still remain... by the way, I'll need to observe
  the waveforms generated by the transmitter FPGA core as I believe they
  are sometimes wrong. Since I don't have access to a memory scope, has
  anyone already reverse engineered the protocol used by the Beagle USB
  12 analyzer? What that device does is just sample the sniffed USB
  signals at 48MHz and send that to the host, but it uses some
  compression (based on RLE it seems) that I don't fully understand
  yet. The (sucky) "bit level" API using the blob from Total Phase
  doesn't let you see packets with a broken sync word, which is pretty
  stupid especially when your transmitter appears to have sync word
  problems like mine.

S.
_______________________________________________
http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org
IRC: #milkym...@freenode
Twitter: www.twitter.com/milkymistvj

Reply via email to