Embedded world terms
Before putting our hands on our new board, it is recommended that we acquaint ourselves with some terms that the user should know in order to avoid misunderstandings. People who have already worked with some GNU/Linux and/or embedded systems may skip this part; however, a brief overview of these preliminary stuff may be useful for everyone. The BeagleBone Black is a tiny single-board computer that can be embedded into a device, so the user should be familiar with some terms used in the wonderful world of the embedded programming.
Term |
Description |
---|---|
Target |
The target system is the embedded computer that we wish to manage. Usually, it is an ARM platform, but this is not a fixed rule; in fact, PowerPC and MIPS are other (less) common platforms. Even the x86 platform (a standard PC) can be an embedded computer too. |
Host |
The host system is the computer we will use to manage the target system. Usually, it is a normal PC (x86 platform) but even other platforms can be used (for example, years ago, I used a PowerPC-based computer as a host PC). Normally, the host system is more powerful than the target one since it's usually used for heavy compiling tasks that the target cannot do at all or that it can do but in a time consuming manner. |
Serial console |
This is the most important communication port in an embedded system. Using the serial console, the user has complete control of the system. Since it's not only indispensable for debugging, but is also the last resort if, by chance, the operating system files are messed up and the board refuses to boot. Without the serial console, the user can still control the system (if correctly set up) but for the developer/debugger it's a must-have! |
Native compiler |
The native compiler is just a-compiler! This is the compiler running on a machine (host or target) that builds the code for the current machine (that is, the compiler running on a PC builds the code for the PC like the one running on an ARM machine that builds the code for ARM itself). |
Cross-compiler |
Strictly speaking, the cross-compiler is just a compiler that builds the code for a foreign platform (that is, a cross-compiler can run on a PC in order to generate binaries for an ARM platform), but usually, by using this term, the embedded developers also mean the complete compilation suite, that is: the compiler, linker, binutils, libc, and so on. |