5.1 Tool chain

As with most software development projects, it is essential to have a solid development platform. This usually includes the compiler, linker and debugger. Some embedded system development platforms are free (most notably ones based on GCC). Others can cost thousands or tens of thousands per licence.

A tool that is somewhat unique to embedded systems is the ability to emulate. An emulator permits a developer to write and debug certain types of logic without any actual hardware. Most MCU manufacturers have free emulators available because it is essential to “sell” the actual MCU chips.

Yet another unique tool is a remote debugger. This makes it possible to run a program on an embedded controller, and yet have full debugging features available. Most remote debuggers require some sort of hardware support, usually in the form of an in-circuit emulator (ICE).

An ICE used to cost thousands of dollars. However, modern MCUs usually have JTAG ability built in, which helps to reduce the cost of an ICE to hundreds or even below a hundred dollars.