Embedded Systems Programming

12
Embedded Systems Programming Introduction to the course

description

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. - PowerPoint PPT Presentation

Transcript of Embedded Systems Programming

Page 1: Embedded Systems Programming

Embedded Systems Programming

Introduction to the course

Page 2: Embedded Systems Programming

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

Page 3: Embedded Systems Programming

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

Page 4: Embedded Systems Programming

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.

Page 5: Embedded Systems Programming

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

Page 6: Embedded Systems Programming

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

Page 7: Embedded Systems Programming

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

Page 8: Embedded Systems Programming

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

Page 9: Embedded Systems Programming

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

Page 10: Embedded Systems Programming

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

Page 11: Embedded Systems Programming

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

Page 12: Embedded Systems Programming

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,