Uclinux Course Day 1

download Uclinux Course Day 1

of 12

description

Uclinux embedded OS

Transcript of Uclinux Course Day 1

  • 7/18/2019 Uclinux Course Day 1

    1/12

    1

    uClinux course

  • 7/18/2019 Uclinux Course Day 1

    2/12

    Author: D L Johnson

    Overview

    Day 1

    + Survey of embedded operating systems - why uclinux?

    + The uclinux environment - the directory structure

    Day 2

    + Using the configuration tools for the kernel and user applications

    + Adding user application to uClinux

    Day 3

    + The cross compiling tool chain (gcc, as, ld, objdump, objcopy)

    + Ripping apart a "Hello World" - it's not a simple program!+ Memory architecture of the arm7tdmi processor - configuring uclinux for the

    arm

    Day 4

    + To "Boot loader" or not to "Boot loader"

    + Hardware access and device drivers

    Day 5+ Debugging applicatgions with gdb

    + Downloading applications to the development kit using JTAG

    + Running bluetooth stacks on uclinux

  • 7/18/2019 Uclinux Course Day 1

    3/12

    3

    uClinux course

    Day 1 of 5

    Survey of embedded operating systems why uclinux?

  • 7/18/2019 Uclinux Course Day 1

    4/12

    Author: D L Johnson

    uClinux day 1 of 5 Why uclinux

    Why use an operating system

    + Memory management

    + Thread/process management

    + Drivers for input devices such as keyboards, mouse

    + Drivers for output devices such as screens, sound, printers

    + File system management on disks/flash memory

    What is an embedded operating system

    + Runs on small inexpensive microprocessors

    + Runs in memory restricted environments even without MMU

    + Often no hard drive or disk drive

    uses flash based disk

    + Can run without any screen output or keyboard/mouse input

  • 7/18/2019 Uclinux Course Day 1

    5/12Author: D L Johnson

    uClinux day 1 of 5 Why uclinux

    What embedded operating systems are available

    +Vxworks $$ - pathfinder on Mars (RTOS)

    + Nucleus $$

    + QNX $$ (POSIX, RTOS)

    + DOS $$

    + How grown operating systems

    + Redhat ecos (POSIX, uITRON)

    + uClinux

  • 7/18/2019 Uclinux Course Day 1

    6/12Author: D L Johnson

    uClinux day 1 of 5 Why uclinux

  • 7/18/2019 Uclinux Course Day 1

    7/12Author: D L Johnson

    uClinux day 1 of 5 Why uclinux

    Until recently developers of small embedded systems

    based on microprocessors lacking MMU could not take

    advantage of Linux

    uCliknux was started by Arcturus networks in 1997

    Implements Linux on MMU-less processors

    Publicly released back into open source as alternative OS

    for the Palm Pilot in February 1998

    Ported to ARM, MIPS, SPARC, Hitachi SH, Motorolla

    coldfire

    Mature, robust operating system

    Supports large number of devices, filesystems andnetwork protocols

    Large open source community adding features

  • 7/18/2019 Uclinux Course Day 1

    8/12Author: D L Johnson

    uClinux day 1 of 5 Why uclinux

    Large number of applications exist for Linux which

    require little or no proting

    Vert low cost

    no royalties

    uClinux may well represent the world's first, most mature,

    and most commercially successful embedded Linux

    distribution

  • 7/18/2019 Uclinux Course Day 1

    9/12Author: D L Johnson

    uClinux day 1 of 5 Why uclinux

    Devices that use uClinux

  • 7/18/2019 Uclinux Course Day 1

    10/121Author: D L Johnson

    uClinux day 1 of 5 uClinux environment

    Kernel UserlanduClibc

    Cross compiler and linker

    Image.bin

    li d f li i

  • 7/18/2019 Uclinux Course Day 1

    11/12

    1Author: D L Johnson

    uClinux day 1 of 5 uClinux environment

    Cli d 1 f 5 Cli i t

  • 7/18/2019 Uclinux Course Day 1

    12/12

    1Author: D L Johnson

    uClinux day 1 of 5 uClinux environment

    Configure scripts e.g. menuconfig and xconfig

    Glibc source code

    Binary images of uclinux ready to load onto hardware

    uC-libc source code

    Linux-2.4.x kernel source code

    Linux-2.0.x kernel source code

    Documentation on e.g. adding platform and user apps

    uClibc source code

    Userland contains all user applications

    Romfs contains directory structure of uClinux

    Contains all architecture settings such as memory layouts

    Driver source code for all peripherals