Embedded Real time System Design
This course on Embedded Real-Time System Design (ERTSD) is taught by Rob Williams and Craig Duffy, covering essential skills in developing embedded systems. Craig will lead the first two terms, covering lectures and practical sessions on selecting languages, operating systems, and cross-compilers for embedded applications. Students will work in small groups to install Linux on the Puppeteer boards, engaging in hands-on learning. The course includes a significant assignment with phased submissions, emphasizing practical experience in advanced system design.
Embedded Real time System Design
E N D
Presentation Transcript
Embedded Real time System Design Introduction to the course
ERTSD course - Overview • Course is taught by Rob Williams & Craig Duffy • Craig will teach the lectures the start of term 1 & 2. Rob will teach the second part • There is 1 large assignment with a phased hand-in –Christmas and Easter. • Practical sessions taught by Rob & Craig
ERTSD Craig’s 1st part • 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 Craig’s part • Selecting a language and operating system for embedded systems • The SA1110 and Puppeteer boards • Selecting an cross compiler and OS for embedded systems • Using Linux as an embedded OS • 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 • 2 Serial interfaces • PCMCIA interface • Ethernet
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 - + irda • Audio support – TS35143 codec • Ethernet support SMCS LAN91C96 • 8 Mb of boot block flash • 32 Mb of DRAM • Altera 6k FPGA • Xilinx CPLD • Small EEPROM • I2C support
The Linux kernel • The kernel we will be porting will be a standard 2.6.16 – you can upgrade! • We will need to port to the specifics of the board • Some of the serial port code will need modifying • The 2.6 kernel has problems with the 2nd serial port! • The Ethernet chip needs porting • This requires understanding the new device driver model • NFS is really useful for development purposes • The MTD system needs porting/configuring
The Linux system • Although we will examine various distributions we will create our own Linux system using • uClibc • Busybox • Netkit • Very useful for the tcp/ip and NFS tools • NFS • GDB version 6 • I have a (almost) beta version of kgdb for 2.6!
Development environment • We will be using buildroot kit from codepoet • Use any gcc > 3.1 – load in the 2.6 headers too. • Buildroot provides a pre-built file system plus loads of utilities – even some audio ones! • We will still have to use the conversion and download utilities • elf2bin – to convert elf binaries to MSbin format • eloadsvr – to download images to the Puppeteer board
Literature and information sources • Some books • Real-time Systems Development – R Williams • Building Embedded Linux Systems – K Yaghmour • Embedded Linux – C Hollabaugh • Embedded Linux Primer – C Hallinhan • Arm System Developer’s Guide – Sloss, Symes & Wright • ARM Architecture Reference Manual – D Seal
Useful web sites • My homes pages • cems.uwe.ac.uk/~cduffy, kenny.netlabs.cems.uwe.ac.uk/~cduffy • Loads of datasheets on the kenny page • Web sites • ARM UK, armlinux, GNU, uClibc, • IBM developerworks • Linux Journal • Kernel newbies • Linux from scratch • The Linux Documentation Project (LDP)