您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 03-嵌入式操作系统原理
嵌入式操作系统原理嵌入式LINUX操作系统引导嵌入式LINUX操作系统引导原理嵌入式系统引导器BootLoader编程嵌入式LINUX引导原理引导过程•系统加电或复位后,所有的CPU通常都从CPU制造商预先安排的地址上取指令•嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM或FLASH等)被安排这个起始地址上,因此在系统加电后,CPU将首先执行BootLoader程序•我们的BootLoader是从0地址开始存放的,而这块起始地址需要采用可引导的固态存储设备如FLASH引导器BootLoader编程BootLoader就是系统引导程序,类似于PC上的BIOS通过这段程序,我们可以初始化硬件设备、建立内存空间的映射,设置系统软硬件状态,为最终操作系统内核接管整个系统准备环境引导器BootLoader编程初始化硬件,特别是内存控制器提供Linux内核的启动参数启动Linux内核如何编写调试BootLoader简化开发过程的一些特征:•读写存储器•通过串口/网口上载文件到RAM•从RAM复制文件到Flash中BootLoader的启动过程多阶段的BootLoader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的BootLoader大多都是2阶段的启动过程,也即启动过程可以分为stase1和stase2两部分。BOOTLOADER的生命周期初始化硬件•设置UART•设置网口•设置USB•检测存储器设置启动参数•内核硬件信息•波特率跳转到LinuxKernel的首地址BootLoader消亡,系统控制权移交给Linux内核嵌入式LINUX操作系统开发体系结构概览进程、线程与调度管理内存管理文件系统系统调用体系结构概览体系结构概览内核的功能•进程控制(processmanagement)•内存管理(Memorymanagement)•文件系统管理(Filesystemmanagement)•设备驱动程序(Devicecontrol)•网络(Networking)内核层次内核在系统中的位置•用户进程•系统调用接口•内核•硬件什么是Linux内核?•从程序员的角度•从用户的角度系统调用内核提供的一套C语言函数库称为系统调用应用程序使用系统调用完成编程任务系统调用分类•进程管理•进程间通信(IPC)•文件系统管理•网络编程(Socket)嵌入式LINUX操作系统内核选择内核内核配置编译内核安装内核选择内核认识Linux内核版本主版本•1.02.02.22.42.6•2,3年更新稳定版•2.0.402.2.122.4.182.6.7•1,2月更新稳定版更新•2.6.11.1~2.6.11.7•1,2周更新Linux内核源码内核目录结构:•/usr/src/Linux-***•/arch(重点)•/drivers•/fs•/include•/init•/ipc•/kernel•/mm•/net内核配置进入到内核源代码目录•cd/usr/src/linux-2.***makeconfigmakexconfigmakemenuconfigmake编译生成的文件vmlinux•未压缩的Linux内核varch/arch/boot/zImage•经zlib压缩后的Linux内核varch/arch/boot/bzImage•经zlib压缩后的Linux内核,b是指big,压缩狠/boot/vmlinuz-version•经zlib压缩后的Linux内核编译生成的文件v/boot/System.map-version•内核符号地址/boot/initrd-version.img•ramdisk,要挂载的根文件系统/lib/modules/version•模块vmodules.dep•模块依赖文件裁剪Linux目的是创建嵌入式Linux嵌入式硬件资源有限,所以要裁剪软件裁剪的对象包括:•Linux内核•库•守护进程•GUI裁剪Linux选择合适的文件系统•ext2,ext3,jffs2模块机制网络协议无用的驱动程序调试信息裁剪的技术要求•能省就省,能小就小,能快就快安装内核移植相关的文件相关文件和目录•arch/arm/config.in•arch/arm/Makefile•arch/arm/boot/Makefile•arch/arm/mach-s3c2410/*•include/asm-arm/arch-s3c2410/*•arch/arm/tools/mach-types•arch/arm/boot/compressed/head-s3c2410.S•arch/arm/boot/compressed/Makefile实验与案例实验1:移植引导程序到开发板实现引导•通过本实验指导学员熟悉U-boot或其他引导源码,指导学员在开发板上移植、编译、配置引导程序实验2:编译和安装内核•通过本实验指导学员熟悉对内核进行剪裁,在开发板上编译、安装内核实验3:Linux系统调用•通过本实验指导学员熟悉熟悉文件系统、进程管理、内存管理编程,熟悉系统调用谢谢大家问题建议反馈后续资源
本文标题:03-嵌入式操作系统原理
链接地址:https://www.777doc.com/doc-3636081 .html