Sunteți pe pagina 1din 47

UNIVERSITY OF SCIENCE

Faculty of Electronics and Telecommunications SEMINAR

Embedded Systems
and

Embedded Linux
Executors: Trn Trng Tun MSSV: 0620098 Nguyn Anh Tun MSSV: 0620094 Guide: M.S. Nguyn Duy Mnh Thi

Contents

INTRODUCTION

EMBEDDED LINUX

CONCLUSION

Embedded Systems & Embedded Linux

1.

INTRODUCTION
1.3 Examples

1.2 Characteristics Of ES

1. INTRODUCITON

1.4 Embedded OS and Why Linux?

1.1 What & Why Embedded Systems?

1.5 History of Linux and Embedded Linux


Embedded Systems & Embedded Linux

1.1 What & Why Embedded Systems? 1st: Information processing systems embedded into enclosing products [1] 2nd: A special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints [wiki] 3rd: System that consists of input/output (I/O) and control logic stored in system firmware [2]

Embedded Systems & Embedded Linux

1.1 What & Why Embedded Systems?


The 1st recognizably modern embedded system: The Apollo Guidance Computer (AGC) 1960s
DSKY user interface DSKY mounted on control panel

Embedded Systems & Embedded Linux

1.1 What & Why Embedded Systems?

WHY?

To make hardware devices more flexible: + Cost + Connectivity + Pervasive Computing + Hardware Combination

We are in the post-PC era. (2000 - 2020)

Embedded Systems & Embedded Linux

1.2

CHARACTERISTICS OF EMBEDDED SYSTEMS

Real-time: + hard real-time (time critical constraints) + soft real-time (time sensitive constraints) x86, Power PC, ARM, MIPS, 8051hard-core or soft-core? Dedicated to specific tasks Wide range of Hardware and Processors Software failure severity Real-time constraints Power constraints Operating under extreme environmental conditions

Fewer system resources than Desktop systems Specialized tools and Design methods Dedicated debugging circuitry
etc

Embedded Systems Desktop Systems

Using real-time Operating systems (RTOS)


Cost sensitive

Embedded Systems & Embedded Linux

1.3

EXAMPLES

TELECOMMUNICATIONS

CONSUMER ELECTRONICS

MEDICAL

Embedded Systems

AUTOMOTIVE

USERS DESIGNS

INDUSTRY

Embedded Systems & Embedded Linux

1.4 WHY USING AN OPERATING SYSTEM? WHY USING EMBEDDED LINUX?


Providing an abstraction layer for software on top of the OS to be less dependent on hardware Easier for middleware and applications designers

Why Embedded OSes ?

Managing various system hardware and software resources Provide more features
Embedded Systems & Embedded Linux

1.4 WHY USING AN OPERATING SYSTEM? WHY USING EMBEDDED LINUX?


Low Cost
- Development Cost -Training and Hiring Costs - Royalty free - Low system maintenance time

Varied Hardware Support (scalable & flexible)


- Single to Multiprocessors - Simple to Complex Systems - Fully customizable in all its components (thanks to GPL, General Public License)

OPEN SOURCE

Why Embedded Linux?

- Vendor Independence - Thousands of developers provide & enhance Linux kernel and other applications - Global support

Powerful High-performance (Short Time to Market)


- Fast, High Efficiency - Stable, low failure rate - Rich set of toolsets and utilities - Networking capabilities

POSIX Standards (IEEE) Compliance (Portable Operating System Interface) Increasing of supported hardware & software

Embedded Systems & Embedded Linux

1.5

HISTORY OF LINUX & EMBEDDED LINUX

- Linux / lnks / (original) or /lnks/ (English): A Unix-like operating system. UNIX???


UNIX Unix-like

1969, AT&T (Bell LABs)

UnixWare

Solaris

FreeBSD

OpenBSD

MINIX

IRIX

LINUX

Mac OS X

AIX

Timeline of Unix variants


Embedded Systems & Embedded Linux

1.5

HISTORY OF LINUX & EMBEDDED LINUX

/ lnks / (original) or /lnks/ (English)


Linux (or A Unix-like operating system. GNU/Linux)

Linux = Linux kernel 1.0 + GNU Project

Linus Torvalds (created Linux Kernel in 1991)

Richard Matthew Stallman founder of The GNU project (from 1984)


Embedded Systems & Embedded Linux

1.5

HISTORY OF LINUX & EMBEDDED LINUX

GNU

A Unix-like operating system Created with free software Recursive acronym for GNU's Not Unix (contain no UNIX code) GNU General Public License (GPL) GNU Lesser General Public License (LGPL ) GNU Free Documentation License (FDL) GNU Compiler Collection (gcc) GNU C Library (glibc)

Embedded Systems & Embedded Linux

1.5

HISTORY OF LINUX & EMBEDDED LINUX

Linux Distributions (Distros)

kernel + tools + window managers + many other applications Ubuntu SUSE

Debian (GNU/Linux)

Red Hat / Fedora

Mandriva

SUSE

Ret Hat
Embedded Systems & Embedded Linux

1.5

HISTORY OF LINUX & EMBEDDED LINUX


EMBEDDED LINUX (FIRST AGE)

1996 1997 Hard real-time No MMU

1999 Support
BlueCat LynuxWorks

New wave

2000

BusyBox 0.43

Embedded Systems & Embedded Linux

1.5

HISTORY OF LINUX & EMBEDDED LINUX

Embedded Linux vs Other Embedded OSes

Linux
AMIRIX, Coollogic: Coollinux, Coventive: Xlinux, Klinux, Esfia: RedBlue Linux, KYZO: PizzaBox Linux, Lineo: Embedix, LynuxWorks: BlueCat, Neoware: NeoLinux, TimeSys: Linux GPL, MontaVista Linux

NonLinux
eCos , VxWorks, Win CE, Lynyos, BSD, Green Hills, QNX DOS
Embedded Systems & Embedded Linux

1.5

HISTORY OF LINUX & EMBEDDED LINUX


Linux kernel versions

Newest: 2.6.27.9-rc2

Embedded Systems & Embedded Linux

1.5

HISTORY OF LINUX & EMBEDDED LINUX

Embedded Linux: Real-time or not?

Past

General-purposes OS: NO REAL-TIME AT ALL! (Differences in deterministic timing behavior of all the OS services) 1st Dual-kernel (Co-kernel) approach : hard real-time 2nd Fully Preemptive Kernel Approach: Patches supported to make soft real-time Linux

NOW

Full real-time Linux


Embedded Systems & Embedded Linux

2.

EMBEDDED LINUX

INTRODUCTION

EMBEDDED LINUX

CONCLUSION

Embedded Systems & Embedded Linux

2.

EMBEDDED LINUX
2.3 Prospects

2.2 Implementation

2. EMBEDDED LINUX 2.1 Design life circle

2.4 Examples for FUTURE

2.5 Challenges

Embedded Systems & Embedded Linux

2.1

DESIGN LIFE CYCLE

Embedded Systems & Embedded Linux

2.1

DESIGN LIFE CYCLE

TRADITIONAL WORK-FLOW vs MODEL-BASED DESIGNED WORK-FLOW

PAST

NOW

Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

Examine . . . HOW TO BUILD A PARTICULAR EMBEDDED LINUX SYSTEM?


Simplified work-flow (suitable for individuals)
System Specifications
Overall Architecture / Models Hardware & software configurations Applications design
Embedded Systems & Embedded Linux

2.2
Examine . . .

IMPLEMENTATION

HOW TO BUILD A PARTICULAR EMBEDDED LINUX SYSTEM? Step 1: Product specifications / System requirements

-Build a Linux-based platform on a specific hardware - Which hardware to choose (to order)? + Which development board? Compatible with Linux or not? + Which processor? - Which Linux distro? (that supports the chosen hardware) - Which software and toolchain(s) to design? Eclipse-based IDE(Integrated Development Environment) - Which software application(s) to run?
Embedded Systems & Embedded Linux

2.2
Examine . . .

IMPLEMENTATION

HOW TO BUILD A PARTICULAR EMBEDDED LINUX SYSTEM? Step 2: Overall Architecture / Models

- Understand hardwares architecture Basic concepts - Understand the Linux kernel - Choosing hardware components - Design block diagrams (at high level) + hardware connecting and behavior + application(s) - Understand the cross-platform concept
Embedded Systems & Embedded Linux

2.2
Examine . . .

IMPLEMENTATION

HOW TO BUILD A PARTICULAR EMBEDDED LINUX SYSTEM? EXAMPLE: + Board + CPU Step 2: Overall Architecture / Models

- Understand hardwares architecture - Understand the Linux kernel - Choosing hardware components - Design block diagrams (at high level) + hardware connecting and behavior + application(s) - Understand the cross-platform concept
Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

- Understand hardwares architecture


+ Bus architecture Ex:

HOW TO BUILD A PARTICULAR EMBEDDED LINUX SYSTEM? Step 2: Overall Architecture / Models

IBM CoreConnect for Xilinx

Avalon Switch Fabric for Altera

Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

HOW TO BUILD A PARTICULAR EMBEDDED LINUX SYSTEM? Step 2: Overall Architecture / Models

- Understand the Linux kernel (overall)


The hardware abstraction layer (HAL)
HAL = BSPs + processor-specific software

Memory manager Scheduler File system I/O subsystem Networking subsystem IPC (Inter-process communication)
Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

HOW TO BUILD A PARTICULAR EMBEDDED LINUX SYSTEM? Step 2: Overall Architecture / Models

- Understand hardwares architecture - Understand the Linux kernel - Choosing hardware components - Design block diagrams (at high level) + hardware connecting and behavior + application(s) - Understand the cross-platform concept
Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

Step 2: Overall Architecture / Models

- Understand the cross-platform concept

Host
C libraries

Desktop (Linux-x86)

Target

ARM, PPC, MIPS, NIOS

Cross-Compiler Targets hardware drivers Linux kernel


Configure & CrossCompile

Boot loader

Kernels image Root filesystem


Embedded Systems & Embedded Linux

2.2
Examine . . .

IMPLEMENTATION

HOW TO BUILD A PARTICULAR EMBEDDED LINUX SYSTEM? Step 3: Hardware and Software configurations HARDWARE: (Work becomes more easier with powerful tools) - Configure the CPU parameters + processor clock frequency, bus clock frequency + Cache/ debug mode/ On-chip memory? - Configure the peripherals + Using own designs (verilog .v or .vhdl files) + Using supported / licensed IP cores (Intellectual Properties) + Enabled / Disabled interrupt or not?
Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

Step 3: Hardware and Software configurations HARDWARE: (Work becomes more easier with powerful tools)
- Configure Software setting + Give more detailed information to the System Wizard + Choose the embedded OS + Connected peripherals
- Build and generate file Netlist + bitstream (will be uploaded to the FPGA ) - Generate software Libraries and BSP (Board Support Packages) BSP includes: + drivers + header files + device ID number +system address map

will be used in the kernel compilation process

Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

Step 3: Hardware and Software configurations SOFTWARE: (need to deal a lot with the Linux command console) -Preparations for cross-compilation of the kernel
Create a cross-compiler environment (to compile CPU kernel and Linux root file system) Crosstool: reliable & easy-to-use toolchain generator (by Dan Kegel) Linux kernel headers C libraries Crosstool Proper toolchain (suitable versions (GCC GNU Compiler Collection ) (scripts) for target hardware) (glibc) Binutils(manipulate binary object files)

- Build the Linux kernel


Download the Linux kernel (with the distro supporting the hardware) Insert the BSP files + make some necessary modifications
(Created before)
Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

Step 3: Hardware and Software configurations SOFTWARE: (need to deal a lot with the Linux command console) - Build the Linux kernel (cont)
Compile the kernel make kernels image (.elf executable and linking format) Test the kernel without Root file system (optional)

- Build Root filesystem (RFS)


Using BusyBox Run a script file to: + Create root directories + Copy Glibc into RFS folder + Install BusyBox into RFS + Modifies permissions and ownerships of RFS Re-configure the kernel Re-make the final image
(.ace file - to load into the flash-card)

Top-level directories Directory Contents bin Binary executables, usable by all users on the system dev Device nodes

etc Local system-configuration files


lib System libraries, such as the standard C library and many others sbin Binary executables usually reserved for superuser accounts on the system usr A secondary file system hierarchy for application programs, usually read-only var Contains variable files, such as system logs and temporary configuration files tmp Temporary files

Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

Step 3: Hardware and Software configurations SOFTWARE: (need to deal a lot with the Linux command console) - Port kernel image into hardware
Format CF card (flash card):
Partition 1: Type = FAT16 (6) (contains created .ace file) Partition 2: Type = Linux Swap (82) Size = 1 ~ 1.5 main memory Partition 3: Type = Linux (83), Size = Remainder disk space (contains NFS files) Copy .ace file

partition 1 NFS files partition 3

PORT LINUX KERNEL FINISH!!!

Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

Step 4: Applications design

- Similar to programming applications in desktop + Assembly, Pascal, C, C++, Java + Block diagram + Coding (on host PC) + + Cross-compile executable files in target device - Copy into /bin on root file system of target. SYSTEM COMPLETED!!!

Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

SOME REAL EMBEDDED LINUX SYSTEMS TODAY

LINUX KERNEL PORTED TO IPHONE (iPhone-Dev.org) - Hardware: Iphone (fixed) 1st & 2nd generation + Touch Processor: ARM - Bootloader: OpeniBoot - Linux kernel: 2.6

Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION

SOME REAL EMBEDDED LINUX SYSTEMS TODAY

www.mtemag.com Hardware: Airbus380 25 PowerPC processors OS: LynxOS (Linux-based real-time OS)

Embedded Systems & Embedded Linux

2.2

IMPLEMENTATION
ANDROID FUTURES HAND HELD OS android.com - Developers: Open Handset Alliance (Google, Intel, Motorola, T-mobile ) on November 2007 - Hardware: mobile devices - OS: Android (Linux kernel (monolithic)) - Software development kit: Android SDK

SOME REAL EMBEDDED LINUX SYSTEMS TODAY

T-mobile G1: 1st mobile device using Android 1.0 OS

Embedded Systems & Embedded Linux

2.3

PROSPECTS

- 3rd wave of innovation in ICT (Post-PC era)


99% of global processors are placed in Embedded Systems.

-Combine advantages of many industries together


(ITC, Mechanics, Biology, Chemistry )

- With an eOS + a powerful design toolchain,


Embedded Systems can approach any kind of user and are much easier to build your own system. (flexibility) + Xilinx ISE development suites + Altera Stratix II Development Kit + Embedded MATLAB:using Model-Based Design +
Embedded Systems & Embedded Linux

2.4

FUTURES EXAMPLES

- SoC evolutions NoC (Network on Chip) Spidergon Topology + IPU (Interconnect Processing Unit) Spidergon STNoC: an innovative technology

Embedded Systems & Embedded Linux

2.4

FUTURES EXAMPLES

NoC
Using GALS (Globally Asynch. Locally Sync.)

Embedded Systems & Embedded Linux

2.4

FUTURES EXAMPLES

Ambient Intelligence:
Many networked devices are integrated into the environment.

Embedded Systems & Embedded Linux

2.5

CHALLENGES & LIMITATIONS

- Difficulties in HW/SW co-design. - Multi-careers co-ordination - Linux: + Open source + Unfamiliar with Windows users
Viet Nams reality: - Hardwares un-afordable (software only)

Embedded Systems & Embedded Linux

3.

SUMMARY

- No demo - Impossible to master every aspect of the seminar.

Embedded Systems & Embedded Linux

Embedded Systems & Embedded Linux

REFERENCE

[1] Arnold S. Berger - Embedded Systems Design- An Introduction to Processes, Tools and Techniques (CMP Books - 2002) [2] Craig Hollabaugh - Embedded Linux- Hardware, Software and Interfacing (Addison Wesley) 2002 [3] Auerbach - Embedded Linux System Design and Development (2006) [4] Newnes - Embedded Software - Know it all - Sep 2007 [5] Karim Yaghmour Building Embedded Linux Systems - 2nd edition - Aug.2008 (OReilly) [6] O'Reilly - Understanding The Linux Kernel (2000) [7] Prentice Hall - Embedded Linux Primer - a Practical RealWorld Approach 2006 [8] Prentice Hall- The Linux Kernel Primer A Top Down Approach for x86 and PowerPC Architectures 2005 [9] PETER MARWEDEL - Embedded System Design - Peter Marwedel -2006 (Springer) [10] Embedded System WEEK08_tutorial Slides [11] J. W. Donaldson - Porting MontaVista Linux to the XUP Virtex-II Pro development board - 2006 Embedded Systems & Embedded Linux

S-ar putea să vă placă și