zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155225 20155229 实验一 开发环境的熟悉

    2017-2018-1 20155225 20155229 实验一 开发环境的熟悉

    一、实验目的

    学习了解交叉编译的作用,并用交叉编译的方式简单编程。

    二、实验步骤

    搭建交叉编译环境

    1. 用VMWare打开Ubuntu,建立实验目录

    2. 在实验目录中编写“hello world”程序,并打印组员学号信息

    3. 用gcc编译hello.c

    4. 用arm-none-linux-gnuenbi-gcc编译hello.c

    5. 分别运行查看结果

    image

    用gcc编译后,直接显示了运行结果;交叉编译后显示无法执行二进制文件。用file命令查看这两个文件,linuxhello是在linux的x86-64系统下运行的,armhello是在ARM系统下运行的。可知虽然都是linux系统下的程序,但也会因为具体的操作系统不同而无法运行。

    image

    开发环境的熟悉——目标机、宿主机联通

    1. 安装超级终端软件,用“USB转串口线”连接电脑(USB口)和实验箱com0(串口),用超级终端作为实验箱的显示终端。
    2. 用网线连接电脑和实验箱的网口NET1,保证互相能ping通。如下图所示:

    image

    开发环境的熟悉——目标机运行程序

    1. 在超级终端中建立实验目录
    2. 运行“mount -t nfs -o nolock 宿主机IP:/宿主机实验目录 目标机实验目录”,通过nfs将宿主机的实验目录映射到目标机中的实验目录里
    3. 在超级终端里运行armhello,成功运行!

    image

    开发环境的熟悉——目标机模块分解

    在目标机上重现“系统调用版的myod”,在超级终端上运行,结果如下图:

    image

    三、实验中的问题及解决过程

    ping不通

    实验过程中换了三台电脑都ping不通,最后发现是网口接错了。今后做实验一定会吸取这次的教训,加强硬件知识,每一步都要细致无误。

    宿主机上可以编译运行,但目标机不行

    在实验第四步中,在目标机上重现myod,我们在宿主机上可以编译运行,但映射到目标机之后却不行。发现原来还是按习惯用gcc编译的,使用交叉编译后,成功运行。

    四、学到的知识

    NFS

    NFS就是通过网络共享目录,让网络上的其他服务器能够挂载访问共享目录内的数据。这就可以理解mount命令 -t nfs:即将宿主机的目录挂载到目标机,所以IP是宿主机的IP,一旦连接断开,目标机上不会再有该共享目录。
    至于-o nolock,是文件锁,因为nfs mount默认选项包括文件锁,依赖于portmap提供的动态端口分配功能。所以需要开启文件锁。

    参考资料:

  • 相关阅读:
    使用SQL语句对表进行分页查询
    [转]Message Crack Wizard for Win32 SDK Developer
    笔记——《C语言也能干大事》之对话框程序代码
    如何通过C#调用CHM帮助文件,显示到指定页面
    winform 数字输入控件初稿
    用JAVA在读取EXCEL文件时如何判断列隐藏
    css中height:100%不起作用的解决方法 项目个案
    枚举(enum)的常用操作
    转 VirtualBox“please use a kernel appropriate for your cpu”
    Asp.NET导出Excel文件乱码 终极解决方法
  • 原文地址:https://www.cnblogs.com/clever-universe/p/7711514.html
Copyright © 2011-2022 走看看