Skip to content

leaflabs/maple-bootloader

Repository files navigation

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