• 2017-2018-1 20155226 20155234 实验一 开发环境的熟悉


    实验一 开发化境的熟悉-1-交叉编译环境-(使用实验室台式机)

    1.建立实验目录"mkdir linux_组员1学号_组员2学号"。
    2.在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名。
    3.分别用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。
    4.分别运行linuxhello,armhello。

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

    1.使用实验室机器不用安装软件,桌面上有相应图标
    2.参考视频配置超级终端,用超级终端作为实验箱的显示终端
    3.用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
    4.用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
    5.用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-清理工作(只有用实验室机器的小组做)

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

    实验中的问题

    1.armlinux无法在虚拟机中编译后运行,运行出错原因是:无法执行二进制文件
    通过file命令我们得知linuxhello是一个64-bit的文件,而armhello是32-bit的,我们的宿主机是64位,所以无法运行armhello。

    实验总结体会

    • 交叉编译:就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。
    • 宿主机与目标机:在嵌入式开发过程中,有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。通常我们用的PC机就是宿主机,而我们用的开发板则是目标机
    • file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。
  • 相关阅读:
    Jenkins构建、推送、拉取镜像和发布应用
    我们是如何做DevOps的?
    记录这两年是如何一步一步转型到.net core+k8s
    spring cloud+.net core搭建微服务架构:服务注册(一)
    .net core gRPC与IdentityServer4集成认证授权
    同时支持EF+Dapper的混合仓储,助你快速搭建数据访问层
    如何更优雅的在kubernetes平台下记录日志
    spring cloud+.net core搭建微服务架构:Api授权认证(六)
    spring cloud+.net core搭建微服务架构:配置中心续(五)
    spring cloud+.net core搭建微服务架构:配置中心(四)
  • 原文地址:https://www.cnblogs.com/zxm20/p/7708741.html
Copyright © 2020-2023  润新知