bbb基础开发环境搭建

01-准备工作

重新开始折腾BeagleBone Black当然要选最新的开发环境,紧跟时代的发展。SDK 5.0 的kernel版本都更到了4.14了,得赶紧体验一波啊,虽然也没体验出啥高级特性,但是bigger在啊。

今天是2018年9月8日,下面是能下到的最新的版本(ubuntu除外)。ubuntu 18.04 太新了,很多软件都还没做好适配,避免踩坑,选用了16.04版本的。毕竟SDK安装的时候都提示了“强烈建议使用ubuntu 14.04和ubuntu 16.04,这是SDK适配和测试做的最好的两个版本”类似的字样。软件都得标配64位啦,bigger和性能显著提升。

ubuntu版本:16.04 64位长期支持版

SDK版本:ti-processor-sdk-linux-am335x-evm-05.00.00.15

Eclipse版本:eclipse-cpp-photon-R-linux-gtk-x86_64.tar.gz

JDK版本:jdk-8u181-linux-x64.tar.gz

CCS版本:CCS8.0.0.00016_linux-x64.tar.gz

硬件版本:BeagleBone Black .rev C

注意:如果只是开发用户态的程序,eclipse就够了,不用安装CCS,但是需要调试uboot或者想用一用AM335X上的PRU、或者想给BeagleBone Black开发裸板程序,那就需要安装CCS了。

02-环境搭建过程

前提:这几个软件,都不需要使用sudo指令来安装。安装过程也尽量避免使用sudo。这会带来蛋疼的执行权限的问题。特别是刚开始折腾linux交叉编译的新手,这会让你直接从入门到放弃。

ubuntu16.04 的安装:

推荐装虚拟机,方便好使,系统蹦了删掉重新安装也很快。业余玩家首选。给ubuntu分配硬盘内存时,稍微大一点,60G~80G为宜,太小了到时候扩容有点蛋疼。ubuntu的安装不多讲,很简单。

注意点1:ubuntu虚拟机装好后还需要折腾一下虚拟机和windows之间的共享文件夹问题。两边用共享文件夹传文件,那是真的方便。

注意点2:还需要安装一个搜狗输入法,比如我现在写的博客就是在ubuntu里面用搜狗拼音打出来的,教程百度搜一搜就有了。当碰到依赖问题时,记得用sudo apt-get -f install指令来解决依赖不存在的问题。

SDK的安装:

命令行里cd到SDK安装包所在的路劲下,直接 ./ti-processor-sdk-linux-am335x-evm-05.00.00.15 就可以开始安装了,会弹出一个界面来,直接默认往后走就OK了,其实就是一个解压缩的过程,需要耐心的等一会儿。

SDK装完后就能见到一个这么些东西了。

很多教程在这会让你直接去执行 ./setup.sh脚本,其实,可以先放着,这个脚本的主要作用就是设置系统环境,然后搭建tftp环境和NFS环境。其实我们一开始还用不上,可以先放着,不执行这个脚本。后面深入开发了有必要了再来执行这个脚本。

我们来看看各个路径下面有啥

bin文件夹:里面都是小脚本,比如我们最常用的sd卡(create-sdcard.sh)烧写脚本就在这下面。上面说的setup.sh脚本执行,其实就是把这下面的setup-xxx.sh脚本挨个调用了一遍。

docs文件夹:里面是一点点帮助文档手册之类的,有空可以看一看

filesystem文件夹:顾名思义,文件系统啦。里面有两个文件系统,一个精简版的小文件系统,一个完整版的大文件系统,高手们根据自己需要来选择用哪个文件系统。小白入门一时半伙是碰不上这玩意的。

board-support文件夹(很重要):Ti官方提供的uboot源码和kernel源码都在这下面,还有提前编译好的镜像文件也在这个目录下。

example-application文件夹:一下应用实例,比如ti的matrix-gui都在这下面。

linux-devkit文件夹(超级重要):Ti官方提供的编译链工具都在这下面(./linux-devkit/sysroots/x86_64-arago-linux/usr/bin下面)。environment-setup是环境变量的配置文件。sysroots文件夹下是各种交叉编译工具的存放位置。Ti官方的这个SDK还是很给力的,很多环境变量都给你准备好了,不用自己去手动添加,直接用对应的命令开启就可以了。

关于将交叉编译链添加进环境变量的几种方法:

方法1:cd到linux-devkit路径下执行source environment-setup命令,当前终端窗口就具有了需要的各种环境变量,命令行的前缀自动变成了[linux-devkit]。这个时候在命令行输入arm-,然后按tab键是会自动补全成arm-linux-gnueabihf-的。输入arm-linux-gnueabihf-gcc -v就能看到gcc的版本信息。

方法2:将gcc交叉编译链路径(我的是/home/xinshangqiu/ti-processor-sdk-linux-am335x-evm-05.00.00.15/linux-devkit/sysroots/x86_64-arago-linux/usr/bin)添加到系统环境变量文件中去。这里建议将路径添加到/etc/environment文件中。

sudo gedit /etc/environment,然后把路径贴进去。保存退出后,用source /etc/environment指令,环境变量即可生效。

注意点:方法1会自动导入各种环境变量,不仅仅是arm-linux-gnueabihf的,还有交叉编译QT的环境变量也会自动导入,但只限于当前命令行窗口。

sdk安装到这里就已经可以开始写个hello_world.c了。(vi hello_world.c或者gedit hello_world.c,前者适合vi大神,后者适合小白入门)。

  1.  
    #include <stdio.h>
  2.  
     
  3.  
    int main(int argc, char ** argv)
  4.  
    {
  5.  
    printf("hello world from xinshangqiu's BeagleBone Black\n");
  6.  
     
  7.  
    return 0;
  8.  
    }

直接命令行编译:arm-linux-gnueabihf-gcc ./hello_world.c -o hello_world.out会得到名字是hello_world.out的执行文件。scp 指令将可执行文件拷到BeagleBone Black的/tmp目录下,然后ssh指令到BeagleBone Black上去执行/tmp/hello_world.out即可看到打印输出了。

-------------------------------年轻人的第一个用命令行交叉编译的hello world总算是完成了---------------------------------

eclipse安装:万能的eclipse,此处需要带有敬仰

写在前面:自己百度搜ubuntu 16.04安装eclipse,很多教程都是教你用sudo 进行各种安装,我觉得不可取,普通权限能安装好的软件,没必要用sudo去安装,毕竟小白们都理解不了各种权限的配置。

给BeagleBone Black开发用户态的程序,怎么能少了eclipse。ubuntu16.04默认是没有jdk环境的,所以安装eclipse前,需要搞定jdk。把最新的JDK和eclipse下下来,tar -zxf 解压后,都丢到~目录下(放到哪个目录下就看个人习惯了,我是喜欢放进~目录下)。(小插曲:一开始jdk是windows下面下好的,然后用共享文件夹转到ubuntu下面,解压失败,后面ubuntu下重新下载,解压就成功了)

JDK配置:把jdk路径(我的是/home/xinshangqiu/jdk1.8.0_181/bin)放进/etc/environment中,然后source /etc/environment 即可生效,用java -version查看一下版本信息进行验证。

这时候就可以开始跑eclipse了,年轻人第一个用eclipse写出来的交叉编译hello_world即将诞生。

cd到eclipse目录下直接 ./eclipse即可,炫酷的eclipse启动了。(好久没用eclipse了,最新版的eclipse着实让人惊艳)。

废话不多说,hello_world搞起。硕大的“Create a new C project”有木有,赶紧鼠标点上去。

进入了工程配置界面,

project name我们当然要写“hello_world”,project type选择Executable下面的Hello World ANSI C Project,Toolchains选择Cross GCC。然后一路点击next。

这个界面稍作停留,很重要。是填写交叉编译GCC基本信息(前缀和路径)的地方,我们使用到的gcc编译器的全称是“arm-linux-gnueabihf-gcc”,所以这里的Cross compiler prefix就填“arm-linux-gnueabihf-”,Cross compiler path是交叉编译链的路径,选成sdk目录下对应的位置即可。如果使用的是其他编译链,请灵活处理。弄完后,请按下“Finish”。

年轻人的第一个用eclipse写出来的交叉编译hello_world就呈现在我们面前了(其实是eclipse自带的,我们只是配置了一下交叉编译链的路径)。赶紧锤一下(eclipse的编译按钮是把锤子,很形象有木有)。console里面一番0 errors,0 warnnings的打印输出后,然后你就能在工程的Debug目录下看到编译好的。

这里我们还是暂时按照前面的scp指令和ssh指令,傻瓜式的用命令行将文件传到BeagleBone Black上去运行(晚点再来补上怎么直接用eclipse远程登录BeagleBone Black进行调试的过程,这个点要去公司加班了)。

----------掌声,掌声,掌声,年轻人的第一个用eclipse交叉编译的hello world总算是完成了-----------

晚点再来续更CCS的安装和使用。

posted @ 2020-09-08 14:25  张达嘛  阅读(770)  评论(0编辑  收藏  举报