预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共29页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

嵌入式系统 —内核裁剪和移植 •Linux内核移植裁减 „内核移植裁减步骤 A、下载最新版本的内核 B、修改内核代码 C、裁减内核 „内核的下载地址 http://download.chinaunix.net/download/0007000/6156.shtml http://www.kernel.org/pub/linux/kernel/v2.6/ •Linux内核移植裁减 修改内核代码 Linux内核的移植主要包含启动代码的修改,内核的链接 及装入,参数传递,内核引导几个部分。我们在移植工作中要 改动的代码主要集中在与体系结构相关部分。 主要修改的文件 /arch/arm/boot/bootp/init.S内核在arm平台上启动的初始化 代码 根目录下的Makefile指定目标平台和交叉编译器 /arch/arm/Makefile设置内核起始运行地址和 具体处理器 /arch/arm/config.in设置其在makemenuconfig时的 显示 •Linux内核移植裁减 „还需要修改的文件 „arch/arm/boot/Makefile „arch/arm/boot/compressed/Makefile „arch/arm/boot/compressed/head-s3c2410.S „arch/arm/def-configs目录中复制配置好的config文件 „arch/arm/kernel/Makefile „arch/arm/kernel/debug-armv.S „arch/arm/kernel/entry-armv.S „arch/arm/kernel/setup.c „arch/arm/mm/mm-armv.c „arch/arm/math-s3c2410目录在2.4.18版内核中没有,这里都是C 语言编写的程序,是用户自己添加的有关开放板上USB、电源管 理等功能的相关代码。 •Linux内核移植裁减 „裁减内核 #makemenuconfig •Linux内核移植裁减 Codematurityleveloptions代码成熟度选项 Generalsetup常规设置 Loadablemodulesupport可加载模块支持 Blocklayer块设备层 Processortypeandfeatures中央处理器(CPU)类型及 特性 Busoptions(PCI,PCMCIA,EISA,MCA,ISA)总线选项 Executablefileformats可执行文件格式 Networking网络 DeviceDrivers设备驱动程序 Filesystems文件系统 InstrumentationSupport分析支持 Kernelhacking内核hack选项 Securityoptions安全选项 Cryptographicoptions加密选项 Libraryroutines库子程序 •Linux内核移植裁减 „原则 (a)尽量裁减内核,可以舍弃的部分都先去掉。 (b)在SYSTEMTYPE目录中选择正确的CPU型号,我们这里应该选择 SamsungS3C2410,在S3C2410Implementations选项中选择 SMDK2410/A9M2410。 (c)在Generalsetup目录下Defaultkernelcommandstring选项中填入 正确的commandstring,在这里设置正确的串口名和波特率。 (d)在Characterdevices目录下的Serialdrivers选项中一定要选择 Samsung。 设置cpu LCD驱动 配置触摸屏 配置USB鼠标和键盘 网卡支持 编译内核 制作文件系统映像 „把自己的程序或文件复制到这个文件系 统在PC机上的相应目录里面去,然后 重新打包生成image,下载和烧写 打开ftp软件 Linux移植 7.通过TFTP下载Linux内核(zImage)到RAM中 SMDK2410#tftp0x30008000zImage//主机的zImage文件放在 /tftpboot目录下 下载内核 文件系统 Linux移植 将RAM中的内核烧写到flash中 SMDK2410#fl0x10400000x300080000x100000 0x1040000为内核烧写到Flash的地址,当ppcboot启动后它会从 此地址加载Linux内核。 0x30008000为上一步使用的内核下载到内存中的地址。 0x100000为内核的大小,0x100000可被替换为大于内核大小且 是0x20000倍数的最小整数。 Linux移植 Linux移