2019-2020-1 20175221 20175225 20175226 实验一 开发环境的熟悉 20175221-20175225-20175226  信息安全系统 实验一《开发环境的熟悉》实验报告

实验小组成员:20175221 曾祥杰 20175225 张元瑞 20175226 王鹏雲

任务一【交叉编译环境】

  • 1.安装提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe”;
  • 2.解压老师提供的software目录中的“Ubuntu1204.rar”;
  • 3.用VMWare打开Ubuntu,用户名:linux,口令:1;
  • 4.建立实验目录mkdir linux_20175221_20175225_20175226
  • 5.在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名:
#include <stdio.h>

int main()
{
    printf("hello word
");
    printf("20175221曾祥杰
");
    printf("20175225张元瑞
");
    printf("20175226王鹏雲
");
}
  • 6.分别用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:
  • 2019-2020-1 20175221 20175225 20175226 实验一 开发环境的熟悉
20175221-20175225-20175226  信息安全系统 实验一《开发环境的熟悉》实验报告

  • 可以看出,在Linux中只能运行使用gcc编译的linuxhello,而无法运行arm-none-linux-gnuenbi-gcc编译的armhello
  • 使用 file <文件名>来检测文件
  • linuxhello和armhello都为ELF文件,但不同的是,使用gcc编译的linuxhello适用于x86-64机器,而使用arm-none-linux-gnuenbi-gcc编译的armhello只能在arm实验箱上运行。
  • 任务二【目标机宿主机联通】

  •  实验要求

  • 1.使用自己笔记本电脑的,解压超级终端软件“windows7st(Windows).rar”,并在桌面上建立快捷方式(这个不用在实验室做)     

  • 2.使用自己笔记本电脑的,到实验室把“USB转串口线”的USB口插入自己的电脑,把串口连到实验箱的COM0     

  • 3.参考视频配置超级终端,用超级终端作为实验箱的显示终端     

  • 4.用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP     

  • 5.用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)     

  • 6.用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图  

  • 实验过程

  •  打开安装好的win7虚拟机、Ubuntu虚拟机
  •  打开设备管理器,查看实验箱的端口号
  • 将网络连接方式设为桥接模式,并建立主机与虚拟机间的网络连接
  • 打开超级终端,选择上一步查看的端口,并将“位/秒”处设为115200,其余地方用默认设置。
  • 在超级终端与Ubuntu终端分别输入ifconfig,查看ip地址
  • 分别在超级终端、Ubuntu虚拟机互ping,都可ping通。
  • 互ping

  • 2019-2020-1 20175221 20175225 20175226 实验一 开发环境的熟悉
20175221-20175225-20175226  信息安全系统 实验一《开发环境的熟悉》实验报告
  • 2019-2020-1 20175221 20175225 20175226 实验一 开发环境的熟悉
20175221-20175225-20175226  信息安全系统 实验一《开发环境的熟悉》实验报告

任务三【目标机运行程序】

实验要求     

  • 1.学习资源中第五周的“ARM实验箱实验指导书”的第二章,理解tftp和nfs的作用
  • 2.在超级终端中用“mkdir /arm_组员1学号_组员2学号_组员3学号” 建立实验箱中程序运行目录“arm_组员1学号_组员2学号_组员3学号”
  • 3.在超级终端中运行“mount -t nfs -o nolock 宿主机IP:/home/linux/linux_组员1学号_组员2学号 /arm_组员1学号_组员2学号__
  • 2019-2020-1 20175221 20175225 20175226 实验一 开发环境的熟悉
20175221-20175225-20175226  信息安全系统 实验一《开发环境的熟悉》实验报告
  • 2019-2020-1 20175221 20175225 20175226 实验一 开发环境的熟悉
20175221-20175225-20175226  信息安全系统 实验一《开发环境的熟悉》实验报告
  • 任务四【目标机模块分解】

  • 实验要求     

  • 1:将上周编写的“系统调用版myod”拷到目标机与宿主机共享的文件夹中

  • 2:仿照“任务三”,编写编译脚本,生成可执行文件并在目标机上运行。运行结果如下:

  • 2019-2020-1 20175221 20175225 20175226 实验一 开发环境的熟悉
20175221-20175225-20175226  信息安全系统 实验一《开发环境的熟悉》实验报告
  • 实验过程中遇到的问题及其解决方法

  • 问题1:一开始连接实验箱的时候,无论怎么设置,连接,在超级终端上都不显示信息
  • 问题1解决方法:问了旁边的同学才知道,我们是在理解上出了错。一开始以为线连COMX,在WIN7就要选择COMX,后来才知道是要通过设备管理器来查看WIN7的COMX的,以此来选择正确的选项
  • 实验感想与体会

  • 本次实验让我们更加熟悉了Linux的开发环境,了解了TFTP和NFS的作用,学会了使用arm实验箱。并使用NFS方式挂载文件系统,将生成的可执行文件挂载到arm开发板上并运行。
  • 这也是本学期第一次的团队合作项目,我们仨配合得也比较默契,所以实验也比较顺利。其中包括第4题,幸亏之前有做娄老师的选做作业,实现了Myod命令,才让我们这次的实验最终快速,完美地完成了。也希望在接下来的实验中,我们的小组成员能继续默契配合,遇到问题共同商讨解决,不断努力提升自我。