Embedded software development tools are programs that you can use to help with the programming of embedded devices. These tools provide you with the right functionalities to create the files you need to successfully execute an embedded program on your target device.
Related: Free embedded systems course
What are the different types of embedded software development tools?
We can classify embedded software development tools into the following six types.
- An editor is a program which creates a file that contains the main assembly language for your program.
- This is where you type your program.
- The text from the program that you type is stored in the RAM in ASCII code format.
- The file that we create here is known as the ‘source file’.
- Its file extension is .asm.
- Example: Wordstar, MS-DOS, NotePad.
- The assembler is a program that translates the assembly language mnemonics into machine code.
- Machine code is the code that is understandable by the microprocessor.
- The assembler generates two files with the extensions .obj and .lst.
- The .obj file is known as the object file. It contains the binary codes for the instructions and information about the addresses.
- The .lst file stands for the assembler list file. It contains the assembly language statements, binary codes, and offset.
- Example: Keil.
- The linker tool joins several object files into one large object file.
- It’s efficient to breakdown the code into modules. Thus making easy for each module to be independently testable. And then the linker combines them later into one large program.
- The link file consists of the binary codes.
- And the link map file consists of addresses.
- The final file has a .exe extension.
- A locator gives the physical address of segments of code to be loaded into memory.
- It converts the .exe file from the linker to a .bin file.
- A debugger allows the programmer to load the object code into system memory to troubleshoot (debug) it.
- It is a powerful and one of the most important embedded software development tools in the programmer’s arsenal.
- The debugger can check the contents of registers and memory locations after every step.
- It allows the programmer to insert breakpoints to break execution.
- Allows for fast checking of errors.
- A debugger is exceptional at testing software and code-related errors. However, an emulator can test both, software and hardware related errors.
- To get this tool into action, we connect the target device to the PC using a multiwire cable.
- The emulator allows the programmer to download code into the target RAM and test it.
- The emulator too can check contents of registers and memory locations after every step.