For a new company project, one requirement was a bootloader that allowed USB connection with drag/drop of a text file (easy to transfer by email/etc); I found AN4379 but that seemed to be quite old and not suitable for the K22F Kinetis processor we had chosen.
I therefore wrote my own, slightly based on / inspired by AN4379; I started from the MSD RAMDISK example to give a USB framework, and then integrated code to provide the USB drag/drop feature.
I have an "archive" zip file but I'm not sure if it's ok to submit the finished code here ... I've attached one file which is the "heart" of the code, that processes incoming USB data packets to parse the S19 file and write it to processor flash memory.