嵌入式系统实验一Word格式.docx
《嵌入式系统实验一Word格式.docx》由会员分享,可在线阅读,更多相关《嵌入式系统实验一Word格式.docx(4页珍藏版)》请在冰豆网上搜索。
![嵌入式系统实验一Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/12/afc7b1f5-6f6c-40a2-82d5-dd12177329dd/afc7b1f5-6f6c-40a2-82d5-dd12177329dd1.gif)
可在SkyEye上运行uCLinux以及uC/OS-II等多种嵌入式操作系统和各种系统软件,并可对它们进行源码级的分析和测试。
SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。
于SkyEye的目标不是验证硬件逻辑,而是协助开发,调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。
编译ARM-Linux内核,熟悉ARM-Linux的移植过程。
编译成功后,同学们需要将ARM内核在SkyEye的ARM硬件模拟环境运行测试。
具体步骤见后文。
三、主要仪器设备 硬件:
a.PC机软件:
a.VMwareb.Ubuntuc._d.e.f. g.__h.g++-__i.__j.__k.libstdc++__ 四、操作方法与实验步骤 1.安装虚拟机VMware2.安装ubuntu10 A.可以选用TypicalInstall方式建立ubuntuB.安装VMTool C.设置hostcomputer共享的目录 3.安装使用版本编译器 A.在安装之前先看看的gcc是哪个版本B.下载相关文件 a.__b.g++-__c.__d.__e.libstdc++__执行命令sudodpkg-i*.deb就可以安装好 C.设置默认gcc版本updatels/usr/bin/gcc* sudoupdate-alternatives--install/usr/bin/gccgcc/usr/bin/40 sudoupdate-alternatives--install/usr/bin/gccgcc/usr/bin/gcc-4.?
20 update-alternatives--configgcc update-alternatives--install/usr/bin/g++g++/usr/bin/g++-404.安装SKyeye a.键入tar-xzvf_解压 b.依次键入cd_REL回车,./configure回车,make回车,sudo makeinstall回车5.测试Skyeye a.键入tar-xvjf回车 b.键入cd/linux/s3c2410//回车c.键入skyeye-evmlinux回车6.安装交叉编译环境 a.键入tar-xvjf回车b.记住arm-gcc的目录,即/usr/local/arm//bin7.编译内核 a.键入tar-xzvf回车b.键入cd回车c.键入viMakefile回车修改Makefile:
ARCH ?
=$(SUBARCH)CROSS_COMPILE?
=ARCH ?
=arm CROSS_COMPILE?
=/usr/local//bin/arm-linux- d.生成默认的内核配置文件,键入cparch/arm/configs/smdk2410_defconfig. 回车,继续键入sodumakesmdk2410_defconfig回车 改为:
e.参照/Linux修改内核文件 ①修改include/asm-arm/arch-s3c2410/#defineS3C2410_CS6(0x30000000)改为:
#defineS3C2410_CS6(0xC0000000) 键入viinclude/asm-arm/arch-s3c2410/②修改include/asm-arm/arch-s3c2410/#definePHYS_OFFSET(0x30000000UL)改为:
#definePHYS_OFFSET(0xC0000000UL) 键入viinclude/asm-arm/arch-s3c2410/f.裁剪/定制内核 1)键入sodumakemenuconfig回车2)设置内核启动参数 Bootoption--->
Defaultkernelcommandstring:
mem=32M console=ttySAC0 root=/dev/ram initrd=0xc0800000,0x00800000 ramdisk_size=8192rw3)设置initrd的支持 DeviceDrivers--->
Blockdevices--->
[*]RAMdisksupport (4096)DefaultRAMdisksize(kbytes)改为:
8192[*]InitialRAMdisk(initrd)support 4)设置ROMfilesystem的支持 Filesystem--->
[*]ROMfilesystemsupport5)设置ext2的支持 Filesystem--->
[*]Secondextendedfssuppordg.编译,键入make 键编译完成后会有vmlinux在当前目录下,这就是我们要的arm-linux内核了 h.验证 ?
将/linux/s3c2410/中的skyeye. conf和复制到目录中?
键入skyeye-evmlinux出现了ARMLinux字样说明成功!
五、实验结果与分析
六、讨论、心得 通过本次实验完成了内核的编译,这次实验没有什么太大的难度,只要按照实验指导书的步骤并且细心的话,实验是很快就可以完成的。
嵌入式程序的开发与根文件系统的搭建 一、实验目的和要求 1.熟悉利用busybox建立ARM-Linux根文件系统2.熟悉修改现有根文件系统的方法3.熟悉利用交叉编译环境编译简单的C语言程序 4.将自己写好的C语言程序,进行交叉编译,写入根文件系统,并在实验一中搭建的虚拟环境中运行,显示正确的结果 5.回答后面遇到的4个问题 二、实验内容和原理 根文件系统就是一种目录结构,根文件系统就是要包括Linux启动时所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这些Linux系统启动所必须的文件都可以成为根文件系统。
利用BusyBox搭建根文件系统。
BusyBox是一个集成了一百多个最常用linux命令和工具的软件。
BusyBox包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。
这样的集合可以替代大部分常用工具比如的GNUfileutils,shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的或嵌入式系统。
将自己编译的程序保存到根文件系统中的目录下,就可以在嵌入式虚拟环境中运行。
a.实验一搭建好的嵌入式虚拟平台b.c. 四、操作方法与实验步骤 1.编译busybox a.修改Makefile中的arch和编译工具链头为:
ARCH ?
=/usr/local//bin/arm-linux-b.makemenuconfig修改编译配置选项 选择动态编译busyboxBusyboxSetting----->
buildoption-->
[]BuildBusyBoxasastaticbinary(nosharedlibs)[*]Buildsharedlibbusybox [*]Produceabinaryforeachapplet,linkedagainstlibbusybox[*]Produceadditionalbusyboxbinarylinkedagainstlibbusybox[]BuildwithLargeFileSupport(foraccessingfiles>
2GB)GeneralConfiguration-->
[*]Don’tuse/usrinstallationoption-->
Appletslinks(assoft-links)--->
(./_install)BusyBoxinstallationprefixc.键入make d.编译键入makeinstalle.修改busybox的属性键入chmod4755./_install/bin/busybox 注意:
必须要修改属性,否则在busybox中很多命令会受限制:
比如:
$susu:
mustbesuidtoworkproperlyf.查看busybox需要的动态库2.制作 a.创建映像文件并挂到initrd目录 ?
键入mkdirinitrd ?
键入ddif=/dev/zeroof=bs=1kcount=8192?
键入mke2fs-F-v ?
键入mount-oloopinitrdb.将添加busybox到此映像文件 ?
键入cdinitrd ?
键入cp-r../_install/*. c.拷贝busybox需要的动态库arm-linux/lib ?
mkdirproclibetcdevroothomevartmp ?
键入cp/usr/local/arm//arm-linux/lib/ld*lib ?
键入cp/usr/local/arm//arm-linux/lib/lib?
键入cp/usr/local/arm//arm-linux/lib/libm*lib?
键入cp/usr/local/arm//arm-linux/lib/libcrypt*libd.建立必要的文件 ?
键入chmod777tmp ?
建立设备文件,键入cdde