On Sep 21, 2008, at 11:58 PM, Byron Jeff wrote: >> I think adding a bootloader to the equation can make it more >> difficult for >> the students to understand what's going on. >> > Student 2: "Now from what you've explained, you can either use an > external > programmer to program the board, or with some chips they can program > themselves and be directly connected to my laptop." > > Teacher: "That's right. The second one is called a bootloader. It's a > program that's loaded into the chip so that the chip can program > itself > unassisted. Then you don't need the external programmer after > loading the > bootloader." The "interference with understanding" introduced by the bootloader isn't with respect to understanding how the bootloader WORKS, so much as understanding how the bootloader interferes with other important microcontroller concepts like basic initialization, interrupt vectors, and available memory space. "Normally you'd put a jump to your code at the reset vector and state saving code plus a jump at the interrupt vector, but the bootloader uses those, so instead you must..." "Well, yes it SAYS there are 16k of memory starting at 0x0, but the bootload takes up XXX so your programs have to start at YYY..." Now, you CAN teach an entire microcontroller programming class, and even have an entire career in embedded software development, without ever dealing with such issues other than in some sort of abstracted form (just like you CAN mostly avoid assembly language.) But I wouldn't want to argue with anyone who considers such low-level issues one of the IMPORTANT aspects of MICROCONTROLLER programming (vs "desktop" or similar.) BillW -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist