设为首页 收藏本站
查看: 909|回复: 0

[经验分享] 20155329胡佩伦

[复制链接]

尚未签到

发表于 2017-11-21 10:56:24 | 显示全部楼层 |阅读模式
2017-2018-1 学号20155329《信息安全系统设计基础》实验一 开发环境的熟悉

队友博客链接


  • 20155302杨效宸
  •   20155332盛照宗

    交叉编译
  • 什么是交叉编译,为什么我们要用交叉编译?
  • 交叉编译就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(OperatingSystem)。我们主要是学习操作系统。
  • 交叉编译的出现和发展:  
    交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。

  •   什么是嵌入式系统:
      第一,嵌入式系统是一个计算机系统

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


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

实验步骤

1. 交叉编译环境


  • 用VMWare打开Ubuntu
  • 建立实验目录"mkdir linux_20155329_20155302_20155332"
  •   在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名
      

    #include<stdio.h>  
    int main()
      
    {
      
    printf(Hello,World!\n");
      
    printf("Hello,5329胡佩伦\n");
      
    printf("Hello,5332盛照宗\n");
      
    printf("Hello,5302杨效宸\n");
      
    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
  •   实验截图如下
      
    DSC0000.jpg

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通。

  • 实验截图如下:  
    DSC0001.png
      
    DSC0002.png

3. 目标机运行程序:

tftp和nfs


  • TFTP  
    协议是简单文件传输协议,基于UDP 协议,没有文件管理、用户控制功能。TFTP 分为服务器端程序和客户端程序,在主机上通常同时配置有TFTP 服务端和客户端。

  • NFS方式是开发板通过NFS挂载放在主机(PC )上的根文件系统。此时在主机在文件系统中进行的操作同步反映在开发板上;反之,在开发板上进行的操作同步反映在主机中的根文件系统上。实际工作中,我们经常使用NFS  
    方式挂载系统,这种方式对于系统的调试非常方便。


  • 配置/etc/exports
  • $ sudo vim /etc/exports
  • NFS  
    允许挂载的目录及权限在文件
      
    /etc/exports
      
    中进行了定义。例如,我们要将
      
    /source/rootfs
      
    目录共享
      
    出来,那么我们需要在
      
    /etc/exports
      
    文件末尾添加如下一行:
      
    /source/rootfs*(rw,sync,no_root_squash,no_subt

  • $ 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",
  • 截图如下  
    DSC0003.jpg

清理工作


  • 收拾好实验箱将从箱内取出物品一一放回
  • 将拔下的网线插回实验室电脑主机。
  •   收拾座位卫生并离开。

    实验体会及遇见的问题

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

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


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

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409134-1-1.html 上篇帖子: influxDB 1.3 中文文档 下篇帖子: DevOps之域名-搭建工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表