Post on 25-Dec-2015
1
uClinux courseuClinux courseuClinux courseuClinux course
2Author: D L Johnson
OverviewOverview Day 1Day 1
+ Survey of embedded operating systems - why uclinux?+ The uclinux environment - the directory structure
Day 2Day 2+ Using the configuration tools for the kernel and user applications+ Adding user application to uClinux
Day 3Day 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 4Day 4
+ To "Boot loader" or not to "Boot loader"+ Hardware access and device drivers
Day 5Day 5+ Debugging applicatgions with gdb+ Downloading applications to the development kit using JTAG + Running bluetooth stacks on uclinux
3
uClinux courseuClinux courseuClinux courseuClinux course
Day 1 of 5Day 1 of 5Survey of embedded operating systems - Survey of embedded operating systems - why uclinux?why uclinux?
4Author: D L Johnson
uClinux day 1 of 5 Why uclinuxuClinux day 1 of 5 Why uclinux
Why use an operating systemWhy 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 systemWhat 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
5Author: D L Johnson
uClinux day 1 of 5 Why uclinuxuClinux day 1 of 5 Why uclinux
What embedded operating systems are availableWhat embedded operating systems are available+Vxworks $$ - pathfinder on Mars (RTOS)+Nucleus $$+QNX $$ (POSIX, RTOS)+DOS $$+How grown operating systems+Redhat ecos (POSIX, uITRON)+uClinux
6Author: D L Johnson
uClinux day 1 of 5 Why uclinuxuClinux day 1 of 5 Why uclinux
7Author: D L Johnson
uClinux day 1 of 5 Why uclinuxuClinux day 1 of 5 Why uclinux
Until recently developers of small embedded systems Until recently developers of small embedded systems based on microprocessors lacking MMU could not take based on microprocessors lacking MMU could not take advantage of Linuxadvantage of Linux
uCliknux was started by Arcturus networks in 1997uCliknux was started by Arcturus networks in 1997 Implements Linux on MMU-less processorsImplements Linux on MMU-less processors Publicly released back into open source as alternative OS Publicly released back into open source as alternative OS
for the Palm Pilot in February 1998for the Palm Pilot in February 1998 Ported to ARM, MIPS, SPARC, Hitachi SH, Motorolla Ported to ARM, MIPS, SPARC, Hitachi SH, Motorolla
coldfirecoldfire Mature, robust operating systemMature, robust operating system Supports large number of devices, filesystems and Supports large number of devices, filesystems and
network protocolsnetwork protocols Large open source community adding featuresLarge open source community adding features
8Author: D L Johnson
uClinux day 1 of 5 Why uclinuxuClinux day 1 of 5 Why uclinux
Large number of applications exist for Linux which Large number of applications exist for Linux which require little or no protingrequire little or no proting
Vert low cost – no royaltiesVert low cost – no royalties uClinux may well represent the world's first, most mature, uClinux may well represent the world's first, most mature,
and most commercially successful embedded Linux and most commercially successful embedded Linux distributiondistribution
9Author: D L Johnson
uClinux day 1 of 5 Why uclinuxuClinux day 1 of 5 Why uclinux
Devices that use uClinuxDevices that use uClinux
10Author: D L Johnson
uClinux day 1 of 5 uClinux environmentuClinux day 1 of 5 uClinux environment
KernelKernel UserlandUserlanduClibcuClibc
Cross compiler and linkerCross compiler and linker
Image.binImage.bin
11Author: D L Johnson
uClinux day 1 of 5 uClinux environmentuClinux day 1 of 5 uClinux environment
12Author: D L Johnson
uClinux day 1 of 5 uClinux environmentuClinux day 1 of 5 uClinux environmentConfigure scripts e.g. menuconfig and xconfigConfigure scripts e.g. menuconfig and xconfig
Glibc source codeGlibc source code
Binary images of uclinux ready to load onto hardwareBinary images of uclinux ready to load onto hardware
uC-libc source codeuC-libc source code
Linux-2.4.x kernel source codeLinux-2.4.x kernel source code
Linux-2.0.x kernel source codeLinux-2.0.x kernel source code
Documentation on e.g. adding platform and user appsDocumentation on e.g. adding platform and user apps
uClibc source codeuClibc source code
Userland contains all user applicationsUserland contains all user applications
Romfs contains directory structure of uClinux Romfs contains directory structure of uClinux
Contains all architecture settings such as memory layoutsContains all architecture settings such as memory layouts
Driver source code for all peripheralsDriver source code for all peripherals