Embedded Linux Systems Development 交流: fascination.org@163.com Website for : http://code.google.com/p/s3c64 10-conferencing/downloads/list Agenda 1. Linux Introduction 2. E.Linux Introduction 3. E.Linux Development process Introduction Agenda 1. Linux Introduction 2. E.Linux Introduction 3. E.Linux Development process Introduction 1. Linux Introduction 1. Linux Introduction Linux的产生和发展 UNIX 操作系统 MINIX 操作系统 GNU 计划 POSIX 标准 Internet 网络 1. Linux Introduction Distribution的选择 某个发行商的 自己完成:LFS:(Linux From Scratch) http://www.linuxfromscratch.org/lfs/ 1. Linux Introduction Linux的版本 内核版本 Distribution /发行商版本 1. Linux Introduction Linux的构成 Linux Application Linux Shell System calls Linux Kernel Device drivers Hardware 1. Linux Introduction Linux的构成 1. Linux Introduction 1. Linux的构成 1. Linux Introduction 1. Linux Introduction Linux的特点 Open source and free under GPL(General Public License) Monolithic kernel Preemptive kernel supporting for modules Kernel thread Filesystem and Multi filesystems support Agenda 1. Linux Introduction 2. E.Linux Introduction 3. E.Linux Development process Introduction 2. E.Linux Introduction E.Linux的概念 From BELS:An embedded Linux system simply designates an embedded system based on the Linux kernel and does not imply the use of any specific library or user tools with this kernel. 2. E.Linux Introduction E.Linux的概念 From Wiki:Embedded Linux is the use of a Linux operating system in embedded computer systems such as mobile phones, personal digital assistants, media players, set-top boxes, and other consumer electronics devices, networking equipment, machine control, industrial automation, navigation equipment and medical instruments. 2. E.Linux Introduction Linux之于ES的优点 Modern OS (eg. memory management, kernel modules, etc.) Open source and so can be customized as what you can Hardware support:has already been ported to many different CPU architectures and other H/W 2. E.Linux Introduction Linux之于ES的优点(cont.) Available tools Community support Industry support Vendor independence Cost Licensing Strong networking support Relatively small for its feature set Huge application base 2. E.Linux Introduction Linux之于ES的劣点 Size:32bits CPU,单片机 MMU GPL License Real-time Toolchain 2. E.Linux Introduction 产品举例1 SAMSUNG GALAXY Tab P7500 Moto手机 Amazon Kindle 2. E.Linux Introduction 产品举例2 Skype电话 网络版硬盘录像机 Koala嵌入式教学机器人 2. E.Linux Introduction 产品举例3: BELS的1.2.2节 2. E.Linux Introduction 产品举例4: 2. E.Linux Introduction E.Linux产品的分类:From BELS:4个角度 Size Time constraints Networkability User interaction 2. E.Linux Introduction E.Linux所支持的硬件:From BELS的chap3 Processor Architectures Buses and Interfaces I/O Storage General Purpose Networking Industrial Grade Networking 2. E.Linux Introduction E.Linux的参与者:Players of the Embedded Linux Scene Free software and open source community Industry Organizations 2. E.Linux Introduction E.Linux的参与者: Industry Red Hat MontaVista LynuxWorks Timesys IBM Intel HP Oracle Sun 其他消费电子制造商 。。。 2. E.Linux Introduction Cross/交叉开发环境 Why ? What is cross? 2. E.Linux Introduction Cross/交叉开发环境 Host:一般是PC机 Target 2. E.Linux Introduction Cross/交叉开发环境:链接的可能选择: 串口 以太网 JTAG USB Wireless 2. E.Linux Introduction Cross/交叉开发环境的过程: 根据需求制作Target硬件 设置Host 2. E.Linux Introduction Cross/交叉开发环境 Agenda 1. Linux Introduction 2. E.Linux Introduction 3. E.Linux Development process Introduction 3. E.Linux Development process Introduction Host 环境搭建 流程示范图 Bootloader 移植 configuring the storage devices by using the cross environment Kernel 移植和配置 Root 文件系统 开发 应用程序开发 3. E.Linux Development process Introduction 流程示范图:Ref 3. E.Linux Development process Introduction Root File System 3. E.Linux Development process Introduction 3. E.Linux Development process Introduction 3. E.Linux Development process Introduction Step1 选择系统: Linux/Unix/ Windows 选择组件和服务 开发/调试环境 搭建 3. E.Linux Development process Introduction Step2 什么是loader 什么是Bootloader X86的启动过程 Ref pdf: write Boot 3. E.Linux Development process Introduction Step3 移植 配置 编译链接得到Image 3. E.Linux Development process Introduction Step4 必要性: Init进程 系统运行需要的module Why root? 3. E.Linux Development process Introduction 3. E.Linux Development process Introduction Step5 Make Gcc 3. E.Linux Development process Introduction Step5 3. E.Linux Development process Introduction Step6 利用烧写/下载软件 第一个部件的烧写/下载 其他部件的烧写/下载 3. E.Linux Development process Introduction 总结图 This is the end Any Questions ?