0:00 - Administrivia
1:10 - Plan for today’s lecture
5:20 - What is a bootloader?
7:10 - What is our custom boot loader going to do?
9:00 - How will this information be presented?
10:45 - Linker modifications
14:00 - Generating the hex file
16:10 - Understanding the hex file
21:40 - Features of the RP2040 flash memory
26:40 - Bootloader state machine
30:50 - Branching to an application
34:10 - Detecting valid programs, and returning to the bootloader from programs
36:00 - Forcing the system into bootloader mode
39:00 - Detecting valid programs
44:00 - A Python script for reprogramming via the custom bootloader
44:40 - Making this wireless via UART
45:10 - Augmenting this bootloader such that it becomes a worm
48:00 - Symptom of compiling for the wrong board
48:40 - Signing up for final demos
Spring, 2025 lectures from ECE 4760 (Digital Systems Design Using Microcontroller) at Cornell University.
Course site: https://ece4760.github.io
Hunter’s site: https://vanhunteradams.com