实验内容

实验两人一组,最多三人一组
可以使用自己的笔记本,也可以使用实验室台式机
使用实验箱作为超级终端。

实验中学到的知识点

  • 交叉编译

  • 宿主机与目标机

  • NFS

  • 超级终端

  • file命令

实验步骤

实验一-1-交叉编译环境-(使用自己笔记本电脑)

  1. 实验两人一组,最多三人一组
  2. 可以使用自己的笔记本,也可以使用实验室台式机,使用实验室机器的不用做本题
  3. 安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe”
  4. 解压老师提供的software目录中的“Ubuntu1204.rar”
  5. 用VMWare打开Ubuntu,用户名:linux,口令:1
  6. 建立实验目录"mkdir linux_组员1学号_组员2学号"
  7. 在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名
  8. 参考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
  9. 分别运行linuxhello,armhello,有什么结果?提交截图并用file命令分析原因。
  • 注意的点:

用arm指令编译这里生成的armhello文件并不能像gcc编译出来的文件那样直接使用“./armhello”命令来进行执行, 因为它是一个二进制文件,只能将它下载到开发板上并进行执行。

如下图所示:

实验一 开发化境的熟悉-2-目标机宿主机联通

  1. 使用实验室机器不用安装软件,桌面上有相应图标
  2. 使用自己笔记本电脑的,解压超级终端软件“windows7st(Windows).rar”,并在桌面上建立快捷方式(这个不用在实验室做)
  3. 使用自己笔记本电脑的,到实验室把“USB转串口线”的USB口插入自己的电脑,把串口连到实验箱的COM0
  4. 参考视频配置超级终端,用超级终端作为实验箱的显示终端
  5. 用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
  6. 用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
  7. 用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图

1.连接arm开发板

取试验箱之后,首先打开实验箱检查 电源线、网线、并口线、插口线 无缺失;然后卸除主机后的保护板,使得主机背后的插口方便与试验箱连接;
确保试验箱的开关处于off档位。将实验箱的网线、并口线分别与主机上的对应位置连接好(将主机上之前的网线拔出)。将电源线插在插线板上。将插口线一端插在arm板的端口0处,另一端插在主机对应位置。
2.建立超级终端

新建一个通信终端,取名为arm。在属性对话框中,将波特率设为115200,数据位设为 8,无奇偶校验,停止位为 1,无数据流控制。


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

实验一 开发化境的熟悉-3-目标机运行程序

  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", 提交运行截图,并深入理解交叉编译

按照老师给的步骤一开始遇到了如下错误如图:

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

实验一 开发化境的熟悉-4-目标机模块分解

  1. 在目标机上重现上周“系统调用版的myod”
  2. 以静态库或共享库的方式在目标机上重现上周“系统调用版的myod”
  3. 提交超级终端中的运行截图

因为时间原因,这项还没完成,上周myod版本调用的代码链接在此

实验过程的一些思考

  • 什么是交叉编译?为什么要使用交叉编译?

交叉编译 一般指的是 编译非本地机器上运行的代码。
通俗点讲就是 编译其它机器上运行的代码,那些机器的cpu 指令集与编译机器不同,所以编译出来的代码不能直接在编译机上运行。
编译机器上一般需要借助虚拟机才能运行编译后的代码;

其实在一个平台架构上,编译另一个平台架构的可执行代码,就是交叉编译。
例如在x86架构的PC上编译arm嵌入式设备的可执行程序。
交叉编译是不得不用,
首先在目标设备的系统还没引导起来的时候,编译目标平台的引导程序,显然只能交叉编译。

  • 超级终端是什么

是计算机显示终端,是计算机系统的输入、输出设备。

实验体会

本次实验的实验内容不太难,但是我们不太熟悉搭建实验环境的过程,故在其中遇到了一些难题,但最终在老师和同学的帮助下得到了解决。以后实验前一定会认真预习,相信在以后的几次实验我能做的更加熟练。

20155219&20155224 《信息安全系统设计基础》实验一 开发环境的熟悉的更多相关文章

  1. 20145218&20145240 《信息安全系统设计基础》实验一 开发环境的熟悉

    20145218&20145240 <信息安全系统设计基础>实验一 开发环境的熟悉 课程:信息安全系统设计基础 班级:1452 姓名:(按贡献大小排名)刘士嘉 张晓涵 学号:(按贡 ...

  2. 20145215&20145307信息安全系统设计基础实验报告

    20145215&20145307信息安全系统设计基础实验报告 PART1 一.实验原理 交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统 ...

  3. 20145220&20145209&20145309信息安全系统设计基础实验报告(5)

    20145220&20145209&20145309信息安全系统设计基础实验报告(5) 实验报告链接: http://www.cnblogs.com/zym0728/p/6132249 ...

  4. 20145220&20145209&20145309信息安全系统设计基础实验报告(3)

    20145220&20145209&20145309信息安全系统设计基础实验报告(3) 实验报告链接: http://www.cnblogs.com/zym0728/p/6132243 ...

  5. 20145220&20145209&20145309信息安全系统设计基础实验报告(4)

    20145220&20145209&20145309信息安全系统设计基础实验报告(4) 实验报告链接: http://www.cnblogs.com/zym0728/p/6132246 ...

  6. 20145220&20145209&20145309信息安全系统设计基础实验报告(2)

    20145220&20145209&20145309信息安全系统设计基础实验报告(2) 实验报告链接: http://www.cnblogs.com/zym0728/p/6083664 ...

  7. 20155323刘威良第一次实验 Java开发环境的熟悉(Linux + IDEA)

    20155323刘威良第一次实验 Java开发环境的熟悉(Linux + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序 ...

  8. 20145224&20145238《信息安全系统设计基础》实验一 开发环境的熟悉

    20145224陈颢文20145238荆玉茗 <信息安全系统设计基础>第一次实验报告 课程:信息安全系统设计基础 班级: 1452 姓名:荆玉茗 陈颢文 学号:20145238 20145 ...

  9. 20145227&20145201 《信息安全系统设计基础》实验一 开发环境的熟悉

    北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名:李子璇 鄢曼君 学号:20145201 20145227 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...

随机推荐

  1. ifcfg-eth配置详解(CentOS6)

    1.基本配置形式 1.1 动态IP基本配置 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=dhcp DEVICE--网卡名,要与ifcfg-ethx中的 ...

  2. 部署Linux项目

    部署Linux项目   1● 下载软件 ftp       安装 2● 创建连接 3● java项目   gunzip –c *.gz tar –xzf *.gz       rm –rf rm -r ...

  3. etymon word forget acid acrid acri shap acu=sour act out 1

    1● acid   2● sharp 3● acri 4● acrid acu=sour 酸的,尖酸的     1● act = to do drive   行动    

  4. zhuan 常用图像数据集:标注、检索

      目录(?)[+]   1.搜狗实验室数据集: http://www.sogou.com/labs/dl/p.html 互联网图片库来自sogou图片搜索所索引的部分数据.其中收集了包括人物.动物. ...

  5. NiXi.DAY06东软实训.:面向对象思想~抽象~static~final~构造方法及其重载

    本章技能目标: 使用类图描述设计 掌握面向对象设计的基本步骤 掌握类和对象的概念 掌握构造方法及其重载 掌握封装的概念及其使用 本章单词: class:类 object:对象 static: fina ...

  6. 延时显示(类QQ头像显示)

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. java③

    1.变量是什么? 变量====>一个数据在内存中 存储空间的表示! 在程序运行期间可以发生变化! *变量名 可以 迅速的从内存中 查询出 指定的变量! 2.数据类型: 数据类型 一共分为两种: ...

  8. SpringBoot + JPA 连接MySQL完整实例(一)

    开发工具 1.Eclipse 2.Maven 3.Spring Boot 首先,Eclipse中配置好maven,具体请百度 工程结构: 实现步骤: 1.Eclipse中新建一个maven proje ...

  9. 读书笔记 C# yield return与yield break执行顺序的浅析

    yield return可一次返回一个元素,并保留当前在代码中的位置,下次调用当前迭代器函数时,将从该位置从新执行.也就是说执行了yield return的时候,迭代器函数就返回了一个元素给forea ...

  10. 【转载一】Grafana –美观、强大的可视化监控指标展示工具

    在之前的InfluxDB系列教程 中,我们给大家介绍了当下流行的一款时序数据库--InfluxDB. 接下来给大家带来一款强大的,与InfluxDB搭配使用的前端指标项展示项目--Grafana. G ...