Skip to main content
Post Closed as "Duplicate" by old_timer, Asmyldof, Bimpelrekkie, Olin Lathrop microcontroller

From my understanding, for a common microcontroller (e.g. AVR, PIC), there are generally 2two methods of programming its flash memory.

  1. Using a programmer: In Circuit Serial ProgrammingIn-Circuit Serial Programming (or some variant?)
  2. Some form of a bootloader, to which an external device communicates,ultimately ultimately allowing the microcontroller to flash its own memory.

Certainly there must be a very good reason to use a bootloader, else its current widespread use would be very odd. I just haven't seemed to have fully grasped it yet.

Is it that a programmer is expensive? But then, there are Arduinos (Atmega micros) which can function as programmersArduinos (ATmega microcontroller) which can function as programmers. Is the cost of 1one extra IC enough to warrant the use of a bootloader? If I'm not mistaken, the latest Arduinos get rid of the FTDI chip altogether, replacing it with an AtmegaATmega processor that does the USB to serial interfacing. Surely it would be possible to integrate the programmer's function on this IC for instance?

Or take for example, the PIC microcontroller. There is something I've seen called the JDM programmer. If something like this, with virtually no active components, can program a PIC then,

  1. Why use a bootloader at all?
  2. What is the purpose of the relatively much more complex PICkit PICkit (aside from robustness)? debuggingDebugging capability?

From my understanding, for a common microcontroller (e.g. AVR, PIC), there are generally 2 methods of programming its flash memory.

  1. Using a programmer: In Circuit Serial Programming (or some variant?)
  2. Some form of a bootloader, to which an external device communicates,ultimately allowing the microcontroller to flash its own memory

Certainly there must be a very good reason to use a bootloader, else its current widespread use would be very odd. I just haven't seemed to have fully grasped it yet.

Is it that a programmer is expensive? But then, there are Arduinos (Atmega micros) which can function as programmers. Is the cost of 1 extra IC enough to warrant the use of a bootloader? If I'm not mistaken, the latest Arduinos get rid of the FTDI chip altogether, replacing it with an Atmega processor that does the USB to serial interfacing. Surely it would be possible to integrate the programmer's function on this IC for instance?

Or take for example, the PIC microcontroller. There is something I've seen called the JDM programmer. If something like this, with virtually no active components, can program a PIC then,

  1. Why use a bootloader at all?
  2. What is the purpose of the relatively much more complex PICkit (aside from robustness)? debugging capability?

From my understanding, for a common microcontroller (e.g. AVR, PIC), there are generally two methods of programming its flash memory.

  1. Using a programmer: In-Circuit Serial Programming (or some variant?)
  2. Some form of a bootloader, to which an external device communicates, ultimately allowing the microcontroller to flash its own memory.

Certainly there must be a very good reason to use a bootloader, else its current widespread use would be very odd. I just haven't seemed to have fully grasped it yet.

Is it that a programmer is expensive? But then, there are Arduinos (ATmega microcontroller) which can function as programmers. Is the cost of one extra IC enough to warrant the use of a bootloader? If I'm not mistaken, the latest Arduinos get rid of the FTDI chip altogether, replacing it with an ATmega processor that does the USB to serial interfacing. Surely it would be possible to integrate the programmer's function on this IC for instance?

Or take for example, the PIC microcontroller. There is something I've seen called the JDM programmer. If something like this, with virtually no active components, can program a PIC then,

  1. Why use a bootloader at all?
  2. What is the purpose of the relatively much more complex PICkit (aside from robustness)? Debugging capability?
Tweeted twitter.com/StackElectronix/status/721027379146190849
edited title
Link
midnightBlue
  • 1.8k
  • 4
  • 21
  • 37

What is the purpose of a microcontroller bootloader?

remove arduino from title, since people here will find it distracting
Link
Dave Tweed
  • 178.3k
  • 17
  • 242
  • 418

What is the purpose of an Arduinoa bootloader?

Source Link
midnightBlue
  • 1.8k
  • 4
  • 21
  • 37
Loading