EmbeddedRelated.com
Forums

USB programming bootloader

Started by CeDeROM January 19, 2008
Hello!

I have read about many great bootloaders that users of this group have
created. I will have to use or write my own bootloader that will allow
to make firmware upgrade via USB. Is there any open standard of such
protocol, to program via USB? Maybe someone have this bootloader
already written, or documents how it works?

Greetings!
Tomek

--
CeDeROM, http://www.tomek.cedro.info

An Engineer's Guide to the LPC2100 Series

On Jan 19, 2008 4:43 PM, CeDeROM wrote:
> Hello!
>
> I have read about many great bootloaders that users of this group have
> created. I will have to use or write my own bootloader that will allow
> to make firmware upgrade via USB. Is there any open standard of such
> protocol, to program via USB? Maybe someone have this bootloader
> already written, or documents how it works?

DFU (Device Firmware Upgrade) is the USB class for this kind of thing.
http://www.usb.org/developers/devclass_docs/DFU_1.1.pdf

ST has DFU examples (firmware, driver and software) for
STM32 and STR7/9.
http://www.st.com/mcu/familiesdocs-110.html

There are examples for Atmel ARM7 as well.
http://wiki.openpcd.org/index.php/Firmware

But Microsoft does not support it within Windows, so it is not
really an advantage unless you can use the above-mentioned
host driver according to their licenses.

You can always use other USB class, like CDC or vendor
specific class.

Google finds this one for LPC2000 which is based on lpcusb.
http://cvs.savannah.gnu.org/viewvc/paparazzi/paparazzi3/sw/airborne/arm7/test/bootloader/
Xiaofan
http://mcuee.blogspot.com
On Jan 20, 2008 5:32 AM, Michael Anton wrote:
>
> Take a look here: http://www.tnkernel.com/usb_fw_upgrader.html
> I use this, and it works well, except for the issue of the trial
> driver code that times out after 4 hours. But, this just means you
> need to reboot a couple of times a day.

>From the description, it seems that you can use libusb-win32 and
rewrite the bootloader PC application using libsub-win32 device
driver and API. You may be able to make it work under Linux
with libusb as well.

libusb-win32:
http://libusb-win32.sourceforge.net/

libusb:
http://libusb.sourceforge.net/
Xiaofan
http://mcuee.blogspot.com
> -----Original Message-----
> From: l...
> [mailto:l...]On Behalf
> Of CeDeROM
> Sent: Saturday, January 19, 2008 1:44 AM
> To: l...
> Subject: [lpc2000] USB programming bootloader
> Hello!
>
> I have read about many great bootloaders that users of this group have
> created. I will have to use or write my own bootloader that will allow
> to make firmware upgrade via USB. Is there any open standard of such
> protocol, to program via USB? Maybe someone have this bootloader
> already written, or documents how it works?
>
> Greetings!
> Tomek
>

Take a look here: http://www.tnkernel.com/usb_fw_upgrader.html
I use this, and it works well, except for the issue of the trial
driver code that times out after 4 hours. But, this just means you
need to reboot a couple of times a day.

Mike
--- In l..., "Xiaofan Chen" wrote:
> Xiaofan
> http://mcuee.blogspot.com

Grest thank You for all information Xiao! :) I will share my results,
it should be about march-april time...
Greetings!
Tomek