文本内容:
嵌入式实验报告三实验时间2013/6/9报告人__________
一、实验目的学习;
1.cygwin通过上机实验,使学生验证、巩固和充实所学理论知识,加深对相关内容的理解,了解嵌入
2.式的内核布局,掌握内核配置及编译方法Linux
二、实验要求安装及内核源码;
1.cygwin配置基于处理器的内核选项
2.S3c2410编译生成
3.zlmage
三、问题简述嵌入式开发中和体系结构相关的内核布局,说明哪些目录是在内核移植中需要重点关注
1.的内核主要由个子系统构成进程调度、内存管理、文件系统、网络接口和进程通信Linux5相互关系如图:内核目录有、、arch blockcrypo driversfs、、include initipc kernellib mmnet、security soundusr Documentationscripts等,在内核移植中需要重点注意arch include、、等目录init mmkernel driversfs ipclib简述内核编译的步骤和对应命令的作用,说明、的异同
2.zlmage bzlmage安装
1.cygwin安装路径选择全部安装d:\cygwin All准备文件
2.linux-
2.
4.18-rmk7-pxal-mz
5.tar—/tmp/edukit-2410复制\patch—/tmp/edukit-2410复制cross-armtools-linux-edukit
2410.tar—/tmp安装交叉编译工具设置系统环境
3.$cd/tmp/$tar-P-xvjf cross-armtools-linux-edukit
2410.tar.bz2$Is出现类似这样的信息即为正确,…为目录下其他内容...armtools-linux.../tmp/$sourcearmtools-linux/cross-install.sh$Is/usr出现类似这样的信息即为正确,…为目录下其他内容...arm-linux.../usr/$source/tmp/edukit-2410/set_env_linux.sh安装内核源码包
4.tar-xvjf/tmp/edukit-2410/linux-
2.
4.18-rmk7-pxal-mz
5.tar.bz2安装内核补丁
5.patch-pl/tmp/edukit-2410/patch/linux-
2.
4.18-rmk7-pxa1-mz
5.tar.bz
2.edukit
2410.patch编译生成内核
6.或make xconfigmake menuconfig选择合适的配置文件或者自己进行相应的配置Make depMakezlmage检测生成的内核镜像是否存在
7./arch/arm/boot和的区别来自于保护模式代码的放置位置bzlmage zlmage众所周知,内核映像包括两部分代码实模式代码和保护模式代码,当引导装载器装载内核
1.映像到代码段内存时,分别放置实模式代码和保护模式代码到不同的位置,然后进入实模式代码执行,实模式代码执行中转入保护模式,开始执行位保护模式代码CPU32不管是还是他们的实模式代码部分都被装入(物理地址)
2.zlmage bzlmage,0x9000:00000x90000(物理土也址)其是内核引导扇区,现-0x9A00:00000x9A000,0x9000:0000-0x9020:0000在只是些假代码,无用是内核实模式代码内核从这里开始执0x9020:0000-0x9800:0000行的内核映像中的保护模式代码,由引导装载器直接装载入高位内存(物理地址
3.bzlmage)就是以上内核实模式代码在完成检查引导装载器兼容性(旧可能把0x100000,1M loader实模式代码放在不是的其他地方,这是需要移到这里),初始化(全局0x90000A20gdt,idt描述表,和中断描述表)之后,就将初始化为保护模式,然后跳转到至此CPU0x100000o内核活了起来,他进入了强大的位线性地址空间执行由于是在以上,所32bzlmage1M以它的大小理论上是没有限制的的的内核映像中的保护模式代码由引导装载器装载入低位内存
4.zlmage Ox(物理地址)然后实模式代码在把它移到从1000:0000-0x9000:0000Ox10000-0x90000,64K=0x位置移到位置然后做和实模式代码一样的事情,如检查引导100004K Ox1000,bzlmage装载器兼容性,初始化(全局描述表,和中断描述表),最后进入保护模式代A20,gdt,idt码执行,(物理地址)位置所以我们看到保护模式代码范围必须是0x100:00000x1000大小是字节,再大就会覆盖实模式安装代码所以的内核最0x10000-0x90000,512K zlmage大只能512K.
四、实验心得在这次试验中已经完全熟练了的安装,这次试验花费的时间比较长,用了两节实cygwin验课的时间才完成,第一次实验课没有成功再课后花了些时间操作,在第二次的试验课的时候成功完成了,不过中间也遇到了一些小问题要学好还要继续努力。