在Debian中建立Beaglebone black的应用开发环境之一:基本概念

来源:互联网 发布:数据标准化处理公式 编辑:程序博客网 时间:2024/06/03 21:10

  在win下,各式的应用和系统开发环境是多种多样的,可选择性很多。在BBB的开发上,因为涉及到编译、链接、调试及系统或应用的布置,基本的开发环境就是cross-toolchain和文件传输(或共享)的工具。

  BBB的开发有两种最基本的方式,一是,使用BBB直接开发,在BBB上直接用nano(或VIM等)编码,用gcc编译,用gdb调试;二是,使用交叉编译的方法,在一台host上编码、编译、调试、然后将应用布置到BBB

  对于前一种方式,当应用很小的时候,是比较简单的方法,但应用逐渐庞大的时候,这种方式的弊端就显现了,BBB只不过是一个简单的embedded system,它的能力有限,而桌面PC的功能、资源等是相当强大和丰富的,效率要高得多。因此,这里主要介绍后一种方法。

一、BBB的几种常用开发环境

  前面我们说过cross-toolchain的概念,现在我们说一下目前比较常用的几种工作方式,这几种方式都是基于网络的,这是效率比较高的方式之一,开发系统的连接如下图。

  根据开发主机上的运行系统不同,由以下两种方式:


  对于方式2,在host端,需安装基于x86的cross-toolchain,文件共享可采用SSH或ftp工具的文件传输工具,如rz/sz,或xshell的xftp。cross-toolchain可采选择linaro的,下载地址:https://launchpad.net/linaro-toolchain-binaries/trunk/2013.10,注意它的后缀,是用以区别是win还是linux的。

  对于方式2,还有两个很方便的工具,一个是visualGDB,另一个是winGDB,这个东西太方便了,可以与VS2005-VS2010等集成,用起来是相当的方便,不过他们是收钱的,30-80$,和谐的基本没有,visualGDB的使用比winGDB更友好,它将SSH工具、cross-toolchain工具等都集成了,使用和介绍可参照http://visualgdb.com/tutorials/beaglebone/,偷偷的告诉你们,visualGDB在CSDN的资源频道可以下载到“好用的”,你懂的。

  其实方式2是有局限的,比如说,如果你想编译kernel或UBoot之类的,对不起,在win下实在是太麻烦(可以实现,相当麻烦)。所以,如果仅是应用的开发,可以采取方式2,工具很丰富,但是如果全面的进行BBB的开发,还推荐还是采用方式1。

二、linux主机下的开发环境工作流程

  针对host为linux,也就是上面说的方式1的开发,先说一下工作流程,便于深入理解我们后续为何这样搭建开发环境。工作流程如下:

  

  以上是一个简单的流程,当然,在host端还可以使用很多的集成开发工具来工作,比如说esclipse,QTcreator等,这个我们后续再说,现在仅是说明概念问题,还有就是强调一下,我们这次只是针对基本的开发环境,当你理解了概念,用熟悉了流程,你会发现,你有很多更好的工具可选择,可利用。

三、host端Linux的选择

  你可以选择直接安装linux,也可以选择在win下安装虚拟机,在虚拟机下安装linux,我的建议是,如果你不熟,你还是使用虚拟机吧,Vbox或是VMWare都可以,Vbox小巧,很好用。

  以下图片是我引用一个网友的,写得的很好,但是不是都说的对(感谢这位网友),可以参考http://bbs.eeworld.com.cn/thread-427616-1-1.html。


  对于linux,如果你使用就是debian,请你不要贸然的换系统,后面我会说,如果你没有使用debian,你可以安装一个ubuntu 12.04LTS,这个版本用起来方便,ti的SDK也是需要在ubuntu下安装的。debian的软件包更新的要慢一些,但稳定性还是优于ubuntu的。

四、虚拟机下linux的安装

  这个不想说了,网上很多的,请各位google或baidu,说几个注意的地方:

1、虚拟机网络的方式,最好选择是桥接,这个是最方便的方法,如果选择NAT的话,比较麻烦(可实现,需要使用端口地址转发等,如果不熟悉,会造成通信不畅)。

2、一定要保证BBB和你的Linux在一个网段内,为什么不用我解释了吧?前面我们说过BBB如何联网,你使用路由器的管理工具,虽然是采用dhcp,但是IP和MAC一样是可以绑定的,这样你可以不用在BBB或虚拟机的Linux中设置就可以得到一个固定的IP,方便调试,方法很多,请google。

3、一定要保证BBB和你的host端的Linux都可以上网,如何保证请google,每个人系统不一样,我可能说不全。


PS:我的环境:

1、虚拟机:Vbox

2、虚拟机内的linux:debian7(主要是我一直用debian)

3、BBB的linux:debian(内核为3.8.13,这个前面我说过)

0 0