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 ...
随机推荐
- MyEclipse常用设置和快捷键
Java快捷键 1.注释快捷键 先敲/ 再敲两个** Enter 回车 2.system.out.println(); 常用设置 [子类继承父类] [编码字体设置] 删除当前行:ctrl+d ...
- 用linux命令连接无线网络-转载
首先是用到的工具: ifconfigrouteiwlistiwconfig 后两个是无线工具 从现在开始,按我的步骤做 (##后面的是说明部分) 1.开启无线,如果是笔记本,开启无线开关,或用Fn+F ...
- bzoj4698
题解: 后缀数组 对所有序列差分一下 公共串的长度+1就是答案了 二分 扫一遍height即可,.. 代码: #include <bits/stdc++.h> using namespac ...
- Java并发编程_wait/notify和CountDownLatch的比较(三)
1.wait/notify方法 package sync; import java.util.ArrayList; import java.util.List; public class WaitA ...
- X86汇编语言实现的贪吃蛇游戏
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- springMVC的工作流程图
- webView 的种种
1.关于UI 我们在设置webview的时候,有时候会发现在加载的过程中会出现一个黑色的条条,在加载完成的时候有得时候继续存在,有得时候消失不见. 这个黑边是由于webView.scrollview向 ...
- :工厂模式1:方法模式--Pizza
#ifndef __PIZZA_H__ #define __PIZZA_H__ class Pizza { public: Pizza(){} virtual ~Pizza(){} virtual c ...
- SQL-34 对于表actor批量插入如下数据
题目描述 对于表actor批量插入如下数据CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5) NOT NULL PRIMARY KEY,fir ...
- Centos7部署kubernetes-ETCD集群(三)
1.下载etcd软件包 wget https://github.com/coreos/etcd/releases/download/v3.2.18/etcd-v3.2.18-linux-amd64.t ...