嵌入式实验报告三.docx
- 文档编号:10799264
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:16
- 大小:2.48MB
嵌入式实验报告三.docx
《嵌入式实验报告三.docx》由会员分享,可在线阅读,更多相关《嵌入式实验报告三.docx(16页珍藏版)》请在冰豆网上搜索。
嵌入式实验报告三
嵌入式实验报告三
实验时间2015.6.9报告人
一、实验目的:
1.学习cygwin;
2.通过上机实验,使学生验证、巩固和充实所学理论知识,加深对相关内容的理解,了解嵌入式Linux的内核布局,掌握内核配置及编译方法。
二、实验要求:
1.安装cygwin及内核源码;
2.配置基于S3c2410处理器的内核选项。
3.编译生成zImage。
三、问题:
1.简述嵌入式开发中和体系结构相关的内核布局,说明哪些目录是在内核移植中需要重点关注的。
linux内核主要由5个模块构成:
进程控制模块,内存管理模块,文件系统模块,进程间通信模块和网络接口模块。
2.简述内核编译的步骤和对应命令的作用,说明zImage、bzImage的异同。
编译步骤:
(1)内核映像包括两部分代码:
实模式代码和保护模式代码,当引导装载器装载内核映像到代码段内存时,分别放置实模式代码和保护模式代码到不同的位置,然后进入实模式代码执行,实模式代码执行中转入CPU保护模式,开始执行32位保护模式代码。
(2)不管是zImage还是bzImage,他们的实模式代码部分都被装入0x9000:
0000(物理地址0x90000)-0x9A00:
0000(物理地址0x9A000),其0x9000:
0000-0x9020:
0000是内核引导扇区,现在只是些假代码,无用。
0x9020:
0000-0x9800:
0000是内核实模式代码。
内核从这里开始执行。
(3)bzImage的内核映像中的保护模式代码,由引导装载器直接装载入高位内存(物理地址0x100000),就是1M以上。
内核实模式代码在完成检查引导装载器兼容性(旧loader可能把实模式代码放在不是0x90000的其他地方,这是需要移到这里),A20(不明白:
-(),初始化gdt,idt(全局描述表,和中断描述表)之后,就将CPU初始化为保护模式,然后跳转到0x100000。
至此内核活了起来,他进入了强大的32位线性地址空间执行。
由于bzImage是在1M以上,所以它的大小理论上是没有限制的。
(4)zImage的的内核映像中的保护模式代码由引导装载器装载入低位内存0x1000:
0000-0x9000:
0000(物理地址0x10000-0x90000),然后实模式代码在把它移到从64K=0x10000位置移到4K位置0x1000,然后做和bzImage实模式代码一样的事情,如:
检查引导装载器兼容性,A20,初始化gdt,idt(全局描述表,和中断描述表),最后进入保护模式代码执行,0x100:
0000(物理地址0x1000)位置。
所以我们看到保护模式代码范围必须是0x10000-0x90000,大小是512K字节,再大就会覆盖实模式安装代码。
所以zImage的内核最大只能512K.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 实验 报告