嵌入式系统课件_内核裁剪和移植
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设置cpu
LCD 驱动
配置触摸屏
配置 USB 鼠标和键盘
网卡支持
编译内核
制作文件系统映像
把自己的程序或文件复制到这个文件系 统在PC 机上的相应目录里面去,然后 重新打包生成 image,下载和烧写
打开ftp软件
Linux移植
7.通过TFTP下载Linux内核(zImage) 到RAM中 SMDK2410 # tftp 0x30008000 zImage //主机的zImage文件放在
0x100000为内核的大小,0x100000可被替换为大于内核大小且 是0x20000倍数的最小整数。
Linux移植
Linux移植
通过TFTP下载文件系统(ramdisk.image.gz) 到RAM中 SMDK2410# tftp 30800000 ramdisk.image.gz//主机的
/tftpboot目录下
下载内核
文件系统
Linux移植
将RAM中的内核烧写到flash中 SMDK2410# fl 0x1040000 0x30008000
0x100000
0x1040000为内核烧写到Flash的地址,当ppcboot启动后它会从 此地址加载Linux内核。
0x30008000为上一步使用的内核下载到内存中的地址。
嵌入式系统
— 内核裁剪和移植
•Linux 内核移植裁减
内核移植裁减步骤 A、下载最新版本的内核 B、修改内核代码 C、裁减内核
内核的下载地址
/download/0007000/6156.shtml /pub/linux/kernel/v2.6/
根目录下的Makefile
指定目标平台和交叉编译器
/arch/arm / Makefile 具体处理器
设置内核起始运行地址和
/arch/arm/config.in 显示
设置其在make menuconfig时的
•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
库子程序
•Linux 内核移植裁减
原则
(a) 尽量裁减内核,可以舍弃的部分都先去掉。 (b) 在SYSTEM TYPE目录中选择正确的CPU型号,我们这里应该选 择
Samsung S3C2410,在S3C2410 Implementations选项中选择 SMDK2410/A9M2410。 (c) 在General setup目录下Default kernel command string选项中填入 正确的command string,在这里设置正确的串口名和波特率。 (d) 在Character devices目录下的Serial drivers选项中一定要选择 Samsung。
语言编写的程序,是用户自己添加的有关开放板上USB、电源管 理等功能的相关代码。
•Linux 内核移植裁减
裁减内核 #make menuconfig
•Linux 内核移植裁减
Code maturity level options
代码成熟度选项
General setup
常规设置
Loadable module support
可加载模块支持
Block layer
块设备层
Processor type and features
中央处理器(CPU)类型及 特性
Bus options (PCI, PCMCIA, EISA, MCA, ISA)
总线选项
Executable file formats
可执行文件格式
Networking
ramdisk.image.gz文件放 在/tftpboot目录下
将RAM中的内核烧写到flash中 SMDK2410# fl 1140000 30800000 200000
文件系统
所谓文件系统就是用户程序和文件的集 合(RAMDISK, JFFS2,CRAMFS…)
放到一个统一的目录下,然后通过一个 工具打包成一个映象(image)文件(压 缩),然后烧制到板子上以后
•Linux 内核移植裁减
修改内核代码
Linux内核的移植主要包含启动代码的修改,内核的链接 及装入,参数传递,内核引导几个部分。我们在移植工作中要 改动的代码主要集中在与体系结构相关部分。
主要修改的文件
/arch/arm/boot/bootp/init.S 内核在arm平台上启动的初始化 代码
mkfs.jffs2 -d jffs2_dir -o jffs2.img
CRAMFS 文件系统
特点是:不拷贝到SDRAM 中,直接在 flash 中,只读.
mkcramfs cramfs_dir cramfs.img
LINUX 内核启动完成后,会逐个挂接这 些文件系统映象文件并做解包的工作(根 文件系统rootfs)
ramdisk文件系统
linux 内核运行时都会把文件系统数据块的信 息拷贝到SDRAM 中,也就是相当于在SDRAM 中划出一块区域模拟PC 机的硬盘
JFFS2 文件系统
特点:linux 内核启动以后,不会把jffs2 文件系统中的数据拷贝到的SDRAM 中, 直接在flash 中运行,可读可写.
网络
Device Drivers
设备驱动程序
File systems
文件系统
Instrumentation Support
分析支持
Kernel hacking
内核hack选项
Security options
安全选项
Cryptographic options
加密选项
Library routines