Introduction à l’informatique embarquée Samuel KORTAS
Janvier-Février 2003
Embedded Computing ¾
General Introduction
¾
The Linux Path
¾
The Windows Path
¾
Your Path?
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 2
1
General Introduction
Janvier-Février 2003
What is embedded computing?
All Computing business that does not take place in a computer
today : phones, cars, satelites, cameras… tomorrow : fridge, pens, clothes….. everywhere
more trends, less tools
people don ’t forgive and forget easely :
your fridge can not get stuck in « runtime error » Mass products not update
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 4
2
A new Market and a world apart
New scales, new trends
Real time features Mobility requirement lightness and power of the tools
New Actors, New habits
OS : Vxworks, LynxOS, OSE….. Cross-compilation, remote debugging and minimalist environment
Redirection of actors, adaption of habits
Linux and Windows CE Visual embedded tools Page : 5
Samuel Kortas – Janvier/Février 2003
Embedded key points ¾
Requirements :
ROM RAM CPU ¾ ¾ ¾
Process performance and priority Platform constraints : e.g. no EEPROM Cross compilation :
PC: Compilation, Emulator Target : Tests in debug or retail mode ¾ ¾
Clearly split the portable and the specific parts of the software Few tools to debug and test
During Design, the test requirements have to be examined The development of tools to test the driver may be a heavy part of the project
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 6
3
2. Linux Embarqué / Embedded Linux
Janvier-Février 2002
Linux Overview ¾
Linux Operating System Key Points
¾
Linux Kernel settings
¾
Embedding Linux
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 8
4
Linux Operating System Fundamentals
Linux OS
Linux OS Key points
GNU, Open Source and Linux Kernel Where to find the information License, Software Pattern and Copyleft
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 10
5
An Operating System based on Linux
GNU : Free Unix environment
Linux Kernel
Free Software Fundation (cp, mv, emacs…)
Proprietary Application
GPL
No code Available
Proprietary Applications Open Source (Mozilla, Star Office…) Proprietary License
(Lexmark Driver)
Linux Kernel is the basis of a wider « free » Unix System Samuel Kortas – Janvier/Février 2003
Page : 11
The Linux Track ¾ ¾ ¾ ¾
Linus Torwald Started it all (as a task swapper for a class) Several enthusiastic people have developped the Kernel Today, 2/3 servers in the world run Linux Great Future in embedded world, for : free, portable and highly configurable.
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 12
6
Linux Actors ¾ ¾
¾ ¾ ¾
Community of several millions of testers and bug subscribers Hundreds of Hobby-Developpers coding for their own need and pleasure and releasing it to the community (eg : Lexmark in Ghostscript). Companies involved in distributing/supporting Linux : Red Hat, Mandrake, Infomagic. Companies supporting Linux to provide a standard for the internet : IBM, HP. Companies porting their applications/drivers to Linux.
Samuel Kortas – Janvier/Février 2003
Page : 13
What Support? ¾
Lots of documentation over the net
www.kernel.org to monitor the last changes. www.linuxdoc.org : howtos, Faq, installation guides…etc… Newsgroups: read www.dejanews.com! ¾
Well documented sources and support from enthousiastic developpers
¾
Commercial support just starting :
Distribution company : Mandrake, Redhat Well-known Company : IBM, HP… That want to support Linux as a standard.
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 14
7
What does free mean?
Linux is released under the Gnu Public License :
One can copy, modify and sell Linux software, as long as its developers receive proper credit and that any changes to the source code are made public
GPL stays GPL :
If you ever modify a GPL source for your own needs, these modifications must be released public.
Samuel Kortas – Janvier/Février 2003
Page : 15
What does it mean for a company? ¾ Avaibility of driver for new printer can make Linux users buy the company’s product (example of the ADSL Alcatel new webtouch USB modem, Lexmark Printer). ¾ Installation and bug tracking support should be provided by the company ¾Following kernel and major library version ¾Providing up to date rpm files ¾ Efficient user support via newsgroup or e-mail. Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 16
8
Setting the Linux Kernel
Linux OS
Around
the Kernel
Stable and unstable branch Kernel and User mode Setting and compilation of the Kernel Multi-platform and embedded Linux
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 18
9
Linux Kernel
Kernel is the core of the unix system
Initialization of the environment for each architecture task scheduler Very low level driver (memory, interrupt…..) Optional drivers (network, file system, external devices)
Two Developping Branches for the kernel x.y.z Y even : stable branch, one release each month at the beginning Y odd : Test branch : several release a month, where everybody can test their ideas
Complete rewritting of the Kernel with 2.0 USB Support reorganized in 2.4 Better Documentation right at the place of the source
Samuel Kortas – Janvier/Février 2003
Page : 19
Setting the kernel
All Kernel sources (from version 0.1) can be downloaded from www.kernel.org. They must be installed in /usr/src/ directory
Preparing the compilation
Get linux-2.4.3.tar.gz. It will uncompress as linux Configure the kernel to your own needs (USB Printer Support) z
Make xconfig (or make menuconfig from text console)
Try It and cross fingers!!
Documentation available at www.linuxdoc.org/HOWTO/KernelHOWTO.html
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 20
10
Kernel and User mode
User mode :
Kernel Mode :
• Processes
Kernel Mode
• Debugger
User Mode
• only printk
• Interruptions Coding and Testing Easy Less performance
• kernel freeze possible • very close to Hardware
Coding and Testing Tricky more performances
Samuel Kortas – Janvier/Février 2003
Page : 21
Embedding Linux
20/02/2003
11
Embedding Linux…
Embedded Key points
Market
Linux Port available
Customizing the Linux embedded system
Samuel Kortas – Janvier/Février 2003
Page : 23
Embedded Linux Market
Which 16 or 32-bit RTOS or kernel vendors have you used in the last 12 months for your embedded designs?« Annual growth of 25% Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 24
12
Linux everywhere
There are many, many Linux ports: (see www.kernel.org) z
z z z z z z z z z z z
Intel 386+ (of course) with support for ISA, EISA, PCI, VLB, and MCA (and Merced) Alpha (Linux is 64-bit now) Motorola 68030+ Power PC ARM SPARC MIPS SGI (in progress) VAX (in progress) PalmPilot (in progress) 8086-80286 (in progress) And more!
Samuel Kortas – Janvier/Février 2003
Page : 25
… but only one Linux ¾
Only two things needs to be ported z z
¾
Part of the Kernel written in assembly language (roughly 10%) One cross-compilation environment : typically gcc (see Hard Hat linux at http://www.montavista.com)
Afterwards, applications only need to be recompiled z z z
Changing the compiler : gcc in strongarm-gcc Compiling the unix minimal package : cp, ls, rm… Adressing specific platform problem : different timing, storage environment, memory and CPU footprint
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 26
13
Advantages ¾
Development is easy and portable z z
z
¾
Coding and Testing on a Desktop PC Same environment to compile it on the final target : just the compiler changes Only one code to maintain for multiple platform
Benefit from last improvements/fix of the kernel z
z
Eg : On strong arm, the kernel stable last version is available less than one month after the i386 version (see www.arm.linux.org.uk) How to cope with that in industry?
Page : 27
Samuel Kortas – Janvier/Février 2003
Famous Desktop distributions ¾
Slackware (www.slackware.com)
¾ More easely lightened up ¾ Not used a lot anymore ¾ Uses pakage.tar.gz
¾ Debian (www.debian.org) : ¾ designed for system administrator ¾ Official GNU distribution ¾ Uses pakage.deb ¾ Redhat like ¾ Red Hat (www.redhat.com) ¾ Mandrake (www.linux-mandrake.com/en) ¾ SuSE (www.suse.com) ¾ Corel (linux.corel.com) ¾ Uses package.rpm
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 28
14
On Disk Distribution
Benefits :
Let the computer clean no installation needed no wizard skill required a good trial path electronic pupil bag? Targetted application z rescue disk z demo disk
Concerns
slow no standard ease to add something?
Samuel Kortas – Janvier/Février 2003
Examples
demolinux (www.demolinux.org) z Paris V z Roberto di Cosmo
Knoppix (www.knoppix.net) z GNU Debian z Klaus Knopper
others?
Page : 29
Small foot-print "embedded" Linux versions . . . ¾
ETLinux -- a complete Linux distribution designed to run on small industrial computers, especially PC/104 modules. (www.prosa.it/etlinux)
¾
LEM -- a small (< 8 MBytes) multi-user, networked Linux version that runs on 386's. (linux-embedded.com/lem.php3)
¾
LOAF -- "Linux On A Floppy" distribution that runs on 386's. (loaf.ecks.org)
¾
uClinux -- Linux for systems without MMUs. Currently supports Motorola 68K, MCF5206, and MCF5207 ColdFire microprocessors (www.uclinux.org)
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 30
15
"Real-time" Linux APIs . . . ¾
RTLinux -- this hard real-time Linux API was originally developed at New Mexico Institute of Technology. (www.rtlinux.com; www.fsmlabs.com)
¾
RTAI (DIAPM) -- a spin-off of the RTLinux real-time API that was developed by programmers at the Department of Aerospace Engineering, Polytechnic Politecnico di Milano (DIAPM). (www.rtai.org)
¾
… And lots of other Vanilla
¾
Notice : Linux has ill performance in hard real Time because the driver mode is not widely interruptible.
Samuel Kortas – Janvier/Février 2003
Page : 31
Win CE Overview
20/02/2003
16
Introduction to Win CE
¾
Win CE Design Goals
Portable Modular and Compact Win32 Compatible RAD Tools Support Connectivity
Samuel Kortas – Janvier/Février 2003
Page : 33
Portable ¾ Easy portability to new processors ¾ Most parts of the OS written in C ¾ Support of various processors ¾ Complete list of supported processors available on Windows CE Web site - http://www.microsoft.com/windowsce/embedded
¾ Easy portability to new platforms ¾ OAL layer
¾
¾
Original equipment manufacturer (OEM) ¾ For Windows CE, an OEM is a company that manufacturers a hardware platform and ports Windows CE to that platform. OEM adaptation layer (OAL) That portion of Windows CE that must be provided by the hardware manufacture to adapt Windows CE to their platform.
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 34
17
Modular and Compact ¾ Modules ¾ Kernel, GWES, Filesys, and Communications
¾ Each module is divided into components ¾ Build an OS image that fits your needs ¾ Windows CE configurations - Minkern, Mininput, Mincomm, Mingdi, Minwmgr, Minshell, Maxall, IESample ¾ Components can be added, deleted, or replaced
¾ Execute in place (XIP) from ROM
Page : 35
Samuel Kortas – Janvier/Février 2003
Win32 Compatible ¾ Uses Win32 programming model ¾ Uses Win32 PE file format ¾ portable executable file format : The Microsoft implementation of the Common Object File Format.
¾ Supports a large number of 1500 Win32 API functions ¾ Supports other programming interfaces:
MFC (Microsoft Foundation Classes) ATL (Active Template Library) COM (Component Object Model) MSMQ (Message Queuing)
Advantages: Ease of porting existing Windows applications Many developers have good Windows knowledge
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 36
18
RAD Tools Support ¾
Major requirement of OEMs and ISVs (Independent software vendor)
¾
Not restricted to a particular language
¾
Strong development support
Languages: Visual Basic, Visual C++ Tools: Remote Debugger, Emulators Technologies: COM, MSMQ APIs: TAPI (Telephony Application Programming Interface), Winsock, CryptoAPI, NLS API (national language support) Libraries: ATL, MFC
Samuel Kortas – Janvier/Février 2003
Page : 37
Connectivity ¾
CE devices designed for mobility
¾
Support connectivity to desktop PC, other CE devices, and the internet
¾
Wide variety of communication options and API: Serial (Win32), LAN (NDIS), Modem (TAPI), Infra-red (IrDA), RAS (Remote Access Service), Winsock, and WinInet
¾
Secure communications at all levels
¾
Synchronization model: ActiveSync
¾
Mobile channels
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 38
19
Overview of Windows CE Architecture Windows CE-based applications Shells
Internet Explorer
Remote connectivity
Microsoft programming interfaces (Win32, COM, MFC, ATL)
Kernel
OAL
GWE
Communications interfaces (Winsock, RAS, TAPI, network)
Object Store (file systems)
Native and stream interface drivers
Communication module
Other drivers
Hardware
Samuel Kortas – Janvier/Février 2003
Page : 39
The Hardware ¾ Minimum hardware requirements: ¾ Supported processor ¾ Real-time clock ¾ Memory
¾ Reference platforms:
ODO (The Hitachi D9000 hardware development platform) CEPC
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 40
20
The Kernel Module ¾
Portable across supported processors
¾
Nk.exe, Coredll.dll (used by the applications to communicate together)
¾
Support RAM and ROM execution
¾
Modules can be compressed in ROM
¾
Demand paging supported by RAM, ROM, and FAT file system
Samuel Kortas – Janvier/Février 2003
Page : 41
The Kernel Module: Processes and Threads ¾ Processes ¾ Maximum 32 processes can be loaded at the same time ¾ Support for console applications
¾ Threads
¾
Smallest unit of execution Number of threads only limited by available memory Preemptive priority-based scheduling (8 priorities) Quantum default length is 25ms (configurable)
WinCE 3.0 : more RTOS
¾ 256 priorities ¾ Quantum default length is 1ms
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 42
21
The Kernel Module: Virtual Memory Management
Reserved
2GB
Memory Mapping (Shared) Slot 32:Process32
2GB
. . . Slot 1:Process1 32MB
Slot 0:Active Process
Page : 43
Samuel Kortas – Janvier/Février 2003
The GWES Module ¾ Graphics, Window manager, and Event manager ¾ Graphic output (display and printer) ¾ User input: keyboard, stylus, mouse, etc. ¾ Window management: messages routing etc.
¾ GWES is the most componentized Windows CE module ¾ GWES exports only a subset of the Win32 API functions
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 44
22
Support for Development Languages ¾
Microsoft Platform Builder
¾
Windows CE Toolkit for Visual Basic 6.0
¾
Windows CE Toolkit for Visual C++ 6.0
¾
Remote Application and Kernel Debugger
¾
Windows CE Emulators (PPC / HPC / HPC Pro)
¾
Custom SDK
Samuel Kortas – Janvier/Février 2003
Page : 45
API Differences with Windows 95 / Windows NT ¾
What is missing
Redundant APIs Windows NT security functions, ANSI API, “LE” of OLE (Object Linking and Embedding)
Portions of the large APIs like TAPI, Sockets,Printing,USER/GDI ¾ What is different
Memory size and power management are special concerns Device driver model is different (few layers between the API and the hardware) Thread scheduling is simpler (smaller kernel)
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 46
23
Development for Win CE 2.12
What is Platform Builder ¾ ¾
Adapts Windows CE OS to your platform Embedded development tools
¾ ¾ ¾
Compilers Kernel Debugger Windows CE remote tools Export SDK
Integrated Development Environment (IDE) Run-time libraries Sample code
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 48
24
Overview to the Customization Process
Platform is ready and final
Configure Platform
Modify Platform •OAL •Device Drivers •Configurations •Custom modules
Build Platform Image
Download and Debug Image
Export SDK
Platform needs modifications
Samuel Kortas – Janvier/Février 2003
Page : 49
Customizing a Win CE Image
¾
Configuring a Platform
¾
Modifying a Platform
¾
Building a Platform
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 50
25
Choosing a Reference Configuration Microsoft provides 8 reference configurations : ¾ Minkern: memory minimal version of WindowsCE
Memory, process, and file management Heap and memory allocation Registry and databases ¾
Mininput: minimal version of Windows CE
User input Native driver support (keyboard, display) ¾
Mincomm: minimal version of Windows CE with communications
Data communication : IRDA, Serial, TAPI, Networking: TCP/IP, PPP (Point-to-Point Protocol), WinInet, Secure Socket
¾
Mingdi: minimal version of Windows CE with graphic device interface support
Samuel Kortas – Janvier/Février 2003
Page : 51
Choosing a Reference Configuration ¾
Minwmgr: Almost all the main modules and components are available
Window management, graphic, and drawing support COM support Communication
¾
Minshell: nearly complete version of Windows CE
Command processor (similar to Cmd.exe) Task manager
Maxall: almost all modules and components are available
Microsoft Message Queue Pocket Word, Pocket Internet Explorer ¾
IEsample: sample version with Internet Explorer 4
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 52
26
Configuring a Platform
Samuel Kortas – Janvier/Février 2003
Page : 53
Modifying a Platform Using the component view and the catalog
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 54
27
Modifying a Platform Modifying a platform settings
Page : 55
Samuel Kortas – Janvier/Février 2003
Development Platform Development PC CEPC
Network
¾
The Ethernet link is used to :
Download the image Debbug the code Implement the remote File System
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 56
28
Debugging ¾
Platform Builder includes a debugger
Breakpoint Step by step … ¾
Debug messages using Debug Zones
Samuel Kortas – Janvier/Février 2003
Page : 57
Win CE Support
http://www.microsoft.com/embedded
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 58
29
Question time!
Any questions?
I have one !... a study case how to debug a cellular phone? A printer?
Samuel Kortas – Janvier/Février 2003
20/02/2003
Page : 59
30