【2018-2019-1】20165223-20165218 实验一 开发环境的熟悉


小组成员:20165223 ,20165218

实验名称:开发环境的熟悉


目录


一、实验准备

  • 交叉编译

简单地说,就是在一个平台上生成另一个平台上的可执行代码。 有时,目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时候,目的平台上的资源贫乏,无法运行我们所需要编译器;有时,目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。所以除了主机编译,我们还需要交叉编译。但同时,由于交叉编译受到专利、版权、技术等的限制,并不总是能进行交叉编译。

  • 宿主机与目标机

宿主机是执行编译、连接嵌入式软件的计算机(PC机),目标机是运行嵌入式软件的硬件平台(开发板)。

  • NFS

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

  • 超级终端

超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交换的相应程序,通过这些程序,可以通过超级终端与嵌入式系统交互,使超级终端成为嵌入式系统的“显示器”。

返回目录


二、实验内容

(一)交叉编译环境

(1)实验要求

  1. 实验两人一组
  2. 可以使用自己的笔记本,也可以使用实验室台式机,使用实验室机器的不用做本题
  3. 安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe”
  4. 解压老师提供的software目录中的“Ubuntu1204.rar”
  5. 用VMWare打开Ubuntu,用户名:linux,口令:1
  6. 建立实验目录"mkdir linux_组员1学号_组员2学号"
  7. 在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名
  8. 参考bocsd目录中的脚本armc.sh, 分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译hello.c,用gcc编译的可执行文件命名linuxhello:gcc hello.c -o linuxhello; 用arm-none-linux-gnuenbi-gcc编译的命名为armhello: /usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello
  9. 分别运行linuxhello,armhello,有什么结果?提交截图并用file命令分析原因。

(2)实验步骤与截图

  • 使用自己的笔记本,成功安装好虚拟机Ubuntu并打开

  • 进入目录 /bocsd 并运行 armc.sh :cd bocsd./armc.sh

  • 建立实验目录:mkdir linux_20165223_20165218
  • 编写实验代码:helloworld.c

  • 用 gcc 编译 helloworld.c ,命名为 linuxhello :linuxhello:gcc hello.c -o linuxhello
  • 用 arm-none-linux-gnuenbi-gcc 编译 helloworld.c ,命名为 armhello :

/usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello

  • 分别运行linuxhelloarmhello,并用file命令分析原因

(3)实验代码

// helloworld.c 具体代码

#int main()
{
    printf("Hello World!
");
    printf("20165223
");
    printf("20165218
");
    return 0;
}

返回目录


(二)目标机宿主机联通

(1)实验要求

  1. 使用实验室机器不用安装软件,桌面上有相应图标
  2. 使用自己笔记本电脑的,解压超级终端软件“windows7st(Windows).rar”,并在桌面上建立快捷方式(这个不用在实验室做)
  3. 使用自己笔记本电脑的,到实验室把“USB转串口线”的USB口插入自己的电脑,把串口连到实验箱的COM0
  4. 参考视频配置超级终端,用超级终端作为实验箱的显示终端
  5. 用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
  6. 用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
  7. 用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图

(2)实验步骤与截图

  • 在自己的电脑上安装虚拟机win7

  • 先安装好USB转串口的驱动

  • 把USB转串口线的USB口插入自己的电脑,串口连到实验箱的COM0

  • 用网线的一端连接自己的笔记本电脑,另一端连接ARM实验箱的网口NET1(最大屏旁边的接口)

  • 按要求配置超级终端

  • 用ifconfig在超级终端中查看实验箱IP(192.168.0.232)

  • 用ipconfig在win7虚拟机命令行cmd中查看IP(192.168.0.231)

  • 在Ubuntu中用ifconfig在终端中查看IP(192.168.0.230)

  • 用ping命令观察实验箱、win7虚拟机、Ubuntu之间能否互相ping通

返回目录


三、实验总结

(一)遇到的问题

(1)任务一(交叉编译环境)中,为何无法用交叉编译器编译helloworld.c?

  • 出现问题:使用交叉编译器arm-none-linux-gnuenbi-gcc编译helloworld.c时出现如图错误提示

  • 解决方法:进入/usr/local/toolchain/toolchain-4.3.2/bin文件夹中检查编译文件

  • 发现是arm-none-linux-gnueabi-gcc,不是arm-none-linux-gnuenbi-gcc

  • 更改后成功编译运行


(2)任务二(目标机宿主机联通)中为何无法ping通?

  • 出现问题:如图,ping接时无法成功ping通

  • 解决方法:将win7虚拟机的IP地址与实验箱和Ubuntu设为同一网段,再ping即可ping通


(3)如何将win7虚拟机的IP地址与实验箱和Ubuntu设为同一网段?

  • IP不在需要的网段内

  • 右键网络,点击属性

  • 进入网络和共享中心,点击更改适配器设备

  • 右键本地连接选择属性

  • 双击IPv4

  • 更改红框内IP,点击子网掩码(自动生成)

  • 更改成功,显示IP为设置IP

返回目录


(二)分析与总结

  • 本实验是我们第一次使用ARM实验箱,让我进一步熟悉了Linux开发环境的配置和使用。
  • 学习了构建交叉编译环境和交叉编译器arm-none-linux-gnuenbi-gcc的使用,先在Linux中编译生成可执行文件后再挂载到ARM开发板上,再在开发板上进一步运行。
  • 实验中也遇到了许多问题,最终在与同伴的合作中顺利解决问题,希望在以后的实验中也能继续合作,合力完成实验,做得更好。

返回目录


(三)参考资料

  1. ARM实验箱实验指导书(实验参考)
  2. 解决arm 开发板、主机与虚拟机三者互ping的问题
  3. USB转串口驱动的安装
  4. VMware Workstation 14 Pro安装教程

返回目录

原文地址:https://www.cnblogs.com/moddy13162201/p/9824963.html