NoICE Debugger


Supported Compilers and Assemblers

MON08 (HC08)

BDM (MC9S08)

AN2140 Monitor (MC9S08)


Home Download Purchase Tutorials FAQ NoICE Help


The Motorola/Freescale 68HC08 family includes a wide variety of 68HC08 and MC9S08 parts. Debugging features differ between the subfamilies, with the MC9S08 having greater capabilities. However, the HC08 and MON08 is a very usable environment.

MON08 Serial Monitor for 68HC08

For the non-S HC08 family, MON08 is your choice for low-cost debugging on actual hardware. MON08 uses a very small monitor program that resides in ROM on most HC08 parts.

MON08 uses a single port pin for bi-directional serial communications. External circuitry is required to convert this pin to RS-232 voltage levels. Most HC08 development boards contain this circuitry. For custom designs, you can either build this circuitry in, or design it as a separate interface board connected only during debugging.

NoICE uses the MON08 protocol to read and write memory, burn Flash, and execute user programs.

The HC08 has one hardware breakpoint, which NoICE uses to set breakpoints in Flash, and to perform single-step. For code in RAM, NoICE uses the SWI instruction, giving unlimited breakpoints (well, limited only by the amount of RAM on your chip).

More information on using NoICE with MON08 is available here.

Background Debug Mode (BDM) for MC9S08

The MC9S08 family adds a Background Debug Mode (BDM) controller similar to that long available on the HC12. For reasons known only to the presumably warring factions at Freescale, some MC9S08 documentation calls this "BDC" rather than "BDM".

Probably the best way to use NoICE with the MC9S08 is with Background Debug Mode (BDM). This requires the use of a BDM pod, but allows in-circuit debugging of programs in Flash with little or no interference to the user program being debugged.

When using BDM/BDC, three hardware breakpoints are available.

NoICE supports a variety of BDM pods

Setup and use of BDM is described in a separate document.

AN2140 Monitor

If you are using an MC9S08 part and can't use a BDM pod, similar features are provided by a Flash-resident monitor program described in Freescale application note AN2140. This is a popular option for schools and other applications where low cost is the primary consideration. The only hardware requirement is an RS-232 serial port.

The AN2140 monitor occupies the top 2K of Flash, including the reset and interrupt vectors. Thus, it has some impact on the memory organization and operation of user programs. Please download and read the Freesacale application note for details.

A chicken an egg detail: once the AN2140 monitor is burned into Flash, NoICE can use it to burn user programs into the remaining Flash. But how do you burn the AN2140 monitor into Flash? Your easy choices are to either borrow a BDM pod or to buy a development board that already contains the monitor.

Setup and use of the AN2140 monitor is described in a separate document.

68HC08 Simulator

Instruction set simulation is quite straightforward. However, simulating the UARTs, timers, and other peripherals found on current microprocessors is a very complex task - at least if you want a good (i.e., useful) simulation. The cycle-by-cycle operation of these peripherals is seldom publicly documented, and anything less than a cycle-by-cycle simulation will mask problems which occur in real systems.

NoICE's 68HC08 simulator provides simulation of instruction execution and a "simulated UART" so that you can use printf etc. The simulator does not do cycle-accurate simulation of a UART or simulate other peripherals such as timers or interrupts.

That said, the simulator can be very useful in debugging algorithms and becoming familiar with a processor without investing in any hardware.

More information here.

NoICE Debugger Copyright 2006 by John Hartman Revised 22 November 2006