Top Banner
Embedded Systems Programming Introduction to the course
16

Embedded Systems Programming

Jan 16, 2016

Download

Documents

morey

Introduction to the course. 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. Embedded System - features. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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, system initialisation, interaction

with systems, debugging

Page 4: Embedded Systems Programming

ESP practicals

• In the first set of lectures and practical we will look at cross development, ARM architecture, and linking C and Assembler.

• In the second term we will focus on porting Linux onto the Puppeteer boards, building the kernel, root file system and applications, as well as porting the Ethernet driver. We may port an application to run on the board.

Page 5: Embedded Systems Programming

Lecture list

• Cross development techniques– Using a cross development environment– Extra tools for software development

• Using C and assembler language– Linking issues

• ARM and the SA1110– RISC

• The Puppeteer board– Serial port programming

• Porting the Linux kernel– Embedded OS, real-time executive and monitors

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– 2 Serial interfaces– PCMCIA interface– Ethernet

Page 7: Embedded Systems Programming
Page 8: Embedded Systems Programming
Page 9: 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 – + irda • Audio codec – Toshiba TS35143• 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 10: Embedded Systems Programming

The ARM CPU

• We will explore ARM's CPU and look at low powered and RISC CPU through the StrongARM.

• We will also look at the types of boards and interfaces and the software that can run on them.

• We will do some simple ARM assembly language programming.

Page 11: 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 12: 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 13: 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 14: 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 must learn to save space!

• You will be guided into porting the kernel onto a board

Page 15: Embedded Systems Programming

Literature and information sources

• Some books– 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

Page 16: Embedded Systems Programming

Useful web sites

• My homes pages– cems.uwe.ac.uk/~cduffy,

kenny.netlabs.cems.uwe.ac.uk/~cduffy

• Web sites– ARM UK, armlinux, GNU, uClibc, – IBM developerworks– Linux Journal– Kernel newbies– Linux from scratch– The Linux Documentation Project (LDP)