2017-2018-1 20155301 20155307 20155339 《信息安全系统设计基础》 实验一 开发环境的熟悉
2017-2018-1 20155301 20155307 20155339 《信息安全系统设计基础》 实验一 开发环境的熟悉
实验一 交叉编译环境
实验步骤
-
安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe”
-
解压老师提供的software目录中的“Ubuntu1204.rar”
. 用VMWare打开Ubuntu,用户名:linux,口令:1
-
建立实验目录"mkdir linux_20155301_20155307_20155339"
-
在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名
-
参考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
-
分别运行linuxhello,armhello,有什么结果?提交截图并用file命令分析原因。
-
结果如下图
-
file
命令分析
由上图可以知道,armhello是32位的但是linux是64位的,所以无法执行。
实验中遇到的问题
-
在输入蓝墨云上给出的
/usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello
命令时提示不能找到该文件,如下图
-
解决方法:输入,并用
tab
键补全,就可以解决了。
实验二 目标机宿主机联通
实验步骤
- 使用实验室机器不用安装软件,桌面上有相应图标
- 使用自己笔记本电脑的,解压超级终端软件“windows7st(Windows).rar”,并在桌面上建立快捷方式(这个不用在实验室做)
- 使用自己笔记本电脑的,到实验室把“USB转串口线”的USB口插入自己的电脑,把串口连到实验箱的COM0
- 参考视频配置超级终端,用超级终端作为实验箱的显示终端
- 用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
- 用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
- 用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图
- 运行截图
实验过程遇到的问题
- 刚开始,一直找不到com4,当询问了学长之后,在学长的提示下,安装了CH340驱动,再次尝试可以找到com3,但是仍然找不到com4,研究了很久很久还是不行,再次咨询学长,学长说com3也可以,继续实验,但是ping的时候没有让我们输入root等,多次尝试,后来借用了其他组的笔记本完成了实验。
实验三 目标机运行程序
实验步骤
- 学习资源中第五周的“ARM实验箱实验指导书”的第二章,理解tftp和nfs的作用
- 在超级终端中用“mkdir /arm_20155301_20155307_20155339” 建立实验箱中程序运行目录“arm_20155301_20155307_20155339”
- 在超级终端中运行“mount -t nfs -o nolock 宿主机IP:/home/linux/linux_20155301_20155307_20155339 /arm_20155301_20155307_20155339”通过NFS把宿主机中的“linux_20155301_20155307_20155339” 映射到目标机中的“/arm_20155301_20155307_20155339”
- 超级终端中运行"cd /arm_20155301_20155307_20155339"
- 超级终端中运行"./armhello", 提交运行截图,并深入理解交叉编译
- 运行截图
实验过程遇到的问题
- 由于别人的电脑还要用,第三个实验就只能用实验室的机子,开机前先在BIOS下开启虚拟化,再将老师的虚拟机拷入,重启,ping,也是ping了半天只有com3,最后只能用com3进行了下面的实验,这次在学长的指导下,少走了很多弯路,比较容易的ping上了,在后来映射的时候出现的问题,更改了文件的路径,再次尝试终于成功。
基本概念
-
交叉编译,就是在一个平台上生成另一个平台上的可执行代码。这个概念的出现和流行是和嵌入式系统的广泛发展同步的。
-
TFTP(简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务.
-
NFS,是NetworkFileSystem的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS.NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件.
我的PSP时间
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 20min | 11 |
设计 | 15min | 8 |
代码实现 | 30min | 17 |
测试 | 90min | 52 |
分析总结 | 15min | 8 |
心得体会
这次的实验代码部分比较简单,但是与超级终端ping的过程十分艰难,最终用东拼西凑的机器,和方法终于成功了,还是比较困难的一次实验,个人更愿意编代码的实验。