我是靠谱客的博主 傻傻烧鹅,最近开发中收集的这篇文章主要介绍Linux虚拟机与核心板之间在线仿真配置与调试,详细教程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原理上不再啰嗦:

1. PC端安装虚拟机(以VMware为例),虚拟机下安装Ubuntu的系统

2 目标设备(核心板)是ARM板的嵌入式Linux系统,一般不带桌面系统

3. 两者通过网络进行连接。核心板进入系统之后,设置好IP

 

前期准备(必要条件):

  1. 首先我们要保证虚拟机与设备是ping得通的。开发板提供了两个网口,都是可以用的。目前我们CIR是通过USB转网络口扩展网口的,也是可以用的。
  2. 虚拟机要有IP、设备也要有IP,这两个IP要同处于一个网络下。

注意:公司内部的IP要申请(资源有限),这样不方便,可以参考如下方法:

l  把本机的IP(非虚拟机)的子网掩码改成255.0.0.0,其他不变

l  把虚拟机设置成“桥接模式”

l  在VMWare的菜单,编辑-虚拟网络编辑器

 

 

 

 

 

 

  • 然后运行虚拟机镜像,Ubuntu下设置IP为

IP:10.0.200.123  (IP地址自己随便改)

子网:255.0.0.0

默认网关:10.0.0.1

 

  • 核心板上也要设置IP,可以通过以下命令实现设置IP

ifconfig eth0 10.0.200.237 netmask 255.0.0.0 up

 

其中 eth0为网卡名称。也可以将此命令放在开机里运行,这样不用每次重启后都得设置。

 

这样,IP设置都已经设置好了。将电脑网线与开发板都连到同一个交换机上面,在虚拟机ping开发板的Ip,看看能否通。

 

调试串口的输出

调试串口在Linux开发中也非常有用,在开发板上必须要把调试串口连接出来。

(这里就不介绍了)

 

然后再电脑端,装一个超级终端,例如Tera Term或Hyper Terminal都是可以的。

安装好软件之后,要设置一下串口配置:

 

这样设置之后。把开发板重启下,就会在超级终端软件里看到启动输出信息。

一般启动过程要20多秒,最后停在

 

 

然后输入:root  密码也是 root

 

这样就通过超级终端登录到开发板上了。

 

配置NFS

 

NFS(Network File System/网络文件系统):

      1)、设置Linux系统之间的文件共享(Linux与Windows中间文件共享采用SAMBA服务);

        

         我们主要是拿来虚拟机与开发板之间文件共享

 

我们的Ubuntu系统已经安装好NFS Server的了,包括开发板上也是支持NFS的,因此就不用重新安装了,只要配置下就可以了。

 

这里举个例子:

我们的目标是虚拟机Ubuntu下的”/Work/Out “这个文件夹要与开发板上的“/opt/tmp”进行文件共享。

 

1、  在Ubuntu下,打开文件:/etc/exports

2、  在里面面添加 /Work/Out *(rw,sync,no_root_squash)

 

 

 

 

3、  然后保存文件。

4、  启动NFS,敲入命令:

/etc/init.d/nfs-kernel-server start

或 tc/init.d/nfs-kernel-server reart

5、  提示启动成功即可。

6、  然后转到开发板这边,通过超级终端软件输入:

mount -t nfs 10.0.200.123:/Work/Out /opt/tmp -o nolock

 

7、  如果一切顺利的话,会马上返回这条命令的。

8、  此时,你cd到/opt/tmp,可以看到下面的文件跟Ubuntu下/Work/out文件下内容是一样的。

 

 

到此步骤,已经建立了文件共享,这样后期调试方便很多了。

 

配置编译

请记住核心板上的系统是基于ARM内核的操作系统,虽然也是叫Linux系统,但跟普通Ubuntu还是有很大区别的,实际上最大的区别就是ARM与X86两组不同指令集的差别。切记,切记。

 

误区:

        往往有人认为Ubuntu下可以,自然就认为核心板上就可以。或者说Ubuntu下有的东西,核心板就应该有。在这里可以明确地告诉你,肯定不一样的,其中区别很大,也不止一点。

       

在Eclipse上设置ARM编译环境:

l  一般情况下,默认编译环境是x86的,如果你代码在x86编译是没有问题的话,可以在Ubuntu下直接可以运行的,但如果把该编译出来的可执行的文件拷贝到核心板上是运行不起来的。所以,我们要建立ARM的编译

在左侧工程,点击右键,选择“属性”。然后选择“C/C++ Build”-“Settings”,如下图:

 

 

  • 然后选择”Manage Configurations..”,然后在弹出框的选择“New”

 

  •  然后在Name:填入编译模式的名称,在Description输入一些信息(好像不输入也是可以的)。在Existing Configuration选择一个参考模式,一般ARM Release对应Release,ARM Debug对应 Debug,这样配置会省很多事情。

 

 

l  然后点击各种“确定”按钮,返回到原先的Settings的界面。

此时,你要在Configuration的下拉里选择你刚才新建的编译模式

 

 

l  这样就建立arm的编译模式好了。当然,每个新建的编译,第三方库的添加都要重新添加的,请参考前面的说明。

l  此时再回到工程,然后就可以使用刚才搭建的编译模式,进行编译了:

 

 

 

l  这样编译出来的可执行文件就可以在核心板上运行了。

一般编译出来的文件放在跟你编译模式名称一样的文件夹下的。当然此时编译出来的可执行文件是不能运行在Ubuntu系统下的,因为他是ARM内核的!

Qt Creator下搭建Arm编译

l  选择左侧“项目”,然后选择“Embedded Linux”(如果没,可以通过加号添加),然后选择“构建”

 

 

然后配置构建环境

 

 

选择如图所示,若不存在则需要通过边上”管理”按钮,添加arm的

 

然后就是各种配置,看图:

 

 

 

 

 

 

l  然后就可以各种保存,返回到工程界面。

l  然后就可以选择刚才建立的,进行编译了。

 

最后

以上就是傻傻烧鹅为你收集整理的Linux虚拟机与核心板之间在线仿真配置与调试,详细教程的全部内容,希望文章能够帮你解决Linux虚拟机与核心板之间在线仿真配置与调试,详细教程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部