150 likes | 320 Views
Embedded Systems Programming. Introduction to the course. Embedded System - aims. This course aims to introduce you to embedded systems programming What are embedded systems? Small systems Low power Portable Part of large system Real-time features. Embedded System - features.
E N D
Embedded Systems Programming Introduction to the course
Embedded System - aims • This course aims to introduce you to embedded systems programming • What are embedded systems? • Small systems • Low power • Portable • Part of large system • Real-time features
Embedded System - features • Embedded software has different characteristics than more mainstream software • Speed, size, interface, • Embedded software development is very different from ‘normal’ software development • Use of tools, interaction with systems, debugging
ESP 1st term • In the first set of lectures and practical sessions I will be covering cross developing code and operating systems onto a single board computer. • The practical sessions will involve small groups of students installing Linux onto the target hardware. The Puppeteer will be a central part of the system developed as part of the assignment.
Lecture list • Cross development techniques • Using C and assembler language • ARM and the SA1110 • The Puppeteer boards • Using a cross development environment • Extra tools for software development • Embedded OS, real-time executive and monitors • Porting the Linux kernel
The Puppeteer board #1 • The Puppeteer boards are based on the StrongArm SA1110 processor • Intel version of ARM core • 200MHz CPU • MMU support • 4 Serial interfaces • PCMCIA interface
The Puppeteer board #2 • The board was originally developed for cable set top boxes, but has a large number of potential usages • Has 2 serial interfaces • Sound interface • Ethernet support SMCS LAN91C96 • 8 Mb of boot block flash • 32 Mb of DRAM • Altera 6k FPGA • Xilinx CPLD • Small EEPROM • I2C support • JTAG interface
The Linux kernel • The kernel we will be porting will be a standard 2.4.18 with the ARM patches • We will need to port to the specifics of the board • Initialisation code need porting • Some of the serial port code will need modifying • The Ethernet chip needs porting • MTD (flash) system need configuring
The Linux system • Although we will examine various distributions we will create our own Linux system using • uClibc • Busybox • Tinylogin • Netkit • NFS • GDB version 6 • MTD support and tools
Development environment • We will be using a GNU cross compiler kit • The version of gcc is 2.95.3 • We will also use binutils • Plus various conversion and download utilities • elf2bin – to convert elf binaries to MSbin format • eloadsvr – to download images to the Puppeteer board
Lab organisation • The first few weeks will be small scale programming of the boards • When we start to install Linux the labs will be broken into groups • Each group will have user space on kenny to keep their kernel and Linux systems • You will be guided into porting the kernel onto a board
Literature and information sources • Some books • Building Embedded Linux Systems – K Yaghmour • Embedded Linux – C Hollabaugh • Arm System Developer’s Guide – Sloss, Symes & Wright • ARM Architecture Reference Manual – D Seal • Web sites • ARM UK, armlinux, GNU, uClibc,