Embedded Linux is the name given to the Linux operating system when it is run on resource-constrained systems, as opposed to traditional laptop, desktop or server style computers.
ContentsEnvironment VariablesBooting Via TFTPSetting TFTP Up On Development ComputerSetting TFTP Up On Embedded DeviceEnvironment Variables To print an environment variable, use the printenv command: Shell uboot> printenv autoload autoload=yes 12 uboot> printenv autoloadautoload=yes To set an environment variable, use the setenv command: Shell uboot> setenv autoload=no 1 uboot> setenv autoload=no You don’t actually need the … Continue reading U-Boot
Information about the Yocto Project used for building custom embedded Linux images. Includes a "Quick Start" tutorial on Yocto.
Info about the Xilinx Zinq FPGA.
Differences With “Standard” Linux
Embedded devices typically have fewer resources and hardware than a traditional computer running Linux. For example, embedded Linux might run on a single-board MCU which does not have a screen, harddrive or speakers. The board will usually have far less ROM and RAM than a traditional computer.
Because of the resource/hardware constraints, the embedded Linux kernel is usually stripped of all unneeded features, resulting in a much smaller ROM/RAM footprint.
Functionality Of MCUs
A MCU designed to run embedded Linux (or any other high-level operating system) usually has some (or most) of the following features:
- CPU (e.g. a ARM A9)
- MMU (if no MMU is present, a special type of Linux has to be run)
- Memory interface
- Graphics processor
- UART interface
- SPI interface
- I2C interface
- CAN interface
- Analogue-to-digital converters (ADCs)
- General purpose IO (GPIO)
- Watchdog timer (WDT)
2 of the most popular embedded Linux development kits are the RaspberryPi and the BeagleBone.
BusyBox is a bunch of stripped down Linux tools that are compiled into one executable. This makes it a popular choice for embedded devices, as each separate executable on an embedded system requires a significant amount of overhead.
An embedded application binary interface (EABI) is very similar to a normal ABI. It specifies:
- File formats
- Data types
- Register usage
- Stack frame organisation