嵌入式Linux内核移植
姓名:成 炼 学号:081141
实验目的
l 了解Linux内核源代码的目录结构及各目录的相关内容
l 了解Linux内核各配置选项内容和作用
l 掌握Linux内核配置文件的作用
l 掌握Linux内核的编译过程
l 掌握将新增内核代码加入到Linux内核结构中的方法
实验指引
尽管目前Linux 2.6版本内核已经增加了很多对ARM体系甚至是S3C2410 CPU的支持,但仍然需要对内核作一些小的修改来适应我们的开发板,并且需要重新配置、编译和重新生成新的内核映像。本实验着重从NAND Flash分区到下载到开发板等一系列连贯的操作来进行嵌入式Linux内核的移植。本实验的内核版本为2.6.26。
1. NAND Flash分区
从Nand Flash启动时,S3C2410硬件会自动把Nand Flash前4K代码拷贝芯片内部RAM空间,CPU其实是从内部RAM开始执行代码的,所以vivi必须放到Nand Flash顶端。vivi开始执行后将初始化硬件设备、建立内存空间映射表,为调用内核做好准备;然后把压缩的内核映像加载到SDRAM中;最后跳转到内 核映像入口,启动内核。
内核MTD分区必须与vivi分区相一致。因为,vivi分区中的地址是引导程序、内核映像及文件系统下载到Nand Flash的真正地址;而内核启动时,内核并不是去读vivi分区中的地址,而是去读内核MTD分区设定的地址;所以,如果内核MTD分区与vivi分区不相同,很可能导致不能正常启动内核及读取文件系统。
1.1 vivi的重新分区
根据开发板的Nand Flash大小及开发用途确定新的vivi分区,如表1.1。
表1.1 vivi的分区信息表
名称 |
offset |
size |
flag |
容量 |
vivi |
0x00000000 |
0x00020000 |
0 |
128K |
param |
0x00 |