ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:20.43KB ,
资源ID:3999308      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3999308.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(linux嵌入式实验报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

linux嵌入式实验报告.docx

1、linux嵌入式实验报告大连理工大学本科实验报告实验名称: 嵌入式操作系统 学院(系): 计算机学院实验 专 业: 计算机系 班 级: 0703 学 号: 学生姓名: mqlz 2010年 12 月 6 日 实验一:linux内核裁剪预习报告一、 实验目的:1、 了解Linux内核源代码的目录结构及各目录的相关内容2、 了解Linux内核各配置选项内容和作用3、 掌握Linux内核配置文件的作用4、 握Linux内核的编译过程5、 掌握将新增内核代码加入到Linux内核结构中的方法二、 实验原理Linux对于计算机硬件、网络和文件系统等部件的驱动程序支持既可以放在系统内核中,也可以作为一个可加

2、载的模块(modules)使用。 当驱动程序放在系统内核中时,Linux 假定该硬件是存在于系统中的;而作为可加载模块使用时,只有在知道该硬件存在于系统时才会作为系统内核的一部分,当 Linux 检测到硬件时,该模块才被加入到系统内核中。三、 实验步骤1、检查编译器的版本 用低版本的编译器去编译高版本的内核有可能不能编译或使内核不能使用。要查看编译器版本,可以执行命令: #gcc v 进入系统内核源代码目录。一般系统内核的源代码放在 /usr/src/ 目录下。用 ls l 命令查看可能显示如下: #ls l /usr/src Total 3 lrwxrwxrwx 1 root root 12

3、 May 4 14:36 linux-2.4.20-8 drwxr-xr-x 15 root root 1024 May 14 11:37 drwxr-xr-x 3 root root 1024 May 4 14:38 sendmail 其中、是一个链接文件,它的链接目标是指向 目录,因此、cd 就是进入 目录。2、删除过时的目标文件 进入 /usr/src/linux-2.4.20-8 目录,运行 make mrproper 命令以清除过时、旧的目标文件。这是因为经过多次编译后系统会留下部分目标文件,如果没有清除干净可能造成本次编译出错。如果没有编译过或者是系统升级的新解压缩目录,则这一步骤

4、可以省略。3、重新设置系统内核配置系统内核的目的是建立一个适合大小、满足需求的系统内核;因此,用户必须根据自己所设计系统的需要对Linux系统支持的硬件和软件进行适当裁减,即从配置内容中选择相应的硬件类型和合适的设备驱动程序。不同的内核版本显示的配置内容有所不同,这里以Linux内核2-4-20版本为例说明。配置内容共有35个类别,如下表所示:编号类别含义1Code maturity level options代码成熟级别2Loadable module support可装载模块支持3Processor type and features处理器类型与特征4General setup一般设置5M

5、emory Technology DeviceMTD设备支持6Parallel port support并行口支持7Plug and Play configuration即插即用支持8Block devices块设备支持9Multi-device support(RAID and LVM)多设备支持10Cryptography support密码系统支持11Networking options网络选项12Telephony Support电话支持13ATA/IDE/MFM/RLL support多种接口存储设备支持14SCSI supportSCSI设备的支持15Fusion MPT devi

6、ce supportFusion MPT 设备支持16IEEE 1394(FireWire)supportIEEE 1394 防火墙设备支持17I2O device supportI2O 设备支持18Network device support网络设备支持19Amateur Radio support业余无线电支持20IrDA(infrared)support红外线支持21ISDN subsystemISDN子系统22Old CD-ROM drivers(not SCSI、not IDE)非SCSI/IDE接口的CD-ROM设备23input core support输入核心支持24Chara

7、cter devices字符设备25Multimedia devices多媒体设备26Crypto Hardware supportCrypto 硬件支持27File systems文件系统28Console drivers控制台驱动29Sound声卡驱动30USB supprotUSB支持31Additional device driver support附加设备驱动支持32Bluetooth support蓝牙支持33profiling supportProfiling支持34Kernel hacking内核分析35Library routines库例程4、编译系统内核当配置完成并保存退出

8、后就要重新编译系统内核。系统一般会在配置结束时提示要进行make dep操作。运行带有 clean 和 dep 选项的 make 文件以清除过时的目标文件并建立合适的独立性(如果要正确编译代码,必须要满足该要求)。命令为: make dep make clean 如果没有出现错误提示,就可以运行 make zImage 命令,该命令将在 /usr/src/linux-2.4.20-8/arch/i386/boot 目录下生成一个全新的内核。该内核文件名称为 zImage ,使用中注意大小写。 如果给内核添加了许多驱动程序或各种各样的支持,可能需要使用 make bzImage 命令,该命令可以

9、制作出一个很大的内核映象文件,该文件可以带所有的选项进行启动。一般当编译的内核较大时系统会推荐内核命名为bzImage。如果看到类似于以下的提示信息,就表示已经完成了内核创建工作。Root device is (3,1)Boot sector xxx bytes.Setup is xxxx bytes.System is xxx kBSyncMake1:Leaving directory /usr/src/linux-2.4.20-8/arch/i386/boot 这时在 /usr/src/ 目录下生成一个zImage或bzImage文件;如果没有这个文件说明编译中有错误,导致编译错误的原因可

10、能有:内核配置有问题,应重新配置后再编译。内核源代码有问题,应尽量选用稳定的内核(版本号为偶数)版本。文件连接的问题。系统硬件的兼容性问题也可能导致内核编译失败。内核编译完成后,由于有些模块并没有编译进内核、而是通过加载的(选择“m”);所以需要编译、安装模块。命令为: make modules make modules_install 重新编译内核的过程,会花费比较多的时间;具体的时间取决于你选择内核的大小、处理器的速度等因数。一般在嵌入式系统中内核比较精悍,编译过程会比较快;另外、如果没有运行其他的负载密集型的应用程序(如 X 图形程序),编译过程会更快。5、启用新系统内核以上各个步骤完成

11、之后,就可以准备启用新的系统内核来工作了。如果你没有采用GRUB或LILO等引导程序进行多培、配置启动,则一定要备份正在使用的系统内核。在启用新的系统内核前,作好正在使用的系统内核备份是非常重要的!一旦新系统内核崩溃,用应急启动盘进入 Linux 系统,恢复旧系统内核。制作步骤如下: cd /boot mv vmlinuz-2.4.20-8 #现有的内核更名cp /usr/src/ /boot #复制新内核到/boot目录如果你用 GRUB或 LILO 配置文件启动,则要修改该文件。以文件为例default=0timeout=10splashimage=(hd0,1)/boot/grub/ti

12、tle Red Hat Linux (2.4.20-8)root (hd0,1)kernel /boot/ ro root=LABEL=/initrd /boot/title WinXProotnoverify (hd0,0)chainloader +1 第一种方案,不增加启动选项:把 文件中的以下行:kernel /boot/ ro root=LABEL=/改为:kernel /boot/zImage ro root=LABEL=/6、试用新的内核启修改后保存文件,如果是用LILO一定要在超级用户提示符下执行lilo 或lilo v 命令以使配置文件生效;如果用GRUB则无须执行命令。重启系

13、统后则可以用 Linux 新的内核启动了。总结报告一、 实验结果在另一终端中打开minicom,复位开发板,进入PPCBoot的命令行界面,执行下面两行语句SMDK2410?#setenv?bootargs?console=ttySAC0?initrd=0x,0x00440000?root=/dev/ram?init=/linuxrcSMDK2410?#tftp?0x?zImage;?go?0x注意:?上述两行语句中的ttySAC0、0x00440000部分,跟第一部分内核移植是不同的。?这里测试没有使用ramdisk文件系统,原因是前面移植的文件系统不能在这个内核下使用,需要移植更高版本的b

14、usybox才能使用。出现如下信息,。Uncompressing?Linux.?done,?booting?version?2.6.22.5)?(arm-linux-gcc?version?#7?Sun?Sep?2?14:24:43?CST?2007CPU:?ARM920T?revision?0?(ARMv4T),?cr=c0007177Machine:?SMDK2410ATAG_INITRD?is?deprecated;?please?update?your?bootloader.Memory?policy:?ECC?disabled,?Data?cache?writebackCPU?S3C

15、2410?(id?0x)S3C2410:?core?MHz,?memory?MHz,?peripheral?MHzS3C24XX?Clocks,?(c)?2004?Simtec?Electronics表明内核能够运行在开发板上,实验成功二、 实验心得Linux 内核看似佷庞大,其实对于初学者来说,我们不必学习之初就一头钻进浩如烟海的内核代码中问剑;熟练配置内核的一些常用选项,并编译出来下载到开发板中运行试用,也是迈向Linux 系统顶峰的必行之路。本周本来想制作自己的内核镜像和根文件系统,后来发现这并非易事,最后放弃了自己制作,而选择配置开发板的内核文件,其实学习Linux 不像单片机系统,你

16、不必从“零”代码开始,一切先从学会配置、编译、下载运行开始。几天的学习中,在老师的帮助下学到很多有用的知识收获很大。实验一:linux下串口驱动开发预习报告一、实验目的:1、学习在linux下进行驱动设计原理2、掌握使用模块方式进行驱动开发调试的过程二、实验内容:1、编写虚拟硬件驱动程序,实验驱动的各个接口函数的实现,分析理解驱动与应用程序的交互过程。2、 编写应用程序加以验证。三、 实验步骤:1、 实验任务:编写一驱动,实现将用户输入的数据,顺序排序2、 实验代码:# define _KERNEL_# define MODULE#include #include #include #incl

17、ude #include /* printk() */#include /* kmalloc() */#include /* everything. */#include /* size_t */#include #include /* O_ACCMODE */#include /* COPY_TO_USER */static struct file_operations mydriver_ops= write: mydriver_write, read: mydriver_read, open: mydriver_open, release: mydriver_release,;int _i

18、nit mydriver_init(void) int result; register_chrdev(demo_MAJOR,mydriver1,&mydriver_ops); if(result0) printk(register errn); return result; 2.4.204l/4、 动态安装(1)创建设备文件。 mknod /dev/mydriver c major minor c 是指字符设备,major是主设备号,就是在/proc/devices里看到的。minor是从设备号,设置成0就可以了。 (2)安装设备 insmod f 如果安装成功,在/proc/devices

19、文件中就可以看到设备mydriver,并可以看到它的主设备号。(3)卸载设备$ rmmod mydriver总结报告一、 实验结果编写的驱动程序很好的运行,完成预定的功能二、 实验总结通过一天的实验,让我学会了很多以前没有接触过的有趣的知识进一步的掌握了linux环境下的一些shell命令和对vi的运用,但是在里面也遇到了一些问题,比如编完程序由于对编译工具make的掌握不够熟练又不想照搬书上的东西,所以花了很长时间在研究make上,导致最后的实验进度落后同学很多,但是最终还是学会了写makefile文件的方法,最后写出了一个完美的makefile文件,通过这个实验使我对linux驱动编程产生强烈的兴趣,以后的生活中linux的应用场合一定会越来越多,比如android,如果掌握它的驱动开发对以后的工作会非常有帮助。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1