PowerPC is a popular choice for relatively high performance embedded systems, specifically IBM’s 4xx family (now sold to AMCC) and Freescale’s e300, e500, e600, and e700 brands (also known as PowerQUICC I, II, and III; formerly known as Motorola’s 8xx, 8xxx, 5xx, 5xxx families).
PowerPC can be found in applications such as routers, automobiles, multimedia devices, game consoles, and as auxilliary systems inside large servers.
Embedded PPC developers can usually be found on the #mklinux IRC channel, and they have their very own mailing list too. Patches sent to that mailing list are conveniently tracked in a web-based patch tracker. LinuxDevices.com is a good source of embedded news (though not PowerPC-specific).
- they can debug, read, and customize all the source code
- there are no royalties
- it is very easy to develop and debug on workstations and deploy the same code (and sometimes even binaries) to embedded systems
- it’s very easy to cross-develop from a desktop architecture to an embedded target
- there are a wide variety of development environments available, from the command line to full IDEs
Why do embedded companies like PowerPC?
- high levels of integration (including IO peripherals) put an entire System on a Chip (SoC), and fewer chips mean cheaper costs and simpler designs
- a wide variety of SoCs with the same processor core mean companies can perfectly fit their product requirements
- PowerPC parts tend to be long-lived
- there is a huge range of performance options — from very low power to 2GHz high-performance — all with the same instruction set
- PowerPC have an excellent power/performance ratio, and have low heat dissipation for tightly-embedded or large server environments
- PowerPC are big-endian and feature sophisticated bit-slicing instructions, both of which are very convenient for data communication and media processing
- PowerPC have various integrated DSP (Digital Signal Processor) options: the 8xx CPM (Communications Processor Module), Altivec/VMX in 74xx and 970, and SPE (Signal Processing Engine) in 85xx processors
The PowerPC Embedded Systems HOWTO is a slightly outdated but very in-depth document describing all aspects of PPC embedded systems, covering selection of the CPU, development kits, bootloaders, kernels, drivers, C libraries, and more.
Since many (though not all!) embedded systems are significantly underpowered compared to desktop workstations, it’s often very inconvenient to develop and build code directly on the target system. Cross-compiling is the act of building code on one architecture (like an x86 workstation) that will run on another (like a PPC embedded system).
crosstool makes cross-compiling very easy to do. Select your target (e.g. the PPC 860 CPU), run an automated build script, and in a while you have a full toolchain capable of building kernels and userspace executables and libraries for the target system.
Here are some external resources that embedded developers may find useful: