zoukankan      html  css  js  c++  java
  • 2018-2019-1 20165229 20165306 实验一 开发环境的熟悉

    2018-2019-1 20165229 20165306 实验一 开发环境的熟悉

    组员博客链接

    实验内容

    1.交叉环境编译

    1. 可以使用自己的笔记本,也可以使用实验室台式机,使用实验室机器的不用做本题
    2. 安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1379776.exe”
    3. 解压老师提供的software目录中的“Ubuntu1204.rar”
    4. 用VMWare打开Ubuntu,用户名:linux,口令:1
    5. 建立实验目录"mkdir linux_组员1学号_组员2学号"
    6. 在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名
    7. 参考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.目标机宿主机联通

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

    实验步骤

    • 用ifconfig 查看ip:192.168.0.230,注意网线一定接入实验箱net1,串口线接入COM0

    • 用ifconfig 查看实验箱IP:192.168.0.232

    • 实验箱(超级终端)(192.168.0.232),ubuntu(192.168.0.230),win7(192.168.0.231)要互相能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", 提交运行截图,并深入理解交叉编译

    实验步骤

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

    注:$cd ~ 波浪线代表用户的home目录,俗称主目录或家目录。

    • NFS方式是开发板通过NFS挂载放在主机(PC)上的根文件系统,对于系统的调试非常方便。

    • 重启服务:

    • 在超级终端中用 mkdir /arm_20165229_20165306 建立实验箱中程序运行目录

    • 在超级终端中运行 mount -t nfs -o nolock 192.168.0.230:/home/linux/linux_20165229_20165306/arm_20165229_20165306通过NFS把宿主机中的linux_20165229_20165306映射到目标机中的/arm_20165229_20165306

    • 在超级终端中运行cd /arm_20165229_20165306 ,然后在超级终端中运行 ./armhello

    5.实验结束后,把实验室原来的网线插回,否则以后做实验的同学无法开机,提交插好网线的照片。

    • 未使用实验室机器,实验箱和工具袋已归还。

    实验中的问题及解决过程

    • 问题:交叉环境编译用/usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello 编译时总显示“没有那个文件或目录”

    • 解决过程:

    发现是toolchain-4.3.1/bin/arm-none-linux-gnueabi-gcc

    新学到的知识点

    • 交叉编译:搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式Linux系统所需的操作系统、应用程序等,然后再上传到目标机上。

    • 宿主机与目标机:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。通常我们用的PC机就是宿主机,而我们用的开发板则是目标机。

    • NFS:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

    • 超级终端:超级终端的原理是将用户输入随时发向串口(采用TCP协议时是发往网口,这里只说串口的情况),但并不显示输入。它显示的是从串口接收到的字符。所以,嵌入式系统的相应程序应该完成的任务便是:将自己的启动信息、过程信息主动发到运行有超级终端的主机;将接收到的字符返回到主机,同时发送需要显示的字符(如命令的响应等)到主机;在单片机开发时使用。

    • file命令:file命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。

      • b 列出文件辨识结果时,不显示文件名称。

      • c 详细显示指令执行过程,便于排错或分析程序执行的情形

      • f 列出文件中文件名的文件类型

      • F 使用指定分隔符号替换输出文件名后的默认的":"分隔符。

      • i 输出mime类型的字符串

      • L 查看对应软链接对应文件的文件类型

      • z 尝试去解读压缩文件的内容

      • help 显示命令在线帮助

      • version 显示命令版本信息

  • 相关阅读:
    leetcode : Valid Sudoku
    leetcode : Longest Increasing Subsequence
    leetcode : Search for a Range
    leetcode : Search Insert Position
    leetcode : next permutation
    leetcode : Implement strStr()
    leetcode : Remove Element
    框架:Spring MVC
    笔试:在线编程相关
    J2EE:关系(一对多、多对一、多对多关系)
  • 原文地址:https://www.cnblogs.com/5306xyh/p/9825847.html
Copyright © 2011-2022 走看看