结对小伙伴20145306张文锦、20145334赵文豪博客链接
实验截图:
实验原理
交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。
实验内容与步骤
1 连接arm开发板
首先连接电源线,使开发板的开关处于闭合状态,再分别将串口线、并口线、网线和USB线与PC机连好。连接串口线时接左端的串口。
2 建立超级终端
新建一个通信终端,取名为arm。在属性对话框中,将波特率设为 115200,数据位设为 8,无奇偶校验,停止位为 1,无数据流控制
3 启动实验平台
先打开超级终端,再打开arm机电源开关。等arm机的信息显示在超级终端的窗口中。输入 ifconfig 命令,记录下arm机的ip
4.修改xp系统与redhat虚拟机的ip均与arm机的ip在同一网段。
xp系统的ip地址在本地连接的属性选项卡,Internet协议 (TCP/IP)选项中;Rad Hat的IP地址在"系统设置-网络-编辑-静态的IP地址"中设置,设置完成后重启虚拟机,IP才会生效。
5.安装arm编译器
通过PC机访问共享文件夹,将编译器拷贝到共享文件夹中,从而虚拟机也可以访问。安装解压后的文件。
6.配置环境变量
在虚拟机中使用 vi 修改/root/.bash_profile 文件中的 PATH 变量为PATH=PATH:HOME/bin:/opt/host/armv4l/bin/,存盘后执行: source /root/.bash_profile,则以后 armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入。
7.建立.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”
实验过程的理解,实验指导书中知识点的理解
1.为什么需要交叉编译?如何安装交叉编译环境?
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。 简单地说,就是在一个平台上生成另一个平台上的可执行代码。简言之,因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。
2.实验箱、虚拟机Redhat、WinXP之间的IP需要满足什么关系?如何配置?为什么?
虚拟机, 实验箱,Windows XP的IP必须在同一网段 串口窗口中看到的是ARM实验箱的IP,打开本地连接,修改TCP/IP协议中的ip地址与实验箱在同一网段,在虚拟机中打开 从这里开始—>系统设置—>网络—>编辑—>修改地址与实验箱在同一网段,修改完 IP,重启一下虚拟机,IP 才能启作用。重启后在命令行中使用 ifconfig 确认。
3.实验中mount命令中每个选项什么意思?
“ mount - - t nfs - - o nolock 192.168.0. 234 :/ home /bc /host”: 加载192.168.1.19中/nfs/mnt文件到host目录下。 -t:指定文件系统的类型,通常不必指定。 nfs:挂nfs系统。 -o nolock:是文件锁的意思。