Giving up on the ARM/Keil MDK

I now have a flat-spot on my head from beating it against the wall that is the ARM/Keil Microcontroller Development Kit (MDK), so I am taking the hint and I’m abandoning it. The MDK has a pretty nice IDE, an extensive library, and lots of samples, but the samples are all pretty much identical, just ported to different boards and CPUs. The library while powerful (supporting HID, Mass Storage, Audio (out), CDC (serial), and supposedly
vendor-specific classes), is woefully incomplete in that it does not support USB
isochronous IN transactions (data going from the device to the host), and the support in the framework is almost completely absent for vendor-specific – beyond allowing you to specify that your device implements vendor-specific commands and then requiring you to supply a vendor.h file. Nowhere in the documentation is there information on what you need to provide if you select the vendor-specific  class, nor are there any examples.

I sent questions to ARM technical support, but thus far, I have not heard back from them. I also submitted questions to NXP’s technical support, and did receive some responses, but one didn’t provide any more detail than what is provided in the marketing documentation, and the other (regarding vendor-class) claimed to have a .C file attached showing the usage, but there was no attachment. I requested the attachment and they responded very quickly; however the attachment was just a new version of usbcore.c (for use with IAR) with support for the vendor –specific device class, but again, nothing on how to use it. Sigh.

I have gone back to the IAR IDE even though it is less sophisticated than the MDK, and what do you know? There is a sample that does isochronous IN transactions. Somehow I had missed or forgotten this example. IAR provides a framework that is similar to that of the MDK, but it is a bit easier to follow. My next post will cover getting my firmware more-or-less running using the IAR tools.


About Brian Catlin

Brian has been an engineering consultant and trainer for more than 25 years, and travels the world teaching Windows internals, device drivers, and forensics. Before entering the Windows world, Brian designed command centers for the DoD, major aerospace companies, and NASA's Jet Propulsion Laboratory. Having grown tired of living in the People's Republic of California, Brian and his family moved to Hawaii in 2009.
This entry was posted in Olimex LPC-P1343 and tagged , , . Bookmark the permalink.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s