The embedded systems are dedicated for specified hardware platforms, and these are distributed in many different applications. A project manager should investigate in detail about Linux support status on specified hardware platforms, from processors to buses. If target hardware devices have been supported by Linux, then the developers can save a lot of effort in writing drivers from scratch. Because Linux are fully support mainstream hardware platform, most of the devices have been supported, more devices are planned to be supported. The developers can just configure the kernels to fit the hardware specification.
Intel. It offers embedded processors as well. The processors are Pentium MMX/Celeron/Pentium 4/Xeon/Intel Core/Dual Core/Quad Core. Of course, Intel also offers ARM/XScale core based processors. Intel is more focusing on high-end PC-like embedded applications.
AMD, is another major x86 processor suppliers. Compare to Intel, AMD offers more embedded processors for legacy platforms for16/32bit E86x, Geode and AMD64 platforms with a lot of integrated peripherals on chip. Even graphic controller has been integrated into embedded processor after AMD acquired ATI's expertise on graphic. AMD also offers reference design and solutions for embedded graphic, handheld and DTV with RDK.
VIA, my favorite x86 suppliers for embedded systems, who offers resources for x86 processors, S3 graphic, miniatured ITX, PicoITX, MiniITX EPIA M/B suitable for UMPC, mini desktop, NAS, HDTV, IPTV, AutoPC, PND...
ARM, please check our resource book for ARM processors.
PowerPC (IBM, Motorola/Freecale).It is the major site for Linux for PPC, covers Cell, LimePC. PowerPC is another major embedded processor platform which has widely used in game, automotive and portable media.
A Germany PPC Linux online magazine.
MIPS (NEC, NXP, AMD), is very popular in digital video applications. This site is a MIPS Linux site. But MIPS is not as popular as ARM, maybe because there are few general purpose MIPS processors available on the market. Recently Chinese also announced their MIPS like general processor - Godson, I would rather they promote it in embedded applications.
SuperH (Hitachi, STM)
SuperH was Hitachi's RISC processor, now ST also licensed to manufactures SuperH as well. The SuperH is widely used in Windows CE Pocket PC, Sega Saturn / Dreamcast game terminal.
This is the official site of ST port for Linux for SuperH.
Everything you'd ever want to know about Linux/m68k, the Linux port for Motorola 680x0-based systems. Supported systems include the Amiga, Apple Macintosh.
m68k-Port specific page of the Debian linux distribution.
Buses and Interfaces
ISA, Industry Standard Architecture, a legacy bus for PC-AT, now is replaced by PCI. Please check the book Linux Device Driver.
PCI, a mature bus used in PC and embedded processor. Please check the book Linux Device Driver.
PCMCIA, with 32bit CardBus, CardBay, Express Card. Please check the book Linux PCMCIA programmer's Guide.
PC/104, PC/104 is designed for embedded applications with plug pins, which follows ISA specification. While PC/104+ is PCI compliant. So Linux supports them since it supports ISA/PCI.
VME, developed by Motorola(Freescale). Mostek, Signetics(Philips/NXP). VME is a distributed bus, each VME board has own processor and OS.
This site offers Linux for VME embedded computers.
Compact PCI utilize the EuroCard standard used in VME, while follows the electrical specification of PCI, supports hot plug and play in three levels.
Check out Linux Parallel Port Home Page.
SCSI is used in high-end embedded applications. Most of the important kernel developers warned that Linux SCSI port should be revised or even re-written from scratch at all.
Please check our open source resource book for USB. BTW, USB mass storage media is emulated as a SCSI driver.
Developed by Apple. FireWire/IEEE1394 is a good solution for high-volume data transfer. Linux support for IEEE1394 is not as good as other commercial software.
Developed by HP, the old name is HP-IB bus. GPIB is also called IEEE488, which is a major peripheral bus for lab equipment. The user can access GPIB via /dev/gpibx.
I2C bus is developed and patented by Philips, which is widely used in embedded systems. A lot of ICs have already integrated I2C slave interface on-chip, for example, LCD driver, EEPROM, and DSP. I2C can be implemented by software or hardware. Intel also uses I2C for system management, which has another trademark called SMBus.
Serial bus is definitely the widest used I/O port in PC and embedded systems. The serial ports are accessible on /dev/ttySx.
Most of the modems are considered as serial port, yes, and serial port with AT command set. LinModems is a project for so-called "WinModem", which is also called software modem.
There is not standard interface for DAQ devices. However COMEDI (control and measurement device interface) is a major software for supporting DAQ devices in Linux.
The DAQ related sites are LabView, Matlab and Simulink. Scilab and Octave are alternative choices for Matlab.
Octave is a high-level language, primarily intended for numerical computations that is mostly compatible with Matlab. History, news, documentation, and downloads.
PLC is the foundation of process automation on workshop floor. A standard Linux distribution for PLC is available from MAT LPLC (Machine Automation Tools LinuxPLC).
There are many competitive protocols available for home automation, such as X10, zigbee and many others. This site offers many links for home automation.
The embedded systems usually have not standard keyboard, but different inputs can be wrapped to final keyboard device from serial port, USB, remote login, PDA handwriting or I/O based keypad.
Conventional UNIX does not support mouse in kernel. Different mice or point devices may have different protocols. User can access mouse via dev/mouse.
The embedded systems traditionally support LED and LCD display. This site is dedicated for LCD for Linux. But now more and more embedded systems are using rich feature GUI systems.
More and more audio solutions are demonstrated to public, such as dev/dsp, dev/mixer and dev/sequencer. The original audio support for Linux is OSS (Open Sound System). The alternative package is ALSA (Advanced Linux Sound Architecture), which offers more features.
MTD stands for memory technology device, refers to ROM, RAM, Flash (NOR/NAND) and DiskOnChip (DOC) devices. Different embedded systems will have different configurations for these MTD technologies because of applications themselves. We will have detail chapter for MTD.
IDE is the major hard disk driver interface. A lot of storage peripherals are using this interface, HDD, CD/DVD-ROM, CF (Compact Flash). The Linux kernel has already integrated IDE support in the kernel.
Linux kernel fully supports Ethernet.
Linux offers following packages for IrDA: IrTTY/IrPORT/OpenOBEX.
Basically WiFi IEEE802.11 is fully supported by Linux. But different solutions might be different. For intel's implementation, you should download firmware to controller first. So developer should check it before rolling out the project.
There are four major packages for Linux: BlueZ, OpenBT, Affix and BlueDrekar. BlueZ is the software included in the Linux kernel. Different packages have different API architecture.
CAN bus is widely used in field distributed control and automotive control. Since CAN bus is only a low-level communication protocol, a lot of high-level protocols are proposed as complement: J1939, SDS, DeviceNet and CANOpen.