下载此文档

嵌入式操作系统实验报告.docx


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
该【嵌入式操作系统实验报告 】是由【秋江孤影】上传分享,文档一共【16】页,该文档可以免费在线阅读,需要了解更多关于【嵌入式操作系统实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。〈〈嵌入式操作系统》实验报告
班级计算机学号姓名指导教师庄旭菲
内蒙古工业大学信息工程学院计算机系
2018年6月
实验一Linux内核移植与编译实验
实验目的
了解Linux内核相关知识与内核结构
了解Linux内核在ARM设备上移植的基本步骤和方法
掌握Linux内核裁剪与定制的基本方法实验内容
分析Linux内核的基本结构,了解Linux内核在ARM设备上移植的一些基本步骤及常识。
学习Linux内核裁剪定制的基本配置方法,利用UP-Magic210型设备配套Linux内核进行自定义功能(如helloworld显示)的添加,并重新编译内核源码,生成内核压缩
文件zImage,下载到UP-Magic210型设备中测试。
实验步骤实验目录:/UP-Magic210/SRC/kernel/编译内核:在宿主机端为UP-Magic210设备的Linux内核编写简单的测试驱动(内核)程序并修改内核目录中相关文件,添加对测试驱动程序的支持。
(1)、使用vim编辑器手动编写实验代码
内如如下:
#include<linux/>
#include<linux/>
MODULE_LICENSE("DualBSD/GPL");、进入实验内核源码目录修改driver/char/目录下的Makefile文件,按照内核中Makefile语法添加helloworld程序的编译支持
[******@localhostvidrivers/char/Makefile
在Makefile中(大约在91行)添加如下一行
obj-$(CONFIG_TOSHIBA)+=
obj-$(CONFIG_I8K)+=
obj-$(CONFIG_DS1620)+=
obj-$(CONFIG_HW_RANDOM)+=hw_random/
obj-$(CONFIG_HELLO_MODULE)+=
obj-$(CONFIG_PPDEV)+=、运行makemenuconfig配置内核对helloworld程序的支持:
[******@localhostmakedistclean
[******@localhostmakemenuconfig
先加载内核配置单,如图:
然后进入到DeviceDrivers--->菜单中如图:
进入到Characterdevices--->如图:
进入该菜单会发现[]HelloWorldTest选项,按下空格将其静态编译进内核
退出保存内核配置、重新编译内核
在内核源码的顶层目录下编译内核
[******@localhostmake
scripts/kconfig/conf-sarch/arm/Kconfig
CHKinclude/linux/
CHKinclude/generated/
make[1]:“include/generated/”是最新的。
CALLscripts/
CHKinclude/generated/
CCdrivers/char/
LDdrivers/char/
LDdrivers/
LD
MODPOST
初次编译内核源码,由内核代码庞大,所需较长时间(大约几分钟至10几分钟不等)。
编译成功后会在内核源码目录的arch/arm/boot/目录下生成内核压缩文件zImage。
[******@localhostlsarch/arm/boot/zImage
arch/arm/boot/zImage[******@localhost、将新生成的内核镜像文件zImage烧写到UP-Magic210型设备中,这里不在赘述(烧写步骤可以参考文档"UP-Magic210出厂程序烧写手册(LINUX)第23页)。新内核烧写成功后启动UP-Magic210型系统,可以在串口终端中查看到Linux内核在启动过程中打印出来的如下信息:
S3C_LCDclockgotenabled::MhzWindow[0]-FB1:map_video_memory:clearff600000:00096000FB1:map_video_memory:dma=cpu=ff600000size=00096000Console:switchingtocolourframebufferdevice80x30fb-52:framebufferdevicelp:driverloadedbutnodevicesfound#########耕######耕Hello,world###################ppdev:user-spaceparallelportdriver:ttySAC0atMMIO0x7f005000(irq=37)isaS3C:ttySAC1atMMIO0x7f005400(irq=38)isaS3C:ttySAC2atMMIO0x7f005800(irq=39)isaS3CRAMDISKdriverinitialized:16RAMdisksof4096Ksize1024blocksizeloop:loaded(max8devices)nbd:registereddeviceatmajor43dm9000EthernetDrivereth0:dm9000atc7866000,c7866002IRQ78MAC:00:22:12:34:56:90S3CIrDAdriver,(c)2006SamsungElectronicsILinuxvideocaptureinterface:
可以看到在终端上打印出#########耕######耕Hello,world###################信息。同样进入ARM系统后也可以通过dmesg命令查看内核启动信息。
[******@UP-TECHyaffs]#dmesgS3C_LCDclockgotenabled::MhzWindow[0]-FB1:map_video_memory:clearff600000:00096000FB1:map_video_memory:dma=cpu=ff600000size=00096000Console:switchingtocolourframebufferdevice80x30fb-52:framebufferdevicelp:driverloadedbutnodevicesfound###################Hello,world###################ppdev:user-spaceparallelportdriver:ttySAC0atMMIO0x7f005000(irq=37)isaS3C:ttySAC1atMMIO0x7f005400(irq=38)isaS3C:ttySAC2atMMIO0x7f005800(irq=39)isaS3CRAMDISKdriverinitialized:16RAMdisksof4096Ksize1024blocksize实验结果
思考:如何能在Linux系统启动时,输出显示自定义的文本信息,请修改Linux内核启动代码,完成此功能。
实验中遇到的问题及解决方法在实验中遇到一些问题,例如在复制的时候我记得原来用cp??-a??/tmp/?就可以了,可这次不行必须要用cp??-a??/tmp/??./到自己的目录下。不过最后都顺利解决了问题,在编译复习了makemenuconfig的编译配置。
实验二根文件系统实验实验目的
了解UP-Magic210魔法师实验套件Linux系统下根文件系统结构
掌握根文件系统的搭建过程
掌握busybox、mkcramfs等工具的使用方法实验内容
使用busybox生成文件系统中的命令部分,使用mkcramfs工具制作CRAMFS格式的
根文件系统。
分析根文件系统etc目录下重要配置文件的格式及语法,熟悉根文件系统的启动过程实验步骤实验目录:
/UP-Magic210/SRC/kernel/一、在内核中添加文件系统类型支持
(1)、进入宿主机中UP-Magic210型光盘内核目录:
[******@localhost~]#cd/UP-Magic210/SRC/kernel/(2)、运行makemenuconfig命令配置内核文件系统相关支持
添加对CRAMFS根文件以及YAFFS2文件系统系统支持
进入Filesystems--->菜单
进入Miscellaneousfilesystems--->菜单
选择<*>CompressedROMfilesystemsupport(cramfs)支持,如图:
选择<*>YAFFS2filesystemsupport支持,配置如下图退出保存内核配置
运行make编译内核,重新烧写内核。
二、根文件系统的实现
(1)、制作BUSYBOX工具集
进入本次实验目录
[******@localhostrootfs]#cd/UP-Magic210/SRC/rootfs/
[******@localhostrootfs]#ls
rootfs
解压压缩包
[******@localhostrootfs]#tarxjvf产生目录
[******@localhostrootfs]#ls
rootfs
进入目录进行busybox的修改及配置
修改此目录的Makefile文件,更改ARCH和CROSS_COMPILE=定义,如下:
CROSS_COMPILE=arm-none-linux-gnueabi-
ARCH=arm
退出保存。
运行makemenuconfig对工具集进行定制
[******@localhostmakemenuconfig进入BusyboxSettings--->
选项
选项
进入BusyboxLibraryTuning--->
选中[*]Fancyshellprompts支持
进入MiscellaneousUtilities--->选项
去除[]inotifyd选项
接下来的配置可以根据具体情况来设置或裁剪相关工具。
退出保存设置。
编译busybox
[******@localhostmake
安装busybox
[******@localhostmakeinstall
成功后会在当前目录下生成_install目录,编译的工具也都集成在该安装目录下。
[******@localhostcd_install/
[******@localhost_install]#ls
binlinuxrcsbinusr
[******@localhost_install]#
可以看到_install目录下生成了根文件系统常用的命令及工具,接下来的工作,用户可以根据需要将_install目录下生成的命令拷贝到根文件系统相应目录下。
例如:将从busybox生成的which命令拷贝到根文件系统目录的usr/bin目录下,这样,我们的根文件系统就支持which命令了。
(2)、制作CRAMFS根文件系统镜像
实验中已经提供了mkcramfs制作工具以及脚本文件,用户只需执行脚本文件来使用mkcramfs制作根文件系统镜像即可。
当然也可以手动的执行命令:./mkcramfsrootfs_up210
[******@localhostrootfs]#./
此时在当前目录下生成根文件系统镜像文件
[******@localhostrootfs]#ls
mkcramfsrootfs_up210三、烧写根文件系统
将新生成的根文件系统镜像文件烧写到UP-Magic210型设备中进行测试,这里不在赘述(烧写步骤可以参考文档"UP-Magic210出厂程序烧写手册(LINUX)第24页)。如果用户新添加了相关命令或工具(例如which命令)启动系统后可以验证用户添加入的新命令或工具。
实验结果实验中遇到的问题及解决方法
make编译有错误,进行源代码的修改。之后再makemenuconfig中将这个宏对应的东西配置成没有就好了,如果没有这个宏,那么就直接用出错的那个文件的名字找就行了,找到后给它去掉,将来make的时候就不会编译这个文件了,在次进行make编译后,编译出来了busybox这个东西,就在证明编译通过了。
实验三模块方式驱动实验实验目的
学习在LINUX下进行驱动设计的原理
掌握使用模块方式进行驱动开发调试的过程实验内容
在PC机上编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。
在ARM设备上创建设备驱动节点,编写用户空间应用程序,对驱动程序进行测试。
实验步骤

嵌入式操作系统实验报告 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人秋江孤影
  • 文件大小24 KB
  • 时间2023-02-14
最近更新