zoukankan      html  css  js  c++  java
  • 2017-2018-1 学号20155329_5332_5302《信息安全系统设计基础》实验一 开发环境的熟悉

    2017-2018-1 学号20155329《信息安全系统设计基础》实验一 开发环境的熟悉

    队友博客链接

    交叉编译

    • 什么是交叉编译,为什么我们要用交叉编译?

    • 交叉编译就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(OperatingSystem)。我们主要是学习操作系统。

    • 交叉编译的出现和发展:
      交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。

    • 什么是嵌入式系统:

      第一,嵌入式系统是一个计算机系统

      第二,嵌入式系统是针对某个应用的,也就是通常所说的“专用的”。

    •   为什么要学习交叉编译:
      嵌入式系统中的资源太少
      交叉编译出来的程序,所要运行的目标环境中,各种资源,都相对有限,所以很难进行直接的本地编译,最常见的情况是:
      因为编译,开发,都需要相对比较多的CPU,内存,硬盘等资源,而嵌入式开发上的那点资源,只够嵌入式(Linux)系统运行的,没太多剩余的资源,供你本地编译。所以需要在别的平台上进行跨平台编译,然后在其他的平台上运行

    实验步骤

    1. 交叉编译环境
    • 用VMWare打开Ubuntu
    • 建立实验目录"mkdir linux_20155329_20155302_20155332"
    • 在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名
    #include<stdio.h>
    int main()
    {
        printf(Hello,World!
    ");
        printf("Hello,5329胡佩伦
    ");
        printf("Hello,5332盛照宗
    ");
        printf("Hello,5302杨效宸
    ");
        return 0;
    }
    
    • 参考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
    • 实验截图如下
    2. 目标机(实验箱)宿主机(Ubuntu)联通
    • 到实验室把“USB转串口线”的USB插入实验室电脑
    • 用超级终端作为实验箱的显示终端
      用ifconfig在超级终端中查看实验箱IP:192.168.0.232,在Ubuntu中用ifconfig在命令行中查看IP192.168.0.230
    • 用网线连接实验室台式机和ARM实验箱的网口NET1
      在超级终端中输入ping 192.168.0.230(ping UbuntuIP),在Ubuntu命令行中输入ping 192.168.0.232(ping 超级终端IP),用ping命令保证目标机和宿主机能互相ping通。
    • 实验截图如下:

    3. 目标机运行程序:
    tftp和nfs
    • TFTP
      协议是简单文件传输协议,基于UDP 协议,没有文件管理、用户控制功能。TFTP 分为服务器端程序和客户端程序,在主机上通常同时配置有TFTP 服务端和客户端。
    • NFS方式是开发板通过NFS挂载放在主机(PC )上的根文件系统。此时在主机在文件系统中进行的操作同步反映在开发板上;反之,在开发板上进行的操作同步反映在主机中的根文件系统上。实际工作中,我们经常使用NFS
      方式挂载系统,这种方式对于系统的调试非常方便。
    1. 配置/etc/exports
    2. $ sudo vim /etc/exports
    3. NFS
      允许挂载的目录及权限在文件
      /etc/exports
      中进行了定义。例如,我们要将
      /source/rootfs
      目录共享
      出来,那么我们需要在
      /etc/exports
      文件末尾添加如下一行:
      /source/rootfs*(rw,sync,no_root_squash,no_subt
    4. $ sudo
      /etc/init.d/nfs

    kernel-server restart重启服务

    实验步骤
    • 在超级终端中用“mkdir /arm_20155329_20155332_20155302” 建立实验箱中程序运行目录“arm_20155329_20155302_20155332”
    • 在超级终端中运行“mount -t nfs -o nolock 宿主机IP:/home/linux/linux_20155329_20155302_20155332 /arm_20155329_20155332_20155302”通过NFS把宿主机中的“linux_20155302_20155332_20155329组员2学号” 映射到目标机中的“/arm_20155332_5329_5302”
    • 超级终端中运行"cd /arm_5332_5329_5302"
    • 超级终端中运行"./armhello",
    • 截图如下
    清理工作
    • 收拾好实验箱将从箱内取出物品一一放回
    • 将拔下的网线插回实验室电脑主机。
    • 收拾座位卫生并离开。

    实验体会及遇见的问题

    遇见的问题
    • 我先是使用自己笔记本电脑做此次试验,在寝室已将电脑按照ARM实验箱指导书配置好,但是在实验室做实验时到了第二步骤时,目标机和宿主机ping不通。同学们用笔记本电脑做的也出现了此类问题,周围又无可用电脑,于是加入了和我共用实验箱的20155302_20155332同学的小组
    • 第三步骤时,绝对路径错了
      ,导致没做出来
      -第四步,由于时间原因并没有完成,下次实验时补上!
    实验体会

    此次实验结束后,给我的感觉就是时间紧张,早上发布的任务,中午才开始学习,做实验,对实验指导书进行学习,没检验。在实验过程中遇见问题,主要在自己笔记本电脑上耽误了很多时间,最后宿主机和目标机无法ping通。实验室电脑开机就用了半小时,装东西什么的弄下来快一小时了。给我们留下的实验的时间就不怎么足够了。

    • 这次实验后,希望老师下次实验的发布时间能提前一些。
    • 对于自己,在实验前将实验内容和老师的学习资料进行学习,将实验内容尽量做好拷入优盘,带入实验室直接用实验室电脑做。

    静态库,动态库及交叉编译学习资料

  • 相关阅读:
    输入框input只能输入数字和小数点
    ES6判断数组是否存在重复元素
    AutoPostBack的含义
    首次的boe with wss
    我的msn能在w2k3上使用了哈哈
    挑战excel
    wss的webpart的3种开发方式
    我来操作dts olap
    My dbconn of ASP
    sharepoint学习理解过程
  • 原文地址:https://www.cnblogs.com/hpl20155329/p/7691077.html
Copyright © 2011-2022 走看看