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

    2017-2018-1 20155321 20155330 实验一 开发环境的熟悉

    组员博客:20155321

    任务一 -交叉环境编译

      1. 安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe”
      2. 解压老师提供的software目录中的“Ubuntu1204.rar”
      3. 用VMWare打开Ubuntu,用户名:linux,口令:1
      4. 建立实验目录"mkdir linux_20155321_20155330"
      5. 在实验目录中编写“hello word”程序,并补充几行打印学号姓名
      6. 参考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
      7. 分别运行linuxhello,armhello,有什么结果?提交截图并用file命令分析原因。
    • 运行结果:

    • 运行结果显示,运行linuxhello没有问题且运行结果正确;运行armhello则显示无法执行二进制文件。利用file命令可知,armhello是32位的,属于arm,但Linux虚拟机是64位的,属于x86-64,因此无法运行armhello

    任务二-目标机宿主机联通

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

    • 使用ifconfig查看到的目标机的IP为192.168.0.232,宿主机IP为192.168.0.230。在目标机上使用ping 192.168.0.230命令查看目标机和宿主机能互相ping通。

    任务三-目标机运行程序

      1. 学习资源中第五周的“ARM实验箱实验指导书”的第二章,理解tftp和nfs的作用
      2. 在超级终端中用“mkdir /arm_组员1学号_组员2学号” 建立实验箱中程序运行目录“arm_组员1学号_组员2学号”
      3. 在超级终端中运行“mount -t nfs -o nolock 宿主机IP:/home/linux/linux_组员1学号_组员2学号 /arm_组员1学号_组员2学号”通过NFS把宿主机中的“linux_组员1学号_组员2学号” 映射到目标机中的“/arm_组员1学号_组员2学号”
      4. 超级终端中运行"cd /arm_组员1学号_组员2学号"
      5. 超级终端中运行"./armhello", 提交运行截图,并深入理解交叉编译
    • 运行结果:

    任务四-目标机模块分解

      1. 在目标机上重现上周“系统调用版的myod”
      2. 以静态库或共享库的方式在目标机上重现上周“系统调用版的myod”
      3. 提交超级终端中的运行截图
    • 运行结果:

    • 运行结果显示,在实验机上可以正常运行myod程序

    • 此步我们组采用动态库的方式,通过命令gcc change.c -shared -fpic -o myod.so创建动态库,通过命令gcc myod.c myod.so -o od链接动态库,最终便可正常运行。

    新学到的知识点

    • 基本概念

      1. 宿主机 :用于编译程序,一般是X86的PC机,也叫主机。

      2. 目标机:用于开发的系统,通常都是非X86平台。主机编译得到的可执行代码可在此运行。

      3. 交叉编译:在一个平台上生成另一个平台上的可执行代码。

        • 交叉编译可以做到在一个平台上生成另一个平台上的可执行代码、同一个体系结构可以运行不同的操作系统、同一个操作系统可以在不同的体系结构上运行。利于程序的开发,灵活性更强。
      4. NFS:网络文件系统,是FreeBSD支持的文件系统中的一种,允许网络中的计算机之间通过TCP/IP网络共享资源。

        • 好处: 节省本地存储空间、不用多次建立Home目录、减少整个网络上可移动介质设备的数量。
      5. 超级终端:原理是将用户输入随时发向串口(采用TCP协议时是发往网口,这里只说串口的情况),但并不显示输入。

    实验体会

    这次实验内容比较基础,基本上只要按照实验步骤就能够成功。主要的难点在于理解实验中所使用的命令的作用,和如何使用这些命令。

    参考资料

  • 相关阅读:
    cogs 775. 山海经
    [HZOI 2016][Tyvj 1729]文艺平衡树 这道题我真是哭了,调了一下午,一晚上
    几种平衡树
    bzoj1124 [POI2008]枪战Maf
    [Usaco2007 Open]Fliptile 翻格子游戏
    团队冲刺08
    团队冲刺07
    团队冲刺06
    团队冲刺05
    团队冲刺04
  • 原文地址:https://www.cnblogs.com/ashin-kl/p/7711508.html
Copyright © 2011-2022 走看看