(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
