• 【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安装教程

    返回目录

  • 相关阅读:
    iscroll4实现轮播图效果
    用css样式围剿等高列问题(转载)
    一些小bug
    前端代码规范
    !DOCTYPE html文档类型声明简写 HTML5 DOCTYPE缩写
    JS判断鼠标向上滚动还是向下滚动
    css Cursor:url()自定义鼠标指针样式为图片
    线段树-矩形面积求并
    值域线段树 bzoj 4627
    简单数位DP
  • 原文地址:https://www.cnblogs.com/moddy13162201/p/9824963.html
Copyright © 2020-2023  润新知