




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux在ARM上的移植一、什么是移植?二、Linux内核代码三、Linux内核编译9/14/2022一、什么是移植?移植就是让一个平台的代码能够在其它平台上运行。将Linux运行在ARM上,即称为Linux在ARM上的移植。移植大致分3个层次:体系结构、处理器和板级移植。通常所说的移植指的是Linux内核移植,而不是发行版本的移植。9/14/2022一、什么是移植?将Linux移植到ARM的前提:熟悉Linux系统运行机理、熟悉Linux内核代码结构、掌握ARM体系结构、目标处理器、目标系统相关、掌握GNU汇编和C编程以及Linux下脚本编程。通常仅需要作板级移植,有必要时进行处理器级移植
2、。参考现有的移植。9/14/2022二、Linux内核代码Linux内核由进程管理、内存管理、文件系统、网络接口、进程间通信、设备驱动等模块组成。Linux内核代码包含这些目录:arch Documentation include kernel scripts drivers init lib mmfs ipc net9/14/2022二、Linux内核代码/arch目录包含各体系结构特定的代码,如ARM、i386、PPC、MIPS等。*/Documentation目录存放相关说明文档。/include目录存放相关头文件。*/kernel目录包含Linux内核管理代码/srcipts目录存放一
3、些脚本文件/drivers目录包含Linux内核所有设备驱动9/14/2022二、Linux内核代码/init目录包含内核初始化代码/lib目录包含一些库文件/mm目录存放内存管理代码/fs目录存放所有文件系统代码/ipc目录存放进程间通信代码/net目录存放网络相关代码9/14/2022二、Linux内核代码/arch目录包含各体系结构特定的代码,在每个体系结构目录下都有:boot 内核需要的特定平台代码kernel 体系结构特有的代码lib 通用函数在特定体系结构的实现math-emu 模拟FPU的代码,在ARM 中,使用mach-xxx代替*mm 特定体系结构的内存管理实现9/14/20
4、22二、Linux内核代码/include目录存放体系结构特定的头文件,里面包含如asm-arm、asm-i386等目录,在其中才存放相关头文件。*9/14/2022二、Linux内核移植Linux在ARM上的移植涉及目录和文件/根目录:Makefile文件/arch/arm目录:Makefile、config.in文件/arch/arm/boot目录:Makefile文件/arch/arm/boot/compressed目录:Makefile、head-xxx.S文件9/14/2022二、Linux内核移植Linux在ARM上的移植涉及目录和文件/arch/arm/kernel目录:Make
5、file、debug-armv.S、entry-armv.S、setup.c/arch/arm/mm目录:mm-armv.c文件其它目录如/arch/arm/def-configs目录,用于存放目标板的默认配置等。9/14/2022二、Linux内核移植/根目录Makefile文件 修改该Makefile文件,指定目标平台和交叉编译器。指定ARCH=目标平台移植前:#ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)移植后:ARCH := arm9
6、/14/2022二、Linux内核移植/根目录Makefile文件 指定交叉编译器:指定CROSS_COMPILE=交叉编译器移植前:CROSS_COMPILE = 移植后:CROSS_COMPILE = arm-linux-指定使用arm-linux-gcc交叉编译器9/14/2022二、Linux内核移植/arch/arm目录Makefile文件 指定内核起始运行地址,和硬件相关。例如:ifeq ($(CONFIG_ARCH_xxx),y)TEXTADDR = 0 xC0008000MACHINE = xxxendifCONFIG_ARCH_xxx在config.in中。9/14/2022
7、二、Linux内核移植/arch/arm目录config.in文件 修改配置菜单,增加平台配置选项。choice ARM system type xxx-based CONFIG_ARCH_xxx Shark CONFIG_ARCH_SHARK RiscPC9/14/2022二、Linux内核移植if $CONFIG_ARCH_xxx = y ; thencomment xxx Implementationdep_bool SMDK (MERI TECH BOARD) CONFIG_xxx_SMDK $CONFIG_ARCH_xxxfi # /* CONFIG_ARCH_xxx */9/14/
8、2022二、Linux内核移植还有其它配置选项,可以根据自己的需要进行添加或者修改,具体参考已经移植的代码。添加的信息将会在make menuconfig的菜单中出现。9/14/2022二、Linux内核移植/arch/arm/bootMakefile文件解压缩器从这里调用内核:ifeq ($(CONFIG_ARCH_xxx),y)ZTEXTADDR = 0 xXXXX8000EndifZTEXTADDR:解压缩器的起始地址.需要根据硬件进行设定。9/14/2022二、Linux内核移植/arch/arm/boothead-xxx.S新增该文件,初始化处理器。编写这段代码需要非常熟悉处理器。源
9、代码参考内核。9/14/2022二、Linux内核移植/arch/arm/boot/compressdMakefile文件增加head-xxx.S的编译。ifeq ($(CONFIG_ARCH_xxx),y)OBJS += head-xxx.oendif9/14/2022二、Linux内核移植/arch/arm/kernelMakefile文件增加处理器和其它功能支持:no-irq-arch := $(CONFIG_ARCH_INTEGRATOR) $(CONFIG_ARCH_CLPS711X) $(CONFIG_FOOTBRIDGE) $(CONFIG_ARCH_EBSA110) $(CON
10、FIG_ARCH_SA1100) $(CONFIG_ARCH_CAMELOT) $(CONFIG_ARCH_S3C2400) $(CONFIG_ARCH_xxx) 9/14/2022二、Linux内核移植/arch/arm/kerneldebug-armv.S、entry-armv.S、setup.c增加代码,对芯片进行初始化和中断处理,以及体系结构相关初始化/arch/arm/mmmm-armv.c和平台相关的内存管理9/14/2022二、Linux内核移植其它目录如/arch/arm/mach-xxx其它文件和代码,请参考现成的移植。/driver目录板级移植时,一些必要的驱动程序如以太网
11、等。9/14/2022三、Linux内核编译需要正确安装交叉编译器如arm-linux-gcc相关命令make menuconfig菜单界面make dep依赖关系make zImage得到内核make mrproper干净的源码make distclean去除文件9/14/2022三、Linux内核编译进入配置菜单/界面make config文本界面make menuconfig菜单界面*makexconfig图形界面常用make menuconfig命令进行。进入Linux内核源代码目录,执行该命令,得到Linux内核配置主界面。9/14/2022三、Linux内核编译对各项进行配置,包括系统类型、存储器、网络等。可以装载某开发板的默认配置,如MagicARM2410默认配置文件为ZY2410 x。9/14/2022三、Linux内核编译装载默认配置后,可修改或者不修改。配置完毕选择退出并保存。9/14/2022三、Linux内核编译配置完毕,需要先建立依赖关系:make dep如果没有错误,即可编译内核:make zImage如果编译无错,在arch/arm/boot目录下将生成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年美容师化妆品成分分析题及答案
- 2024年统计学必考内容试题及答案
- 2024年汽车美容工艺流程再造试题及答案
- 古代文学史命题试题及答案汇编
- 汽车维修信息化管理知识试题及答案
- 妇女儿童防拐安全知识
- 2024年汉语言文学小自考心理调适试题及答案
- 山东省聊城市2024-2025学年高二上学期1月期末地理试题 含解析
- 食品安全风险评估理论试题及答案
- 食品行业的可持续发展方向试题及答案
- 人武专干考试题型及答案
- 2025届高三化学二轮复习 化学反应原理综合 课件
- 2025年北京五湖四海人力资源有限公司招聘笔试参考题库含答案解析
- GB/T 14975-2012结构用不锈钢无缝钢管
- 贵州省黔西南州、黔东南州、黔南州中考文综试题(图片版含答案)
- 例谈小组合作学习在小学英语教学中的有效开展(讲座)课件
- 农产品食品检验员(中级)技能等级认定考试题库(含答案)
- 幼儿园中班安全《会咬人的电》课件
- 幼儿园维稳排查记录表
- 活动一:文明好宝宝(语言活动)课件
- 2005雷克萨斯gs430gs300原厂维修手册中文sa
评论
0/150
提交评论