maple-bootloader
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