User Tools

Site Tools


microcontrollers:microcontroller_development_notes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
microcontrollers:microcontroller_development_notes [2012/01/11 22:38] mithatmicrocontrollers:microcontroller_development_notes [2012/01/15 13:19] mithat
Line 13: Line 13:
 The software tools installed on the host system (i.e., the //host toolchain//) that you'll use to prepare programs for a target system may include: The software tools installed on the host system (i.e., the //host toolchain//) that you'll use to prepare programs for a target system may include:
   * 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://en.wikipedia.org/wiki/In-circuit_emulator|In-Circuit Emulation]]. A programmer is used to load the binary code onto the target processor and is discussed more completely in a later section.+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://en.wikipedia.org/wiki/In-circuit_emulator|In-Circuit Emulation]]. 
 + 
 +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 [[#bootloaders|bootloader]].
  
 ==== 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.
Line 42: Line 44:
  
 Do not confuse ISP with ICE ([[https://en.wikipedia.org/wiki/In-circuit_emulator|In-Circuit Emulation]]). ISP concerns itself with programming the target; ICE with debugging.  Do not confuse ISP with ICE ([[https://en.wikipedia.org/wiki/In-circuit_emulator|In-Circuit Emulation]]). ISP concerns itself with programming the target; ICE with debugging. 
 +
 +==== Bootloaders ====
 +
 +FIXME
  
 ===== Other stuff ===== ===== Other stuff =====
Line 49: Line 55:
 ==== Simulation ==== ==== Simulation ====
  
-It's often useful to run your microcontroller code in an environment on the host that simulates the target system. Doing so lets you verify and/or debug code without making a round-trip target programming trip. If you do not have the needed hardware to perform ICE ([[https://en.wikipedia.org/wiki/In-circuit_emulator|In-Circuit Emulation]]), then simulation is the only way to use a debugger with your code.+It's often useful to run your microcontroller code in an environment on the host that simulates the target system. The software tool that provides a simulated target environment is called a **simulator**. Simulators let you verify and/or debug code without making a round-trip target programming trip. If you do not have the needed hardware to perform ICE ([[https://en.wikipedia.org/wiki/In-circuit_emulator|In-Circuit Emulation]]), then simulation may be the only way to use a debugger with your code.
  
 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 and in many cases adjust the program's state.+A debugger is a software tool that you can attach to a computing process and use to pause program flow and inspect and in many cases adjust the program's and/or processor's state.
  
-You can attach a debugger to a microcontroller in one of a few ways:+You can attach a debugger to a microcontroller process in one of a few ways:
   * 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 on the host that connects to the target's socket with special hardware and use a debugger on the host.+  * Run it on a "virtual processor" on the host that connects to the target's socket with special hardware---and use a debugger on the host.
   * 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.
  
-The last three above are all referred to as ([[https://en.wikipedia.org/wiki/In-circuit_emulator|In-Circuit Emulation]](ICE)---even though only one of them actually involve emulation.+The last three above are all referred to as [[https://en.wikipedia.org/wiki/In-circuit_emulator|In-Circuit Emulation]] (ICE)---even though only one of them actually involve emulation.
  
-==== Bootloaders ==== 
-FIXME 
microcontrollers/microcontroller_development_notes.txt · Last modified: 2013/08/23 20:34 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki