maple-bootloader icon indicating copy to clipboard operation
maple-bootloader copied to clipboard

Bootloader firmware for the Maple ARM Cortex-M3 development board from LeafLabs

FILES -------------------------------------------------------------------------

stm32lib/*

  • all the (possibly consolidated) stm32 lib and usb example code

usb.c

  • USB-specific hardware setup. Interrupts, clocks, etc. handling USB when not "Attached". some low-level callbacks (low power mode, init, reset, resume, etc).

usb_callbacks.c

  • aka endpoints: handling data transfer when "Configured". calls out to application specific callbacks (i.e. DFU).

usb_descriptor.c

  • aka application descriptor; big static struct and callbacks for sending the descriptor.

main.c

  • main loop and calling any hardware init stuff. timing hacks for EEPROM writes not to block usb interrupts. logic to handle 2 second timeout then jump to user code.

hardware.c

  • init routines to setup clocks, interrupts, also destructor functions. does not include USB stuff. EEPROM read/write functions.

dfu.c

  • mostly the giant FSM case switch, also some USB endpoint callbacks

TODO --------------------------------------------------------------------------

  • pack the structs
  • use sizeof() for usb application descriptor once structs are packed