欢迎来到天天文库
浏览记录
ID:57015068
大小:3.23 MB
页数:79页
时间:2020-07-26
《嵌入式Linux开发环境及其在ARM上的移植课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式系统设计主讲教师:张错玲计算机工程学院安徽三联学院ANHUISANLIANUNIVERSITY第6章嵌入式Linux开发环境及其在ARM上的移植主讲教师:张老师嵌入式系统安徽三联学院计算机工程学院本章目录6.1嵌入式Linux开发环境6.1.1交叉编译工具介绍6.1.2交叉编译环境的建立6.2嵌入式Linux在ARM平台上的移植6.2.1Linux内核源代码的组织6.2.2嵌入式Linux内核裁剪方法6.2.3嵌入式Linux内核定制过程6.2.4内核编译及装载6.2.5文件系统及其实现教学目标了解交叉编译工具;掌握gcc编译器和gd
2、b调试工具;理解和使用make命令和makefile文件;掌握交叉编译环境的建立;了解嵌入式linux系统的移植过程,linux内核裁剪方法、定制过程、内核编译及装载;掌握常用的嵌入式文件系统种类;了解文件系统的构建方法。Linux系统移植1.开发环境的搭建2.系统引导-bootloader引导(1)bootloader概念:bootloader就是在操作系统内核运行前运行的一段小程序。通过这段小程序,完成了对硬件的基本初始化,并将内核映像文件和文件系统复制到RAM中,然后为内核启动设置基本的运行环境,之后就跳转到内核映像的首地址处,将CP
3、U运行权交给内核,起到引导和加载内核镜像的作用。(2)位置:BootLoader是系统复位或上电后首先运行的代码,一般应写在起始物理地址0x0开始。Linux系统移植Bootloader的类型:(1)Redboot是Redhat公司随eCos发布的一个BOOT方案,是一个开源项目。(2)ARMboot是一个ARM平台的开源固件项目,基于PPCBoot,鉴于对PPCBoot的严重依赖性,已经与PPCBoot项目合并,新的项目为U-Boot。(3)U-Boot是由开源项目PPCBoot发展起来的,ARMboot并入了PPCBoot。Linux系
4、统移植Bootloader的类型:(4)Blob(BootLoaderObject)是由Jan-DerkBakkerandErikMouw发布的,是专门为StrongARM构架下的LART设计的BootLoader。(5)Bios-lt是专门支持三星(Samsung)公司ARM构架处理器S3C4510B的Loader,可以设置CPU/ROM/SDRAM/EXTIO,管理并烧写FLASH,装载引导uClinux内核。Linux系统移植Bootloader的类型:(6)Bootldr是康柏(Compaq)公司发布的,类似于compaqiPAQP
5、ocketPC,支持SA1100芯片。它被推荐用来引导Llinux,支持串口Y-modem协议以及jffs文件系统。(7)vivi是韩国mizi公司开发的bootloader,适用于ARM9处理器。Linux系统移植3.内核引导内核启动进一步对硬件进行初始化,对设备驱动程序进行加载,文件系统的挂载及应用程序的执行。在执行前,处理器CPU应满足以下状态:R0=0R1=机器类型R2=参数标记列表在RAM中的起始地址MMU-offI-cache-onoroffD-cache–offLinux系统移植CPU寄存器的设置:R0=0;R1=机器类型;R
6、2=启动参数标记列表在RAM中的起始地址;这三个寄存器的设置是在最后启动内核时通过启动参数来传递完成的。CPU模式:关闭中断;属于SVC模式;Bootloader中没有必要支持中断的实现,这属于内核机制以及设备驱动管理的管理范畴;SVC模式是系统的一种保护模式,这样就可以进行一些只能在SVC模式下的操作,例如一些特定寄存器访问操作。Linux系统移植Cache和MMU的设置:MMU必须关闭;数据cache必须关闭;指令cache可以关闭也可以开启;Bootloader中所有对地址的操作都是使用物理地址,是实在的实地址,不存在虚拟地址,因此M
7、MU必须关闭。Bootloader主要是装载内核镜像,镜像数据必须真实写回SDRAM中,所以数据cache必须关闭;而对于指令cache,不存在强制性的规定,但是一般情况下,推荐关闭指令cache。Linux系统移植4.设备驱动程序的移植——如LCD、网卡、触摸屏等设备驱动程序的移植,主要是相近源码的移植修改。5.文件系统的挂载——在内核启动的最后阶段,进行文件系统的加载。本章目录6.1嵌入式Linux开发环境6.1.1交叉编译工具介绍6.1.2交叉编译环境的建立6.2嵌入式Linux在ARM平台上的移植6.2.1Linux内核源代码的组织
8、6.2.2嵌入式Linux内核裁剪方法6.2.3嵌入式Linux内核定制过程6.2.4内核编译及装载6.2.5文件系统及其实现6.1嵌入式Linux开发环境采用交叉编译开发方式的
此文档下载收益归作者所有