zoukankan      html  css  js  c++  java
  • 实验一 开发环境的熟悉

    实验一 开发环境的熟悉

    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
    8. 分别运行linuxhello,armhello,有什么结果?提交截图并用file命令分析原因。

    实验过程

    1.根据老师要求安装软件

    2.建立实验目录"mkdir linux_20155322_20155327"
    3.在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名,实现如下

    2-目标机宿主机联通

    实验步骤

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

    5-清理工作(只有用实验室机器的小组做)

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

    实验总结:

    实验遇到的问题:

    实验中遇到的问题

    用实验室电脑时出现了虚拟机无法打开的情况,换了一台电脑后才完成了实验

    基础知识点:

    • 交叉编译
      某个主机平台上(比如PC上)用交叉编译器编译出可在其他平台上(比如ARM上)运行的代码的过程。
      交叉编译器就是为了编译跨平台体系结构的程序代码而形成的由多个子工具构成的一套完整的工具集。同时,它隐藏了预处理、编译、汇编、链接等细节,当我们指定了源文件(.c)时,它会自动按照编译流程调用不同的子工具,自动生成最终的二进制程序映像(.bin)。
      叉编译链的命名规则似乎是通用的,有一定的规则:
    arch-core-kernel-system
    

    arch: 用于哪个目标平台。
    core: 使用的是哪个CPU Core,如Cortex A8,但是这一组命名好像比较灵活,在其它厂家提供的交叉编译链中,有以厂家名称命名的,也有以开发板命名的,或者直接是none或cross的。
    kernel: 所运行的OS,见过的有Linux,uclinux,bare(无OS)。
    systen:交叉编译链所选择的库函数和目标映像的规范,如gnu,gnueabi等。其中gnu等价于glibc+oabi;gnueabi等价于glibc+eabi。

    • NFS
      网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
    • 超级终端
      超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交换的相应程序,通过这些程序,可以通过超级终端与嵌入式系统交互,使超级终端成为嵌入式系统的“显示器”。
    • file命令
      通过file 文件名来查看这个文件的类型
  • 相关阅读:
    在idea的控制台进行git pull 或者git push的时候每次都要输入用户名和密码的解决办法
    js中和html中onclick绑定函数要不要加括号的问题
    ElementUI checkbox组件中的indeterminate 状态
    js之常见问题--for循环中为什么点击总是弹出最后一个i
    vue中watch监听浏览器窗口大小的改变
    Duplicate keys detected: '0'. This may cause an update error.
    数组对象去重总结
    【转载】git 回退版本
    K8s
    go 记录日志到Elk
  • 原文地址:https://www.cnblogs.com/l97----/p/7712615.html
Copyright © 2011-2022 走看看