Programming Microcontrollers

Software Development Tools for a Microcontroller Programmer

Software development tools are computer programs typically run on PCs that allow the programmer or system developer to create, modify and test applications programs. Some of the common software development tools include:

  • Text editors
  • Assemblers/compilers
  • Simulators
  • High-level language simulators
  • Integrated development environments (IDEs)

Text Editors

A text editor is usually used to create or edit programs and text files. The Windows OS comes with a text editor program called Notepad. Using a Notepad, you can create a new program file, modify an existing file, or display or print the contents of a file. Note that, you can’t use word processing programs like Microsoft Word for this task, since they embed word formatting characters like bold, italic and underline within the text.

Most of the assemblers and compilers you will come across have in-built text editors, making it possible to create a program and then assemble or compile it without having to exit the editor. These editors offer additional features, such as automatic keyword highlighting, syntax checking, parenthesis matching, and comment line identification. You can have different parts of a program shown in different colours to make the program more readable such as comments in one color and keywords in another. Such features assist in removing syntax errors during the programming stage, thus speeding up the development process.

Assemblers & Compilers

Assemblers generate executable code from assembly language programs. The generated code can then be loaded into the flash program memory of say a PIC18-based microcontroller. Compilers generate executable code from high-level language programs. Examples of C compilers are:

  • MPLAB XC8 C compiler
  • MPLAB C18 C compiler
  • mikroC Pro for PIC C compiler

Assembly language is typically used in applications where the processing speed is critical and the microcontroller must respond to external and internal events in the shortest possible time. Nevertheless, it is hard to develop complex programs using assembly language, furthermore, assembly language aren’t easy to maintain.

Even though most C compilers are essentially the same, each one has its own modifications or additions to the standard language.

Simulators

A simulator is a computer program that runs on a PC without the microcontroller hardware. It simulates the behaviour of the target microcontroller by interpreting the user program instructions using the microcontroller instruction set. Simulators can display the contents of registers, memory and the status of the input-output ports as the user program is interpreted.

The user can setup breakpoints to stop the program and check the contents of various registers at desired locations. Additionally, the user program can be executed in a single-step mode, so the memory and registers can be examined as the program executes one instruction at a time as a key is pressed.

Some assembler programs contain in-built simulators. MPLAB IDE has in-built simulator.

High-Level Language Simulators

High-level language simulators, also referred to as source-level debuggers, are programs that run on a PC and locate errors in high-level programs. The programmer can set breakpoints in high-level statements, execute the program up to a breakpoint and then view the values of program variables, the contents of registers, and memory locations at that breakpoint.

A source-level debugger can also invoke hardware-based debugging using a hardware debugger device. For instance, the user program on the target microcontroller can be stopped and the values of various variables and registers can be examined.

An example of high-level language compiler that has in-built source-level debugger is mikroC C.

Integrated Development Environments (IDEs)

The integrated development environments (IDEs) are powerful PC-based programs that enable the user to edit, assemble, compile, link, simulate, source-level debug a program and then download the generated executable code to the physical microcontroller chip using a programmer device.

IDEs are usually in graphical user interface (GUIs), where the user can select various options from the program without having to exit it as illustrated in the figure above.

John Mulindi

John Mulindi has a background in a technical field and he writes on topics ranging from automation, computer systems, embedded systems, mechatronics to measurement and control.

Recent Posts

Rigid-Flex PCBs: Enhancing Durability and Flexibility in Electronic Devices

The world of electronics is constantly evolving, allowing designers and manufacturers to push the boundaries…

2 months ago

Key Features of PIC16X84 Family of Microcontrollers

PIC microcontrollers are fabricated by Microchip Technology. PIC16C84 and PIC16F84 are the two microcontrollers in…

9 months ago

ADD Instruction in Intel 8051 (MCS-51) Microcontroller

The ADD instruction tells the microcontroller’s CPU to add the source byte to register A…

9 months ago

Main Features of Intel 8086 Microprocessor

8-bit microprocessors are limited in their speed (the number of instructions that can be executed…

9 months ago

Basic Features of 68HC11 Family of Microcontrollers

The 68HC11 (also abbreviated as 6811 or HC11) is an 8-bit microcontroller that was introduced…

9 months ago

Process Synchronization using Semaphores

Mutual exclusion typically imposes some conditions on access to a given resource by two or…

10 months ago