microcontrollers:microcontroller_development_notes
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
microcontrollers:microcontroller_development_notes [2012/01/11 22:39] – [Simulation] mithat | microcontrollers:microcontroller_development_notes [2012/09/17 22:01] – mithat | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Microcontroller development notes ====== | ====== Microcontroller development notes ====== | ||
- | :!: //Caution: This page is under development and is deeply clouded by the author' | + | :!: //Caution: This page is under development and is deeply clouded by the author' |
Establishing a working microcontroller development setup involves two major areas: | Establishing a working microcontroller development setup involves two major areas: | ||
Line 13: | Line 13: | ||
The software tools installed on the host system (i.e., the //host toolchain// | The software tools installed on the host system (i.e., the //host toolchain// | ||
* an assembler | * an assembler | ||
- | * a compiler | ||
- | * a linker | ||
- | * a simulator | ||
- | * a debugger | ||
* tools to prepare binary code for loading onto the target | * tools to prepare binary code for loading onto the target | ||
* a programmer | * a programmer | ||
+ | * a compiler (optional) | ||
+ | * a linker (optional) | ||
+ | * a simulator (optional) | ||
+ | * a debugger (optional) | ||
- | A compiler and linker will be required if you want to write your code in a high-level language. A simulator is useful for testing your code on the host system. A debugger can be used in conjunction with a simulator or with [[https:// | + | A compiler and linker will be required if you want to write your code in a high-level language. A simulator is useful for testing your code on the host system. A debugger can be used in conjunction with a simulator or with [[https:// |
+ | |||
+ | A programmer is used to load the binary code onto the target processor and is discussed more completely in a later section. A programmer isn't actually required if the target microcontroller has pre-installed on it a [[# | ||
==== Language selection ==== | ==== Language selection ==== | ||
Line 33: | Line 35: | ||
* The target microcontroller must be supported by the selected h/w programmer. | * The target microcontroller must be supported by the selected h/w programmer. | ||
- | * The selected h/w programmer must be supported by an available interface on the development system (serial bus or USB typically). | + | * The selected h/w programmer must be supported by an available interface on the development system (e.g, serial bus or USB). |
* The selected h/w programmer must be supported by a s/w programmer available for the development system OS. | * The selected h/w programmer must be supported by a s/w programmer available for the development system OS. | ||
* The selected s/w programmer must also support the target microcontroller. | * The selected s/w programmer must also support the target microcontroller. | ||
- | There are a few different " | + | ==== Classic |
- | This has lead to a second type of programmer | + | There are a few different |
- | Do not confuse ISP with ICE ([[https:// | + | ==== In-System Programming ==== |
+ | |||
+ | The problems associated with " | ||
+ | |||
+ | :!: Do not confuse ISP with ICE ([[https:// | ||
+ | |||
+ | ==== Bootloaders ==== | ||
+ | |||
+ | FIXME | ||
===== Other stuff ===== | ===== Other stuff ===== | ||
Line 49: | Line 59: | ||
==== Simulation ==== | ==== Simulation ==== | ||
- | It's often useful to run your microcontroller code in an environment on the host that simulates the target system. | + | It's often useful to run your microcontroller code in an environment on the host that simulates the target system. |
FIXME: Simulation vs. emulation. | FIXME: Simulation vs. emulation. | ||
==== Debugging ==== | ==== Debugging ==== | ||
- | A debugger is a software tool that you can attach to a computing process and use to pause program flow and inspect | + | A debugger is a software tool that you can attach to a computing process and use to pause program flow and inspect |
- | You can attach a debugger to a microcontroller in one of a few ways: | + | You can attach a debugger to a microcontroller |
* Run it on a simulator on the host and attach a debugger to the simulated process. | * Run it on a simulator on the host and attach a debugger to the simulated process. | ||
- | * Run it on an emulator | + | * Run it on a " |
* Run it on a special version of the target processor that makes the processor state information available to the host in a special h/w interface. | * Run it on a special version of the target processor that makes the processor state information available to the host in a special h/w interface. | ||
* Run it on a stock version of the target processor that that makes the processor state information available to the host in a standard JTAG interface. | * Run it on a stock version of the target processor that that makes the processor state information available to the host in a standard JTAG interface. | ||
Line 64: | Line 74: | ||
The last three above are all referred to as [[https:// | The last three above are all referred to as [[https:// | ||
- | ==== Bootloaders ==== | ||
- | FIXME |
microcontrollers/microcontroller_development_notes.txt · Last modified: 2013/08/23 20:34 by mithat