嵌入式系统实验一.docx

上传人:b****1 文档编号:2407753 上传时间:2022-10-29 格式:DOCX 页数:19 大小:1.09MB
下载 相关 举报
嵌入式系统实验一.docx_第1页
第1页 / 共19页
嵌入式系统实验一.docx_第2页
第2页 / 共19页
嵌入式系统实验一.docx_第3页
第3页 / 共19页
嵌入式系统实验一.docx_第4页
第4页 / 共19页
嵌入式系统实验一.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

嵌入式系统实验一.docx

《嵌入式系统实验一.docx》由会员分享,可在线阅读,更多相关《嵌入式系统实验一.docx(19页珍藏版)》请在冰豆网上搜索。

嵌入式系统实验一.docx

嵌入式系统实验一

实验一嵌入式系统开发环境搭建

(1)嵌入式虚拟开发环境的搭建以及内核编译

1、实验目的和要求

1.熟悉ARM虚拟平台Skyeye的搭建

2.熟悉交叉编译开发环境的搭建

3.熟悉编译ARM-Linux

4.熟悉在Skyeye平台上仿真ARM-Linux

5.拓展:

尝试移植其他版本的Linux,并且在Skyeye上运行

2、实验内容和原理

本实验是通过在PC机上搭建嵌入式开发环境虚拟环境(Skyeye),熟悉嵌入式交叉编译开发环境以及ARM-Linux系统移植的主要步骤。

实验虚拟平台SMDK2410

vCPU三星S3C2410(ARM920T),核心频率为62.400MHz,I-Cache16K,D-Cache16K

v内存32MB,内存频率62.400MHz

实验软件介绍

SkyEye是一个开源软件(OpenSourceSoftware)项目,中文名字是“天目”,SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定“仿真”和“模拟”的意思基本相同);可在SkyEye上运行uCLinux以及uC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。

SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。

由于SkyEye的目标不是验证硬件逻辑,而是协助开发,调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。

编译ARM-Linux内核,熟悉ARM-Linux的移植过程。

编译成功后,同学们需要将ARM内核在SkyEye的ARM硬件模拟环境运行测试。

具体步骤见后文。

3、主要仪器设备

硬件:

a.PC机

软件:

a.VMwareworkstation9.0

b.Ubuntu10.04LTS

c.skyeye-1.2.5_REL.tar.gz

d.skyeye-testsuite-1.2.5.tar.bz2

e.arm-linux-gcc-3.4.1.tar.bz2

f.linux-2.6.14.tar.gz

g.cpp-4.1_4.1.2-27ubuntu1_i386.deb

h.g++-4.1_4.1.2-27ubuntu1_i386.deb

i.gcc-4.1_4.1.2-27ubuntu1_i386.deb

j.gcc-4.1-base_4.1.2-27ubuntu1_i386.deb

k.libstdc++6-4.1-dev_4.1.2-27ubuntu1_i386.deb

4、操作方法与实验步骤

1.安装虚拟机VMwareworkstation8.0

2.安装ubuntu10

A.可以选用TypicalInstall方式建立ubuntu

B.安装VMTool

C.设置hostcomputer共享的目录

3.安装使用gcc4.1版本编译器(编译Skyeye需要低版本gcc)

A.在安装之前先看看ubuntu10.04的gcc是哪个版本

B.下载相关文件

a.cpp-4.1_4.1.2-27ubuntu1_i386.deb

b.g++-4.1_4.1.2-27ubuntu1_i386.deb

c.gcc-4.1_4.1.2-27ubuntu1_i386.deb

d.gcc-4.1-base_4.1.2-27ubuntu1_i386.deb

e.libstdc++6-4.1-dev_4.1.2-27ubuntu1_i386.deb

执行命令sudodpkg-i*.deb就可以安装好gcc4.1.

C.设置默认gcc版本update

ls/usr/bin/gcc*

sudoupdate-alternatives--install/usr/bin/gccgcc/usr/bin/gcc-4.140

sudoupdate-alternatives--install/usr/bin/gccgcc/usr/bin/gcc-4.?

20

update-alternatives--configgcc

update-alternatives--install/usr/bin/g++g++/usr/bin/g++-4.140

4.安装SKyeye

a.键入tar-xzvfskyeye-1.2.5_REL.tar.gz解压

b.依次键入cdskyeye-1.2.5_REL回车,./configure回车,make回车,sudomakeinstall回车

5.测试Skyeye

a.键入tar-xvjfskyeye-testsuite-1.2.5.tar.bz2回车

b.键入cdskyeye-testsuite-1.2.5/linux/s3c2410/s3c2410-2.6.14/回车

c.键入skyeye-evmlinux回车

6.安装交叉编译环境

a.键入tar-xvjfarm-linux-gcc-3.4.1.tar.bz2回车

b.记住arm-gcc的目录,即/usr/local/arm/3.4.1/bin

7.编译内核

a.键入tar-xzvflinux-2.6.14.tar.gz回车

b.键入cdlinux-2.6.14回车

c.键入viMakefile回车

修改Makefile:

ARCH?

=$(SUBARCH)

CROSS_COMPILE?

=改为:

ARCH?

=arm

CROSS_COMPILE?

=/usr/local/3.4.1/bin/arm-linux-

d.生成默认的内核配置文件,键入cparch/arm/configs/smdk2410_defconfig.回车,继续键入sodumakesmdk2410_defconfig回车

e.参照修改内核文件

1 修改include/asm-arm/arch-s3c2410/map.h

#defineS3C2410_CS6(0x30000000)

改为:

#defineS3C2410_CS6(0xC0000000)

键入viinclude/asm-arm/arch-s3c2410/map.h

2 修改include/asm-arm/arch-s3c2410/memory.h

#definePHYS_OFFSET(0x30000000UL)

改为:

#definePHYS_OFFSET(0xC0000000UL)

键入viinclude/asm-arm/arch-s3c2410/memory.h

f.裁剪/定制内核

1)键入sodumakemenuconfig回车

2)设置内核启动参数

Bootoption--->Defaultkernelcommandstring:

mem=32Mconsole=ttySAC0root=/dev/raminitrd=0xc0800000,0x00800000ramdisk_size=8192rw

3)设置initrd的支持

DeviceDrivers--->Blockdevices--->

[*]RAMdisksupport

(4096)DefaultRAMdisksize(kbytes)改为:

8192

[*]InitialRAMdisk(initrd)support

4)设置ROMfilesystem的支持

Filesystem--->[*]ROMfilesystemsupport

5)设置ext2的支持

Filesystem--->[*]Secondextendedfssuppord

g.编译,键入make

键编译完成后会有vmlinux在当前目录下,这就是我们要的arm-linux内核了

h.验证

●将skeeye-testsuite-1.2.5/linux/s3c2410/s3c2410-2.6.14中的skyeye.

conf和initrd.img复制到linux-2.6.14目录中

●键入skyeye-evmlinux

出现了ARMLinux字样说明成功!

5、实验结果与分析

六、讨论、心得

通过本次实验完成了内核的编译,这次实验没有什么太大的难度,只要按照实验指导书的步骤并且细心的话,实验是很快就可以完成的。

 

(2)嵌入式程序的开发与根文件系统的搭建

1、实验目的和要求

1.熟悉利用busybox建立ARM-Linux根文件系统(initrd)

2.熟悉修改现有根文件系统(initrd)的方法

3.熟悉利用交叉编译环境编译简单的C语言程序

4.将自己写好的C语言程序,进行交叉编译,写入根文件系统,并在实验一中搭建的虚拟环境中运行,显示正确的结果

5.回答后面遇到的4个问题

2、实验内容和原理

根文件系统就是一种目录结构,根文件系统就是要包括Linux启动时所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这些Linux系统启动所必须的文件都可以成为根文件系统。

利用BusyBox搭建根文件系统。

BusyBox是一个集成了一百多个最常用linux命令和工具的软件。

BusyBox包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。

这样的集合可以替代大部分常用工具比如的GNUfileutils,shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的或嵌入式系统。

将自己编译的程序保存到根文件系统中的目录下,就可以在嵌入式虚拟环境中运行。

3、主要仪器设备

硬件:

a.PC机

软件:

a.实验一搭建好的嵌入式虚拟平台

b.busybox-1.19.4.tar.bz2

c.helloword.c

4、操作方法与实验步骤

1.编译busybox

a.修改Makefile中的arch和编译工具链头为:

ARCH?

=arm

CROSS_COMPILE?

=/usr/local/3.4.1/bin/arm-linux-

b.makemenuconfig修改编译配置选项

选择动态编译busybox

BusyboxSetting----->

buildoption-->

[]BuildBusyBoxasastaticbinary(nosharedlibs)

[*]Buildsharedlibbusybox

[*]Produceabinaryforeachapplet,linkedagainstlibbusybox

[*]Produceadditionalbusyboxbinarylinkedagainstlibbusybox

[]BuildwithLargeFileSupport(foraccessingfiles>2GB)

Ge

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

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

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