Yesterday I started my latest contract work, based on the new DB101 board from Atmel I reviewed here previously. It’s my first time programming the board; my interactions with it until now have been restricted to using the default firmware’s terminal mode as a micro-debugging terminal.
I have to say, Atmel’s done a good job with the code. The widget library has a few eccentricities that I had to track down and fix (you can select the title of a dialog with the cursor, for instance) and new features to add (non-selectable spacers when blank strings are passed to a choice menu) but it’s been pretty usable. My only gripe is that it doesn’t seem possible (or at least easy) to display icons or pictures simultaneously with forms — the two are incompatible using the Atmel widget/form/image libraries and will require some hacking on my part.
I’m back to working on the MyUSB Mass Storage Host code, the last demo I have planned for the library at the moment. I fixed some issues with the host samples and the library that was causing unforgivingly standards compliant devices issues (I’m looking at you, Toshiba USB memory stick!). That means I can now get the same behavior with two different memory sticks of mine, rather than seperate behaviors. It still doesn’t work mind, but I’m getting closer with each code edit and debug session.
Also changed in the library, is that the API for sending, checking and receiving data in both endpoints and pipes has been changed over. Previously it was all done by the In_Clear/Out_Clear/etc type macros, which worked for both control requests and normal IN/OUT requests, but wasted flash memory. Now they are seperate Setup_In_Clear/Setup_Out_Clear/etc and FIFOCON_Clear macros which means smaller code usage, and more technically-correct code.
December 20th, 2007 at 2:59 pm
I saw your list of USB classes, really impressive!
Is there any changes to add some kid of Ethernet over USB? something that work in win and os x… also I have been looking for an USB-TM class… but so far not luck at all!