490 likes | 932 Views
嵌入式系統 Embedded system. Application of Embedded System. On Potable / PDA Solution. Application of Embedded System. On Potable / PDA & Smartphone Solution. Introduce Embedded OS. Embedded OS Introduction (1). Windows CE Microsoft Support CPU: x86, ARM, MIPS, …etc
E N D
Application of Embedded System • On Potable / PDA Solution
Application of Embedded System • On Potable / PDA & Smartphone Solution
Embedded OS Introduction(1) • Windows CE • Microsoft • Support CPU: x86, ARM, MIPS, …etc • Windows CE Platform Builder • eVC, eVB • Friendly GUI • Application: PDA, WebPAD, PVR, Thin Client, …etc
Embedded OS Introduction(2) • DOS • Microsoft • 16 bits, single user single task • Application: LED billboard, industry control
Embedded OS Introduction(3) • Palm OS • Palm Computing • Succinct architecture • Small hardware requirement • low-power • Application: PDA
Embedded OS Introduction(4) • VxWorks • WindRiver • Support CPU: x86, i960, MIPS, PowerPC • Popularly use in embedded systems • GNU compiler and debugger • Hard real time • It’s famous to apply to robot on Mars and Sony robot • MicroC/OS • Hard real time
Embedded OS Introduction(5) • Symbian • The mobile operating system • Friendly GUI • Development with Microsoft Virtual C++ 6.0 and S60 (SDK) • The main competitor is Windows
Embedded OS Introduction(6) • Linux • Support CPU: x86, ARM, MIPS, SH, i960, PowerPC, …etc • Open Source • Powerful Network Functions • Easy Software Porting • GNU Complier and Debugger
Bootloader • Kernel • Root Filesystem Target Cross-platform Development Environment Host Cross-Development Environment • Target has limited resource (memory, storage, low speed processor) . • Host and Target are different architecture
Linux Architecture Applications Bash Shell Linux Kernel hardware
Linux Architecture Java Applications GUI GLIBC Other Libraries Kernel System Call Interface File System Protocol Stacks Kernel Bootloader Drivers Hardware
All the things we need • Cross-Platform development toolchain • Bootloader • Provide by vendor • Linux kernel • Linux kernel + some patches if needed • Filesystem • Busybox • Device node • Configuration
The Bootloader's Job One main mission: load the operating system(s). Tasks: • Initialize the machine properly (the kernel can do part of this later too). • Access the kernel and initrd files in their storage medium (need to support the corresponding filesystem too) • Because of the above 2 tasks, bootloaders are often platform specific! • Load the kernel and initrd files • Execute the kernel file with the right command line
Some Bootloaders • LILO: LInux LOad. Original Linux bootloader. Still in use! • http://freshmeat.net/projects/lilo/ • Supports: x86 • GRUB: GRand Unified Bootloader from GNU. More powerful. • http://www.gnu.org/software/grub/ • Supports: x86 • LinuxBIOS: Linux based BIOS replacement • http://www.linuxbios.org/ • Supports: x86
Some Bootloaders (cont.) • UBoot: Universal Bootloader. The most used on arm. • http://uboot.sourceforge.net/ • Supports: arm, ppc, mips, x86 • RedBoot: eCos based bootloader from RedHat • http://sources.redhat.com/redboot/ • Supports: x86, arm, ppc, mips, sh, m68k...
Why Use Linux • Open Source • Reliability • Salability • Secure • Supports Virtually All Network Communication Protocols
GNU Introduction • 一九八四年,在美國麻省理工學院任教的理查·史托曼(Richard M. Stallman)創辦「自由軟體基金會(Free Software Foundation)」,並提出GNU(Gnu is Not Unix)計畫 • 提出GNU計畫中所發展的一整套自由軟體,內容包括了編譯器、組譯器、文書處理軟體等各式各樣的應用軟體 • ftp://ftp.gnu.org/gnu • http://www.gnu.org
GCC • Cross Compiler就是在一個平台上(如x86)產生出另外一個平台上(如arm)的可執行檔案ELF (Executable and Linking Format) • 如果要在ARM上面建立Linux Kernel必需使用到Cross Compiler而一般編譯Linux Kernel的一定是GCC http://www.kernel.org
GCC = GNU Compiler Collection • Features • Portable • Cross-compiling • Support different languageC, C++, Objective-C, Fortran, Java, and Ada • Free Software • http://gcc.gnu.org • 程式編譯器 arm-linux-gcc用來將原始碼編譯成arm平台上執行的程式$ arm-linux-gcc hello.c –o hello/usr/local/arm/include/asm,linuxhttp://0rz.net/2508Ahttp://people.debian.org/~debacle/cross.html
System Storage • The storage devices used in embedded systems are often quite different from those used in workstations and servers. • Embedded systems tend to use solid-state storage devices such as flash chips and flash disks. • Need the MTD subsystem to support boot parameters root filesystem kernel bootloader
Kernel Configuration • make config • 這種模式需要逐行輸入所需要設定的項目,無法往前修改設定,所以目前很少使用這種方式來設定 Kernel 的項目了; • make xconfig • 這種模式則是使用 X-Window 為主要環境的設定模式!除非你有 X-Window 在執行,否則沒有辦法使用這種模式; • make menuconfig • 這種模式有點像是文字界面的選單模式,較為簡便,而且可以在純文字界面下面執行編輯動作!是目前最常使用的模式。
Kernel Compiling • make dep • 建立相依的屬性關係! • make clean • 將舊的資料去除掉 • make bzImage • 開始編譯核心!這個核心是經過壓縮的,此外,這個步驟也很長! • make modules • 開始編譯模組!這個動作視您剛剛編譯的模組數量! • make modules_install • 將modules資料安裝在 /lib/modules/`uname -r` 裡面! • make install • 安裝 bzImage建立完成的核心
/ /bin /boot /grub /dev /etc /home /lib /mnt /proc /sbin /tmp /usr /src /bin /sbin /var /log /spool 根目錄 一般常用指令 Kernel image的位置 grub設定 硬體裝置 系統設定 一般使用者的家目錄 函式庫 儲存裝置 系統裝置訊息 管理使用指令 暫存檔 其他軟體放的目錄 原始程式碼 一般可執行程式碼 管理使用程式碼 系統記錄檔案 登入檔以及錯誤訊息檔案 郵件檔案 Filesystem
Building Root Filesystem • Download the BusyBox source code fromhttp://www.busybox.net/ • Building BusyBox • make clean • make all • make install • After make complete, the busybox will be at ./path/to/busybox_src/_install/
AP ASM Source C Source C Libraries C Compiler Assembler .aof Object Libraries Linker .aif debug System model ARMsd ARMulator Development board
Graphic User Interface Window System • X Window (TinyX) • http://www.xfree86.org/ • QPE (Qt Plamtop Environment) / Qtopia • http://www.trolltech.com/products/qtopia/index.html • GPE (GPE Palmtop Environment) • http://gpe.handhelds.org/ • Microwindows • http://microwindows.org/ • MiniGUI • http://www.minigui.org/
Ap. Opera ACCESS NetFront MIDP
Microwindows Games MP3 Player
MiniGUI Mail Browser
web reference • http://www.delphiresearch.com Local Service Provider • http://www.embeddedlinuxjournal.com Embedded Magazine • http://www.embedded-linux.org Embedded Trade Association • http://www.ibm.com Tool Developer • http://www.lineo.com Distribution • http://www.linux.org Linux Association • http://www.linuxdevices.com Embedded Magazine • http://www.lynuxworks.com Distribution • http://www.microcross.com Tool Developer • http://www.mvista.com Distribution • http://www.oncoresystems.com RTOS • http://www.redhat.com Service Provider • http://www.sleepycat.com Embedded Database • http://www.trolltech.com Tool Developer • http://www.nsa.gov/selinux Secure Linux from NSA
開發工具 • ARM SDT(ARM Software Development Kit)是ARM公司為方便使用者在ARM晶片上進行應用程式的開發而推出的一整套整合開發工具 • 目前的最高版本為SDT2.5.2 • 從SDT2.5.1開始,ARM公司宣佈推出一套新的整合開發工具ARM ADS1.0,取代ARM SDT • SDT與ADS保持了良好的相容性
開發工具 • ARM ADS(ARM Developer Suite)是ARM公司推出的新一代ARM整合開發工具,用以取代ARM公司以前推出的開發工具ARM SDT。 • 目前ARM ADS的最新版本為ADS1.2。 • ARM ADS是ARM SDT的升級版本,對ARM SDT的模組進行了增強,並替換了部分SDT的部件,ARM ADS支援所有的ARM系列處理器,包括最新的ARM9E和ARM10 • 除了Windows作業系統外,還支援在Linux作業系統的執行。
THE END Thanks you.