USB Bootloader / Self-Flash capabilities?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USB Bootloader / Self-Flash capabilities?

1,468 Views
jbd
Contributor I

I'm currently working on a product based on a PIC32 and would like to migrate to a K20 Kinetis processor.  The product connects to a PC as a USB device and occassionally receives firmware updates from the PC where the data is sent to the PIC32 and the PIC32 re-flashes itself.  It's a USB bootloader where the bootload happens after delivery to the customer.

 

Can something similar be accomplished with the K20?  Are there any existing code examples to do this?  Some comments in the forum seemed to indicate that self-flashing is a difficult process...

 

Thanks,

JD

0 Kudos
3 Replies

758 Views
mjbcswitzerland
Specialist V

JD

 

The Kinetis has normal/good self-programming capabilities but doesn't have such things in ROM as some processors do.

 

You can see a USB boot loader (also supports SREC UART loading) here: http://www.youtube.com/watch?v=H4TYM9jY2-g

 

Regards

 

Mark

 

0 Kudos

758 Views
jbd
Contributor I

Thanks Mark.

 

Just to clarify, is that USB bootloader a part of uTasking or just a demo application built upon uTasking?  Is the source code included with uTasking?

 

Cheers,

Jonathan

0 Kudos

758 Views
mjbcswitzerland
Specialist V

Jonathan

 

The uTasker project consists of three 'out-of-the-box' projects:

- a "bare-minimum" boot loader which doesn't include any communication capabilities of its own but can do safe updates (tolerates power cycles during the process and is optionally encrypted) from intermedate storage space (very small code and works together with the application for the firmware update).

- a serial loader (UART SREC based and/or USB-MSD - can be configured for one of these or both). This is documented here: http://www.utasker.com/docs/uTasker/uTaskerSerialLoader.PDF

- a demo project which includes all functionality (USB, TCP/IP with FTP, Telnet, Web server, Email, file system, LCD/TFT, (optional MODBUS), parameter system, various interfaces for I2C, SPI devices, UART command line menu, etc.) That is, it is used as a configurable project base (all is configurable in two include files: a main file for major settings like which servers and protocols are available in the project and a hardware one to fine tune for the processor type used - eg. which peripherals are to be supported and whether they use should DMA or interupt and such). Usually one begins with this and configures the options to best suit the project in hand and then one adds his/her own new application modules to suit the final project/product. The demo project supports operation with the "bare-minumum" boot loader [eg. for uploading new firmware via web Ethernet, USB, etc.] and has a target configuration to be uploaded itself or with the serial loader installed.

 

That means that the USB-MSD loader is a standard part of the uTasker project.

 

The project includes complete source code and IDE configurations for CW10.1, IAR6, uVision4, Rowley Crossworks 2.1 and GCC (for Kinetis). It also works on the Coldfire V2 family (CW10.1, IAR, CW6/7, GCC) which means that V2 projects can be run on the Kinetis and Kinetis project can be run on V2  (pin mapping/ports will need to be redefined to suit alternative hardware of course but the compatible Hardware Abstraction Layer allows transfers between processors to be made with little effort; as long as the needed peripherals exist in the alternative chip).

 

This is also true for 'foreign' devices; projects developed for various other devices can be moved from that 'foreign' one to a Freescale one with the same ease (these include ATMEL SAM family, AVR32 family, LPC2xxx and LPC17xx families, STM32 family, TI Stellaris family). The uTasker project doesn't support the PIC32 since this is a relatively new device and the Kinetis development was chosen in preference due to the large existing Coldfire V2 project base, where the Kinetis represents the ideal migration route to Cortex M4.

 

Regards

 

Mark

 

 

 

0 Kudos