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协议时是发往网口,这里只说串口的情况),但并不显示输入。

实验体会

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

参考资料

posted @ 2017-10-22 20:32  20155330  阅读(268)  评论(1编辑  收藏  举报