20155219&20155224 《信息安全系统设计基础》实验一 开发环境的熟悉
实验内容
实验两人一组,最多三人一组
可以使用自己的笔记本,也可以使用实验室台式机
使用实验箱作为超级终端。
实验中学到的知识点
交叉编译
宿主机与目标机
NFS
超级终端
file命令
实验步骤
实验一-1-交叉编译环境-(使用自己笔记本电脑)
- 实验两人一组,最多三人一组
- 可以使用自己的笔记本,也可以使用实验室台式机,使用实验室机器的不用做本题
- 安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe”
- 解压老师提供的software目录中的“Ubuntu1204.rar”
- 用VMWare打开Ubuntu,用户名:linux,口令:1
- 建立实验目录"mkdir linux_组员1学号_组员2学号"
- 在实验目录中编写“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命令分析原因。
- 注意的点:
用arm指令编译这里生成的armhello文件并不能像gcc编译出来的文件那样直接使用“./armhello”命令来进行执行, 因为它是一个二进制文件,只能将它下载到开发板上并进行执行。
如下图所示:

实验一 开发化境的熟悉-2-目标机宿主机联通
- 使用实验室机器不用安装软件,桌面上有相应图标
- 使用自己笔记本电脑的,解压超级终端软件“windows7st(Windows).rar”,并在桌面上建立快捷方式(这个不用在实验室做)
- 使用自己笔记本电脑的,到实验室把“USB转串口线”的USB口插入自己的电脑,把串口连到实验箱的COM0
- 参考视频配置超级终端,用超级终端作为实验箱的显示终端
- 用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
- 用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
- 用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图
1.连接arm开发板
取试验箱之后,首先打开实验箱检查 电源线、网线、并口线、插口线 无缺失;然后卸除主机后的保护板,使得主机背后的插口方便与试验箱连接;
确保试验箱的开关处于off档位。将实验箱的网线、并口线分别与主机上的对应位置连接好(将主机上之前的网线拔出)。将电源线插在插线板上。将插口线一端插在arm板的端口0处,另一端插在主机对应位置。
2.建立超级终端
新建一个通信终端,取名为arm。在属性对话框中,将波特率设为115200,数据位设为 8,无奇偶校验,停止位为 1,无数据流控制。


之后在超级终端按照老师给的视频进行应有的配置之后并进行一系列操作之后ping成功了,如下图:

实验一 开发化境的熟悉-3-目标机运行程序
- 学习资源中第五周的“ARM实验箱实验指导书”的第二章,理解tftp和nfs的作用
- 在超级终端中用“mkdir /arm_组员1学号_组员2学号” 建立实验箱中程序运行目录“arm_组员1学号_组员2学号”
- 在超级终端中运行“mount -t nfs -o nolock 宿主机IP:/home/linux/linux_组员1学号_组员2学号 /arm_组员1学号_组员2学号”通过NFS把宿主机中的“linux_组员1学号_组员2学号” 映射到目标机中的“/arm_组员1学号_组员2学号”
- 超级终端中运行"cd /arm_组员1学号_组员2学号"
- 超级终端中运行"./armhello", 提交运行截图,并深入理解交叉编译
按照老师给的步骤一开始遇到了如下错误如图:

之后换了一台电脑,得到正确的结果如下图:

实验一 开发化境的熟悉-4-目标机模块分解
- 在目标机上重现上周“系统调用版的myod”
- 以静态库或共享库的方式在目标机上重现上周“系统调用版的myod”
- 提交超级终端中的运行截图
因为时间原因,这项还没完成,上周myod版本调用的代码链接在此
实验过程的一些思考
- 什么是交叉编译?为什么要使用交叉编译?
交叉编译 一般指的是 编译非本地机器上运行的代码。
通俗点讲就是 编译其它机器上运行的代码,那些机器的cpu 指令集与编译机器不同,所以编译出来的代码不能直接在编译机上运行。
编译机器上一般需要借助虚拟机才能运行编译后的代码;
其实在一个平台架构上,编译另一个平台架构的可执行代码,就是交叉编译。
例如在x86架构的PC上编译arm嵌入式设备的可执行程序。
交叉编译是不得不用,
首先在目标设备的系统还没引导起来的时候,编译目标平台的引导程序,显然只能交叉编译。
- 超级终端是什么
是计算机显示终端,是计算机系统的输入、输出设备。
实验体会
本次实验的实验内容不太难,但是我们不太熟悉搭建实验环境的过程,故在其中遇到了一些难题,但最终在老师和同学的帮助下得到了解决。以后实验前一定会认真预习,相信在以后的几次实验我能做的更加熟练。
20155219&20155224 《信息安全系统设计基础》实验一 开发环境的熟悉的更多相关文章
- 20145218&20145240 《信息安全系统设计基础》实验一 开发环境的熟悉
20145218&20145240 <信息安全系统设计基础>实验一 开发环境的熟悉 课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)刘士嘉 张晓涵 学号:(按贡 ...
- 20145215&20145307信息安全系统设计基础实验报告
20145215&20145307信息安全系统设计基础实验报告 PART1 一.实验原理 交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统 ...
- 20145220&20145209&20145309信息安全系统设计基础实验报告(5)
20145220&20145209&20145309信息安全系统设计基础实验报告(5) 实验报告链接: http://www.cnblogs.com/zym0728/p/6132249 ...
- 20145220&20145209&20145309信息安全系统设计基础实验报告(3)
20145220&20145209&20145309信息安全系统设计基础实验报告(3) 实验报告链接: http://www.cnblogs.com/zym0728/p/6132243 ...
- 20145220&20145209&20145309信息安全系统设计基础实验报告(4)
20145220&20145209&20145309信息安全系统设计基础实验报告(4) 实验报告链接: http://www.cnblogs.com/zym0728/p/6132246 ...
- 20145220&20145209&20145309信息安全系统设计基础实验报告(2)
20145220&20145209&20145309信息安全系统设计基础实验报告(2) 实验报告链接: http://www.cnblogs.com/zym0728/p/6083664 ...
- 20155323刘威良第一次实验 Java开发环境的熟悉(Linux + IDEA)
20155323刘威良第一次实验 Java开发环境的熟悉(Linux + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序 ...
- 20145224&20145238《信息安全系统设计基础》实验一 开发环境的熟悉
20145224陈颢文20145238荆玉茗 <信息安全系统设计基础>第一次实验报告 课程:信息安全系统设计基础 班级: 1452 姓名:荆玉茗 陈颢文 学号:20145238 20145 ...
- 20145227&20145201 《信息安全系统设计基础》实验一 开发环境的熟悉
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名:李子璇 鄢曼君 学号:20145201 20145227 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...
随机推荐
- Python获取时间戳
import datetime as dt dt.datetime.now().microsecond
- etymon word write alb pain high alt increase large agency ag lose weight fat assist out~3
1● alb 2● write =====>rait 1● alg 2● pain 痛,疼痛 1● alt 2● high 高 1 ...
- zabbix3.4.7安装在centos 7.4上
Centos 7.4 安装Zabbix 3.4 一.安装环境 1 [root@juny-18 ~]# cat /etc/redhat-release 2 3 CentOS Linux release ...
- Java中的equals和==的差别 以及Java中等价性和同一性的讨论
==对基本数据类型比较的是值,对引用类型比较的是地址 equals()比较的是对象的数据的引用 等价性原理: 自反性 x.equals(x)为true 对称性 x.equals(y) 为t ...
- 中国队再创佳绩,IOI2018喜获四金
第30届国际信息学奥林匹克竞赛(IOI2018)于9月1日-8日在日本筑波举行,共有来自87个国家(地区)的335名选手参赛. 中国代表队四名选手经过努力拼搏,获得金牌.其中,杨懋龙(湖南长沙市 ...
- python-第一类对象,闭包,迭代器
# def fn(): # print("我叫fn") # fn() # print(fn) # <function fn at 0x0000000001D12E18> ...
- 每天CSS学习之color
color意为颜色,其作用是设置字体的颜色. 设置颜色的方式有以下几种: 1.使用颜色单词,如:red: 2.使用十六进制,如:#FFFFFF: 3.使用rgb(255,0,0); 让我们来实践一下, ...
- vue-11-自定义指令
用于对纯 DOM 元素进行底层操作. // 注册一个全局自定义指令 v-focus Vue.directive('focus', { // 当绑定元素插入到 DOM 中. inserted: func ...
- 运行TensorFlow出现Your CPU supports instructions that this TensorFlow binary was not compiled to use: AV
原因: import os #在顶头位置加上 os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # '1'表示默认的显示等级,运行时显示所有信息 os. ...
- Cracking The Coding Interview5.2
//Given a (decimal - e.g. 3.72) number that is passed in as a string, print the binary representatio ...