虚拟开发板就是虚拟机

虚拟开发板就是虚拟机

前言

此篇博客对于某高校的特定嵌入式设计课的同学生效。闲话不多说,让我们开始正题。众所周知,我们手上应该有一个简化版本的vexpress-a9虚拟开发板(简化指没有移植QT)。打开虚拟开发板以后,我发现里面自带了一个sum程序,居然可以跑。那么有意思的事就来了,我们手上的虚拟开发板是否就真的能够像真的开发板一样跑程序吗?

arm开发板能跑什么程序

经过创龙开发板的洗礼,显然就是经过特定编译器编译过的程序了。而我们vexpress-a9需要的编译器就是a9的编译器,全名是:arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu提取码:lahc。编译器配置,我就大概叙述一下流程就行了,解压,添加路径到PATH。[编译器的搭建][https://www.cnblogs.com/dylancao/p/6364188.html],我就是懒得写。不会有人还不会用共享文件吧?共享文件夹及自动挂载设置

编译器验证:hello.c
#include<stdio.h>

void main()
{
  printf("hello world!!!\n");
}

编译:可以看见我们成功编译出he执行文件,file查看属性。

在这里插入图片描述

开发板运行

程序上传到虚拟开发版。telnet?虚拟开发板本就用的是主机的文件系统,直接复制粘贴就行,目标路径:~/vexpress-a9/rootfs/home/zwj/ 接下来打开虚拟开发板运行即可。没有权限,chmod一下即可

xiami@vexpress:/home/zwj #ls
Demo        calc_first  first       he          sum
xiami@vexpress:/home/zwj #./he
hello world!!!

makefile的使用

学会了编译单个文件,接下来就该我们的熟悉的工程了。先储备的一点基础知识,makefile的参数配置

makefile 编写:CC一定要大写

CC = arm-none-linux-gnueabi-gcc
CFLAGS = -Wall

clac:clac.o main.o
        $(CC)$(CFLAGS)  -o clac clac.o main.o
main.o:main.c clac.h clac.c
        $(CC)$(CFLAGS)  -c main.c
clac.o: clac.h clac.c
        $(CC)$(CFLAGS)  -c clac.c
clean:
        rm clac clac.o main.o 

神奇的事就发生了:它报错了!!!!接下我又百度了两个小时,没有找到有效的解决方法。

zwj@zwj-virtual:~/下载$ make makefile
make: Nothing to be done for 'makefile'.

QT的使用

makefile不行,我们像课上一样换QT行吗?我的直觉告诉我可行。 所以我又百度了一个小时,去找虚拟开发板支持的qmake。有心人,天不负,果然没找到。如果谁有资源的话,能共享一下吗?其实花一百左右,入手a9的低配版也是可以的,这样就有qmake了。一百买一个软件,心酸。

cmake的使用

这时,我们强大工具就完美的解决我们的需求了。在此之前先补一点基础知识,[cmake的参数配置][https://www.cnblogs.com/rickyk/p/3875334.html]。仔细看好,每一个参数的含义,后面很有用。

编写cmake配置:test.cmake

set(CMAKE_SYSTEM_NAME Linux)    
set(CMAKE_SYSTEM_PROCESSOR arm)

set(CMAKE_SYSROOT /usr/local/arm-2014.05)


set(CMAKE_C_COMPILER /usr/local/arm-2014.05/bin/arm-none-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER /usr/local/arm-2014.05/bin/arm-none-linux-gnueabi-g++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

编写Cmakelist.txt,其实前面的文本就用来复制粘贴的

#Make 最低版本号要求
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)

#set(CMAKE_SYSROOT /usr/local/arm-2014.05)


set(CMAKE_C_COMPILER /usr/local/arm-2014.05/bin/arm-none-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER /usr/local/arm-2014.05/bin/arm-none-linux-gnueabi-g++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
cmake_minimum_required (VERSION 2.8)

# 项目信息

project (Demo1)

# 指定生成目标

add_executable(Demo clac.h clac.c main.c)

在当前目录(即工程文件所在的父目录)编译:

zwj@zwj-virtual:~/myfile/test1$ ls
clac.c  clac.h  CMakeLists.txt  main.c  Makefile
zwj@zwj-virtual:~/myfile/test1$ cmake .
zwj@zwj-virtual:~/myfile/test1$ ls
clac.c  CMakeCache.txt  cmake_install.cmake  main.c
clac.h  CMakeFiles      CMakeLists.txt       Makefile
zwj@zwj-virtual:~/myfile/test1$ make
Scanning dependencies of target Demo
[ 33%] Building C object CMakeFiles/Demo.dir/clac.c.o
[ 66%] Building C object CMakeFiles/Demo.dir/main.c.o
[100%] Linking C executable Demo
[100%] Built target Demo
zwj@zwj-virtual:~/myfile/test1$ ls
clac.c  CMakeCache.txt  cmake_install.cmake  Demo    Makefile
clac.h  CMakeFiles      CMakeLists.txt       main.c

大功告成,总算把目标程序Demo编译出来了。还是跑一下吧。

在这里插入图片描述

感言

这是我第一次用markdown的编辑器写文档,还在上手当中,排版难看请见谅。其实在解决问题当中,最难的就是找到一篇优秀的博客了。我给的参考链接请认真浏览,我再筛选它们身上,花了很多时间。

两周过后(FPGA的课设有点赶了),我会在自己新建的虚拟机尝试搭建一个有QT移植的虚拟开发板,主要参考博客1主要参考博客2你们感兴趣的话可以先尝试一下。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开发、路由器和虚拟是不同的技术设备,它们在TCP(传输控制协议)方面有着各自独特的功能和作用。 首先,开发是一种硬件设备,它通常由一块主和多个外部接口组成,用于开发和测试各种嵌入式系统和电子项目。开发可以通过TCP与其他设备进行通信,例如与计算或服务器进行数据传输。通过TCP,开发可以保证数据的可靠性和稳定性,确保数据在传输过程中不会丢失或损坏。 其次,路由器是一种网络设备,用于将数据包从一个网络转发到另一个网络。路由器在数据包的转发过程中使用TCP协议来确保数据的可靠传输。通过TCP,路由器可以跟踪传输的数据包,并确保它们按照正确的顺序到达目标网络。此外,路由器还可以执行网络地址转换(NAT)和端口转发等功能,以提供更好的网络连接和安全性。 最后,虚拟是一种在一个物理计算上模拟多个独立的虚拟计算环境的技术。虚拟可以通过TCP与其他虚拟或物理设备进行通信,并使用TCP协议确保数据的传输。虚拟可以创建和管理自己的虚拟网络,通过TCP与其他虚拟或物理设备进行网络通信。通过TCP,虚拟可以提供分布式计算和资源共享等功能,使得系统更具弹性和可扩展性。 总之,开发、路由器和虚拟在TCP方面都发挥着重要的作用。它们通过TCP协议确保数据的可靠传输和网络通信,为各种应用和系统提供了强大的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值