实验一 嵌入式系统开发环境搭建 (1)嵌入式虚拟开发环境的搭建以及内核编译
一、实验目的和要求
1.熟悉ARM虚拟平台Skyeye的搭建 2.熟悉交叉编译开发环境的搭建 3.熟悉编译ARM-Linux
4.熟悉在Skyeye平台上仿真ARM-Linux
5.拓展:尝试移植其他版本的Linux,并且在Skyeye上运行
二、实验内容和原理
本实验是通过在PC机上搭建嵌入式开发环境虚拟环境(Skyeye),熟悉嵌入式交叉编译开发环境以及ARM-Linux系统移植的主要步骤。
实验虚拟平台SMDK2410
? CPU三星S3C2410(ARM920T),核心频率为62.400MHz,I-Cache 16K,D-Cache 16K
? 内存32MB,内存频率62.400MHz 实验软件介绍
SkyEye是一个开源软件(OpenSource Software)项目,中文名字是“天目”,SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统(这里假定“仿真”和“模拟”的意思基本相同);可在SkyEye上运行u CLinux以及u C/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。
SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。由于SkyEye的目标不是验证硬件逻辑,而是协助开发,调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。
编译ARM-Linux内核,熟悉ARM-Linux的移植过程。编译成功后,同学们需要将ARM内核在SkyEye的ARM硬件模拟环境运行测试。具体步骤见后文。
三、主要仪器设备
硬件:
a. PC机 软件:
a. VMware workstation9.0 b. Ubuntu 10.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
四、操作方法与实验步骤
1. 安装虚拟机VMware workstation8.0 2. 安装ubuntu10
A.可以选用Typical Install方式建立ubuntu B.安装VMTool
C.设置host computer共享的目录
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 执行命令sudo dpkg -i *.deb就可以安装好gcc4.1.
C.设置默认gcc版本update ls /usr/bin/gcc*
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.? 20
update-alternatives --config gcc
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.1 40 4. 安装SKyeye
a. 键入tar -xzvf skyeye-1.2.5_REL.tar.gz 解压
b. 依次键入cd skyeye-1.2.5_REL回车,./configure回车,make 回车,sudo
make install 回车 5. 测试Skyeye
a. 键入tar -xvjf skyeye-testsuite-1.2.5.tar.bz2回车
b. 键入 cd skyeye-testsuite-1.2.5/linux/s3c2410/s3c2410-2.6.14/回车 c. 键入skyeye -e vmlinux回车 6. 安装交叉编译环境
a. 键入tar -xvjf arm-linux-gcc-3.4.1.tar.bz2回车 b. 记住arm-gcc的目录,即/usr/local/arm/3.4.1/bin 7. 编译内核
a. 键入tar -xzvf linux-2.6.14.tar.gz回车 b. 键入 cd linux-2.6.14回车 c. 键入vi Makefile 回车 修改Makefile:
ARCH ?=$(SUBARCH) CROSS_COMPILE ?= ARCH ?=arm
CROSS_COMPILE ?=/usr/local/3.4.1/bin/arm-linux-
d. 生成默认的内核配置文件,键入cp arch/arm/configs/smdk2410_defconfig .
回车,继续键入 sodu make smdk2410_defconfig回车
改为:
e. 参照http://skyeye.wiki.sourceforge.net/Linux 修改内核文件
① 修改include/asm-arm/arch-s3c2410/map.h #define S3C2410_CS6(0x30000000) 改为:
#define S3C2410_CS6(0xC0000000)
键入vi include/asm-arm/arch-s3c2410/map.h ② 修改include/asm-arm/arch-s3c2410/memory.h #define PHYS_OFFSET(0x30000000UL) 改为:
#define PHYS_OFFSET(0xC0000000UL)
键入vi include/asm-arm/arch-s3c2410/memory.h f. 裁剪/定制内核
1) 键入sodu make menuconfig回车 2) 设置内核启动参数
Boot option--->Default kernel command string: mem=32M
console=ttySAC0
root=/dev/ram
initrd=0xc0800000,0x00800000 ramdisk_size=8192rw 3) 设置initrd的支持
Device Drivers--->Block devices--->
[*]RAM disk support
(4096)Default RAM disk size (kbytes)改为:8192 [*]Initial RAM disk (initrd) support
4) 设置ROM file system 的支持
File system--->[*]ROM file system support 5) 设置ext2的支持
File system--->[*]Second extended fs suppord 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 -e vmlinux 出现了ARMLinux字样说明成功!
五、实验结果与分析
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库嵌入式系统实验一在线全文阅读。
相关推荐: