欢迎来到天天文库
浏览记录
ID:58404685
大小:2.35 MB
页数:38页
时间:2020-09-07
《嵌入式Linux内核裁减移植.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式Linux内核裁减移植课程安排nLinux内核配置与编译nLinux内核MakefilenLinux内核启动流程Linux系统结构用户与内核空间•从上图得知,Linux由用户空间和内核空间两部分组成。为什么Linux系统会被划分为用户空间与内核空间?CPU工作模式•现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:用户模式(usr)、快速中断(fiq)、外部中断(irq)、管理模式(svc)、数据访问中(abt)、系统模式(sys)、未定义指令异常(und)•X86也实现了4个
2、不同的级别:Ring0—Ring3。Ring0下,可以执行特权指令,可以访问IO设备等,在Ring3则有很多限制。体系结构•Linux系统利用了CPU的这一特性,使用了其中的两级来分别运行Linux内核与应用程序,这样使操作系统本身得到充分的保护。•例如:如果使用X86,用户代码运行在Ring3,内核代码运行在Ring0。体系结构•内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。什么是Linux内核?内核架构内核配置与编译Linux内核具有可定制的优
3、点,具体步骤如下:1.清除临时文件、中间文件和配置文件.•makeclean:removemostgeneratedfilesbutkeeptheconfig•makemrproper:removeallgeneratedfiles+configfiles•makedistclean:mrproper+removeeditorbackupandpatchfiles内核配置与编译2、确定目标系统的软硬件配置情况,比如CPU的类型、网卡的型号,所需支持的网络协议等3、使用如下命令之一配置内核:•makeco
4、nfig:基于文本模式的交互式配置。•makemenuconfig:基于文本模式的菜单型配置。(推荐使用)•makeoldconfig:使用已有的配置文件(.config),但是会询问新增的配置选项。•makexconfig:图形化的配置(需安装图形化系统)。4、配置信息保存为.config文件内核配置与编译makemenuconfig是最为常用的内核配置方式,•按功能分层次来组织配置选项•使用方法如下:1、使用方向键在各选项间移动;2、使用“Enter”键进入下一层选单;每个选项上的高亮字母是键盘快捷
5、方式,使用它可以快速地到达想要设置的选单项;3、在括号中按“y”将这个项目编译进内核中,按“m”编译为模块,按“n”为不选择(按空格键也可在编译进内核、编译为模块和不编译三者间进行切换),按“h”将显示这个选项的帮助信息,按“Esc”键将返回到上层选单。内核配置与编译•Y:编译出目标文件,并直接链接到内核映像image•M:编译出目标文件,但不链接•N:不编译Y、M、N的区别?内核配置与编译•配置菜单中的项该怎么选择呢?参考Linux.2.6内核配置手册文档•内核配置通常在一个已有的配置文件基础上,通过
6、修改得到新的配置文件,Linux内核提供了一系列可供参考的内核配置文件,位于arch/$cpu/configs–makexxx_defconfig,生成.config•更便捷的方法是使用厂家提供的配置文件–cpconfig_mini6410_n43.config内核配置与编译4、编译内核:•编译内核映像–makezImage–makebzImage区别:在X86平台,zImage只能用于小于512K的内生成带Uboot文件头的的内核:makeuImage注意需要uboot的mkimage工具支持,但本开
7、发板uboot支持直接引导zImage参见:cmd_bootm.c:#ifdefCONFIG_ZIMAGE_BOOT•如需获取详细编译过程信息,可使用:–makezImageV=1–makebzImageV=1编译出错时,可以通过查看编译过程信息定位错误,例如缺少某些编译选项时可以到相应目录下的Makefile去修改•编译好的内核位于arch//boot/目录下内核映像构成内核映像构成内核映像构成启动代码功能代码符号链接Linux内核启动流程演示:编译使用开发板内核1、使用厂商提供的配置文件配
8、置内核2、编译内核映像zImage3、下载到开发板通过uboot启动内核课程安排nLinux内核配置与编译nLinux内核MakefilenLinux内核启动流程内核Makefile组成内核Makefile作用1、决定编译哪些文件?2、决定怎样编译这些文件?3、决定怎样链接这些文件,最重要是它们的连接顺序如何?编译哪些文件1、顶层Makefile决定根目录下哪些子目录将被编译(1)、将子目录分为以下几类:init-y、drivers-y、n
此文档下载收益归作者所有