欢迎来到天天文库
浏览记录
ID:40191092
大小:626.50 KB
页数:25页
时间:2019-07-25
《嵌入式makefile应用与内核裁剪》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式系统教案嵌入式内核裁剪与Makefile应用7/17/2021嵌入式内核结构1.内核源代码目录介绍2.内核的配置的基本结构3.编译内核的常用命令4.内核编译过程5.内核的下载与运行21.内核源代码目录介绍(1)arch:arch子目录包括所有与体系结构相关的内核代码。(2)include:include子目录包括编译内核所需要的头文件。与ARM相关的头文件在include/asm-arm子目录下。(3)init:这个目录包含内核的初始化代码,但不是系统的引导代码,其中所包含main.c和Version.c文件是研究Linux内核的起点。(4)
2、mm:该目录包含所有独立于CPU体系结构的内存管理代码,如页式存储管理内存的分配和释放等。与ARM体系结构相关的代码在arch/arm/mm中。(5)Kernel:这里包括主要的内核代码,此目录下的文件实现大多数Linux的内核函数,其中最重要的文件是sched.c。与Xscale体系结构相关的代码在arch/arm-pxa/kernel目录中31.内核源代码目录介绍(6)、Drives:此目录存放系统所有的设备驱动程序,每种驱动程序各占一个子目录。(a)/block:块设备驱动程序。块设备包括IDE和scsi设备。(b)/char:字符设备驱动程
3、序。如串口、鼠标等。(c)/cdrom:包含Linux所有的CD-ROM代码。(d)/pci:PCI卡驱动程序代码,包含PCI子系统映射和初始化代码等。(e)/scsi:包含所有的SCSI代码以及Linux所支持的所有的SCSI设备驱动程序代码。(f)/net:网络设备驱动程序。(g)/sound:声卡设备驱动程序。41.内核源代码目录介绍(7)lib目录放置内核的库代码;(8)net目录包含内核与网络的相关的代码;(9)ipc目录包含内核进程通信的代码;(10)fs目录是所有的文件系统代码和各种类型的文件操作代码,它的每一个子目录支持一个文件系统
4、,如JFFS2;(11)scripts目录包含用于配置内核的脚本文件等。每个目录下一般都有depend文件和一个makefile文件,他们是编译时使用的辅助文件,仔细阅读这两个文件对弄清各个文件之间的相互依托关系很有帮助。5提纲配置系统的基本结构Linux中的Makefile配置文件实例解析6Arm体系结构内核编译这里选择menuconfig方式:$cd/home/cvtech/cvtpxa270/linux$makeclean$makemenuconfig进入后加载配置文件config-pxa270建立依赖关系$makedep编译内核$makez
5、Image编译并压缩内核编译生成的Linux映像文件zImage通常保存在arch/arm/boot/目录下。7Arm体系结构内核编译-linux源代码结构arch/arm:与架构和平台相关的代码都放在arch目录下。针对ARM的Linux,有一个子目录和它对应—arm。drivers:这个目录包含了所有的设备驱动程序。驱动程序又被分成“block”、“char”、“net”等几种类型。fs:这里有支持多种文件系统的源代码,几乎一个目录就是一个文件系统,如MSDOS、VFAT、proc和ext2等。include:相关的头文件。它们被分成通用和平台
6、专用两部分。目录“asm-$(ARCH)”包含了平台相关的头文件,在它下面进一步分成“arch-$(MACHINE)”以及“arch-$(PROCESSOR)”等子目录。与板子相关的头文件放在“arch-$(MACHINE)”下,与CPU相关的头文件放在“arch-$(PROCESSOR)”下。例如,对于没有MMU的处理器,“arch-arm”用于存放硬件相关的定义。8Arm体系结构内核编译-linux源代码结构init:含一些启动kernel所需做的所有初始化动作,里面有一个main.c,针对kernel做初始化动作,设置一些参数等,并对外围设备
7、初始化。ipc:提供进程间通信机制的源代码,如信号量、消息队列和管道等。kernel:包含进程调度算法的源代码,以及与内核相关的处理程序,例如系统调用。mm:该目录用来存放内存管理的源代码,包括MMU。net:支持网络相关的协议源代码。lib:包含内核要用到的一些常用函数。如字符串操作,格式化输出等。script:这个目录中包含了在配置和编译内核时要用到的脚本文件。9内核Makefile概述内核中的Makefile和与Makefile相关的文件:顶层Makefile:整个内核配置、编译的总体控制文件。有两个主要任务:产生vmlinux文件和内核模块
8、。为达此目的,顶层Makefile递归的进入到内核的各个子目录。Config:内核配置文件,包含由用户选择的配置选项,用来
此文档下载收益归作者所有