n. A software development tool that accepts one or more object files as input and outputs a relocatable program. The linker is thus run after all of the source files have been compiled and assembled into object files.

linker resolves references across symbol tables

A simplified example showing how the linker resolves references across symbol tables and combines the code and data sections.


1. n. A software development tool used to check C and C++ programs for error-prone syntactical constructs. The C and C++ language standards are loosely written. Plenty of run-time details, such as the actual size of an int, are left up to compiler implementers. Lint can help you find dangerous and nonportable constructs in your code before a compiler turns them into run-time bugs. [more]

2. n. The error-prone syntactical constructs that the lint tool finds in C and C++ programs. A program that passes through the lint tool without generating any warnings is termed "lint-free."


n. A GNU-based Unix-like open source operating system, the kernel for which was developed by Linus Torvalds.

FURTHER READING: Embedded Linux and Copyright Law


adj. A data representation for a multibyte value that has the least significant byte stored at the lowest memory address. Note that only the bytes are reordered, never the nibbles or bits that comprise them. Every processor stores its data in either big-endian or little-endian format. Intel's 80x86 family is little-endian. [more]

EXAMPLE: If the 32-bit value 0x44332211 is located at address 0x0004 in memory, its least significant byte, 0x11, would be found at location 0x0004. Location 0x0005 would contain the next significant byte, 0x22; location 0x0006 would contain 0x33; and location 0x0007 would contain the most significant byte, 0x44.

little-endian memory dump

A little-endian memory dump


n. A software development tool that assigns physical addresses to a relocatable program. This is the last step in preparing software for execution by an embedded system. The resulting file is called an executable. In some cases, the locator's functionality is built into the linker. In others, the operating system might include a loader, which performs the location step.

relocation step

A simplified example showing how the locator assigns code and data to specific physical memory ranges and adds (uninitialized) stack and heap sections. Not shown is that the initialized data must be stored in ROM and copied out into RAM by the startup code

logic analyzer

n. A hardware debugging tool that can capture and display the logic levels (0 or 1) of dozens, or even hundreds, of electrical signals as they occur. Logic analyzers can be quite helpful for debugging hardware problems and complex processor-peripheral interactions. They are primarily characterized by their capture memory depth and width and by their acquisition speed.