设计基础实验一报告
课程: 深入理解计算机系统
班级: 1353
姓名:陈实 黄坤
学号: 20135224 20135226
指导教师: 娄嘉鹏
实验日期: 11.10
实验时间: 15:30-17:20
必修/选修: 必修
实验序号: 1
实验名称: 信息安全系统设计基础EXP1
实验目的与要求: 熟悉 linux 开发环境,学会基于 S3C2410 的 linux 开发环境的配置和使用。使用 linux的 armv4l-unknown-linux-gcc编译,使用基于 NFS方式的下载调试,了解嵌入式开发的基本过程。
实验仪器: 联想电脑 , Arm开发板
实验内容与步骤:
1. 连接 arm 开发板 :将线路按照接口插入连接到计算机上,必要连线为网线端
2. 建立超级终端 :运行 windows XP 系统下“开始”、“所有程序”、“附件”、“通讯”、“超级终端”。新建一个通信终端,取名为 arm。在属性对话框中,将波特率设为 115200,数据位设为 8,无奇偶校验,停止位为 1,无数据流控制,另存为在桌面。
3. 启动实验平台: 打开超级终端,打开 arm 机电源开关。等待一分钟, arm 机的信息会显示在超级终端的窗口中。输入 ifconfig 命令,记录下 arm 机的 ip
4. (重要步骤为实验关键)修改 xp 系统与虚拟机的 ip, 使得它们均与 arm 机的 ip 在同一网段:在 pc机中的 xp系统中,本次实验中将 pc机的 ip设为 192.168.0.55,redhat虚拟机 ip为 192.168.0.234。修改完 IP, 重启一下虚拟机, IP 才能启作用。 重启后在命令行中使用 ifconfig 确认修改正确。
5. 安装 arm 编译器:在 pc 机中“开始”、“运行”,输入虚拟机的 ip。 192.168.0.234,输入用户名 bc,密码 123456 。然后确定就可以访问虚拟机的文件了。然后把所需文件解压缩拷贝到共享文件夹 bc 中。进入虚拟机,在命令行中输入./install.sh,安装脚本程序将会自动建立目录,配置编译环境。
6. 配置环境变量:在虚拟机中使用 vi 修改/root/.bash_profile 文件中的 PATH 变量为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/, 存盘后执行:source /root/.bash_profile,则以后armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入。
7. 建立 hello.c 文件并编译:在虚拟机中进入文件夹/root/bc,在此目录下编写 hello.c 文件。利用命令armv4l-unknown-linux-gcc 对 hello.c 进行编译,生成 hello 可执行文件。
8. 下载调试:在超级终端中将共享文件夹挂载好,建立开发板与虚拟机之间的通讯。输入命令“mount -t nfs -o nolock 192.168.0.234:/home/bc /host”在超级终端中运行编译通过的 hello 可执行文件。
实验过程:
1 在成功连接上实验箱的基础上,构建XP与realhat实验环境,操作:开始->所有程序->附件->通讯->超级终端
2 构建实验环境并保证同一网段,命令:ifconfig IP
3 在运行中输入:\192.168.0.234,输入用户名 bc,密码 123456访问共享文件
4 拷贝install.sh到共享文件夹,完成hello.c的编译,命令:armv4l-unknown-linux-gcc
5 在虚拟机上运行:mount -t nfs -o nolock 192.168.0.234:/home/bc /host
思考题
为什么需要交叉编译?如何安装交叉编译环境?
不同平台有不同的编译代码方式以及自身的编译特征,嵌入式系统ARM的硬件配置相对较低,无法完成GCC的操作但可以通过将编写的代码编译成二进制代码来实现沟通,在利用特定linux工具的条件下,通过同一网段连接完成环境配置让工具自己搜索就可以实现交叉编译
实验箱、虚拟机Redhat、WinXP之间的IP需要满足什么关系?如何配置?为什么?
IP需要在同一网段
在本地连接中修改
因为只有在同网段才能实现连接
实验中mount命令中每个选项什么意思?
文件系统挂载命令
-f 用于排查错误
nfs文件名
-o 加载文件
参考资料:
http://blog.sina.com.cn/s/blog_545f2b4701010lyn.html
http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml
实验问题与解决:
1 无法实现连接成功信息:插口要用1的接口上,不行就注销后在进行连接
2 无法找到共享文件里的。sh文件:要事先拷贝
总结:
本次实验内容相对简单,但没有了解连接状态的前提下很难快速完成,通过本次实验,很好的理解了交叉编译的内容以及嵌入式相关的内容,为以后的学习奠定基础
实验必须在同一网段下执行在没有正确设置之前无法完成以后的操作了,这要求我们按部就班,把每一步做好