通信原理大综合课件高频全_第1页
通信原理大综合课件高频全_第2页
通信原理大综合课件高频全_第3页
通信原理大综合课件高频全_第4页
通信原理大综合课件高频全_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.1Linux内核移植的概述Linux系统移植包括3个部分:引导程序移植、内核移植和文件系统制作。内核移植包括修改内核[0]代码和配置内核选项两部分。修改内核[0]代码主要是选定内核对处理器的支持和修改与外部设备相关的内核代码。配置内核主要是将Linux系统中多余的设备驱动和一些不必要的操作系统功能去掉,并根据实际开发板配置对一些外部设备进行设置。第6章Linux内核向ARM平台的移植6.2修改内核代码

由于Linux2.6.10以后版本支持的处理器和外部设备逐渐增多,内核代码的修改也变得相对简单。以含有Flash存储器的最小系统为例来说明。一、选定处理器支持修改内核目录树根下的的Makefile,指明交叉编译器找到ARCH和CROSS_COMPILE,修改ARCH?=$(SUBARCH)CROSS_COMPILE?=改为:

ARCH:=armCROSS_COMPILE:=/usr/local/arm/3.4.1/bin/arm-linux-指定了处理器类型时ARM,编译器是arn-linux-gcc-3.4.1。二、修改与Flash存储器相关的内核代码

Linux2.6内核已有Flash的程序代码,但不同的开发平台需要的Flash存储器的分区信息不同,在实际移植内核时要加入对Flash存储器分区的支持。

devs.c位于arch/arm/mach-s3c2410/devs.c,该文件主要是对开发平台设备的定义,包括USB、LCD、I2C、SPI、I2S和看门狗等设备。设开发平台的NandFlash总共64MB,分区信息如下:分区起始地址分区大小分区作用Part00x000000000x00038000224kbootloaderPart10x000380000x0004000032kbootloaderparamsPart20x000400000x002000001.75mlinuxkernelPart30x002000000x0100000030mrootfilesystemPart40x010000000x0200000016mExt-fs1Part50x020000000x0300000016mExt-fs21、在devs.c中增加头文件#include<linux/mtd/partitions.h>#include<linux/mtd/nand.h>#include<asm/arch/nand.h>2、增加NandFlash分区信息根据表中列写的地址在devs.c后半部分增加NandFlash分区信息添加分区结构:

staticstructmtd_partitionpartition_info[]={{name:"bootloader",//分区名字,任意

size:0x00038000,//分区大小

offset:0x0,//分区的起始地址,相对于0x0的偏移

},{name:"parameter",size:0x00008000,offset:0x00038000,},{name:"kernel",size:0x001c0000,offset:0x00040000,},{name:"rootfs",size:0x01E00000,offset:0x00200000,},{name:"Ext-fs1",size:0x01000000,offset:0x02000000,}{name:"Ext-fs2",size:0x01000000,offset:0x03000000,},};3、加入NandFlash分区structs3c2410_nand_setnandset.={nr_partitions:.6,//分区数量

partitions:partition_info,//分区表};4、建立NandFlash芯片支持structs3c2410_platform_nandsuperlpplatform={//NANDFlash芯片支持

//参数意义可参考S3C2410手册

tacls:0,twrph0:30,twrph1:0,sets:.&nandset,nr_sets:1,};Tacls、twrph0、twrph1:芯片参数Sets:支持的分区集。nr_sets:分区集的个数。5、加入NandFlash芯片支持前边定义了Flash分区的信息,需要把此设备的信息加进去,修改此文件的s3c-device-nand结构体变量,添加对dev成员的赋值。structs3c2410_platform_nands3c_nand_info;//新增加的代码structplatform_devices3c_device_nand={.name="s3c2410-nand",//设备名称

.id=1,//有效设备编号,1表示唯一设备

.num_resources=ARRAY_SIZE(s3c_nand_resource),//寄存器区的个数

.resource=s3c_nand_resource,//寄存器区的首地址};6、指定启动时初始化为了使内核启动时能够初始化NandFlash,需要在arch/arm/mach-s3c2410/mach-smdk2410.c中的._initdata部分增加&s3c_device_nand。其中smdk2410_devices[]指明初始化时包括前面所设置的Flash分区信息。staticstructplatform_device*smdk2410_devices[]__initdata={s3c_device_usb,s3c_device_lcd,s3c_device_wdt,s3c_device_i2c,s3c_device_iis,//添加如下信息

s3c_device_nand,};6.3配置内核选项一、配置系统的基本结构Linux2.6内核配置系统由以下3个部分组成:Makefile:分布在各个层次目录中的Makefile,定义Linux内核的编译规则。配置文件(Kconfig):给用户提供配置选择的功能,Kconfig分布在各层目录中。配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于Ncurses图形界面以及基于Xwindows图形界面的用户配置界面,各自对应于Makeconfig、Makemenuconfig和makexconfig)。二、内核配置选项1、内核配置命令#makeconfig:基于文本的最为传统的配置界面,不推荐使用。#makemenuconfig:基于文本选单的配置界面,字符终端下推荐使用。#makexconfig:基于图形窗口模式的配置界面,Xwindow下推荐使用。#makeoldconfig:在原内核配置基础上做修改。如果你不能使用Xwindow,那么就使用make

menuconfig好了。界面虽然比上面一个差点,总比make

config的要好多了。这三个命令中,make

xconfig的界面最为友好,如果你可以使用Xwindow,那么就推荐你使用这个命令。2、选择Y:将该功能编辑进内核。N:不将该功能编辑进内核。M:将该功能编辑成可以在需要时动态插入到内核中的模块。Makemenuconfig界面如果使用的是make

xconfig,使用鼠标就可以选择对应的选项。如果使用的是make

menuconfig,则需要使用空格键进行选取。你会发现在每一个选项前都有个括号,

但有的是中括号有的是尖括号,还有一种圆括号。

用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。

6.4Linux2.6内核移植实例1、准备Linux2.6.14内核源代码1)下载内核代码下载地址:。2)复制内核代码至/usr/src目录下在终端输入命令#cplinux_2.6.14.tar.bz2/usr/src3)解压内核代码在终端输入命令#tar–xzvflinux-2.6.14.tar.gz解压完成后,在/usr/src目录中添加了一个Linux2.6.14文件夹。2、安装交叉编译工具安装Linux2.6.14内核需要用arm-linux-gcc-3.4.1编译器。1)下载arm-linux-gcc-3.4.1编译器下载地址:/prog/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2。2)建立文件夹/usr/local/arm在终端输入命令:#mkdir/usr/local/arm3)复制文件至/usr/local/arm下在终端输入命令:#cpcross-3.4.4.tar.gz/usr/local/arm4)解压文件在终端输入命令:#cd/usr/local/arm#tar–xjvfcross-3.4.4.tar.gz5)建立环境变量在终端输入命令:#exportPATH=/usr/local/arm/2.95.3/bin:$PATH3、修改Makefile文件修改内核目录树根下的的Makefile,指明交叉编译器找到ARCH和CROSS_COMPILE,修改ARCH?=$(SUBARCH)CROSS_COMPILE?=改为:

ARCH:=armCROSS_COMPILE:=/usr/local/arm/3.4.1/bin/arm-linux-4、修改内核代码,增加Linux内核对NandFlash的支持如果直接编译下载的内核

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论