码迷,mamicode.com
首页 > 其他好文 > 详细

Hi3518开发板开发总结

时间:2015-06-17 07:08:19      阅读:659      评论:0      收藏:0      [点我收藏+]

标签:linux   sdk   海思3518c   嵌入式   

0. 前言

     其实还挺忙的,但是这篇文章总结的内容我大概弄了两天,所以还是要总结一下,感觉都比较琐碎,但是免得下次又要重新做一部分的工作浪费精力。

   一般网上大部分的教程可能都是教用一台Windows的电脑做客户机,一台Linux的虚拟机,然后连上板子。我直接把Windows的那台机省了,因为我本身也不太习惯用windows做开发环境,使用windows的教程主要是因为可以用ScureCRT这个工具,而Linux上有类似的工具,就是minicom,都是串口工具,下文会提到。

 

1. 搭建开发环境

 

1.1 搭载NFS服务器

     不知道什么是NFS服务器?请自行百科吧,百科如果都看不懂,那估计还是那句老话,估计后面的你也不用看了,可以在底下点个赞然后关闭网页了谢谢。

     一般嵌入式的开发都会用到这个东西,因为板子的环境比较封闭,资源比较有限,很难在板上直接开发和调试,所以会使用另一台配置好开发环境的电脑做开发,然后把开发好的文件拷贝到挂载的文件夹中,挂载的文件夹其实就是板子的文件夹共享了。

     Ubuntu下使用如下命令安装NFS服务器

  

sudo apt-get install nfs-kernel-server #root用户可以不用sudo

     然后需要配置一下:

 

vim /etc/exports #NFS最主要的配置文件

#在最下面加上一行
/home/luoyun/nfs *(rw,sync,no_root_squash,no_subtree_check)
#星号签名的文件夹是用来挂载的文件夹,*星号表示同一网段内的所有客户端可以访问。

 

1.2 设置板子IP

     因为需要挂载,所以每个客户端都需要有IP,这时候我们把网线插上板子,你会发现对应的IP是不会自动分配的,所以要自己手动设置。设置方法如下:

 

ifconfig eth0 192.168.1.120 #IP根据你的实际内网段填写即可。

 

 

1.3 使用minicom登陆板子

     minicom也是需要安装的,直接sudo apt-get install minicom就好,然后运行sodu minicom -s进行配置,我们的板子是用USB口连到电脑上的,所以对应的串口一般会是ttyUSB0,如果你的USB还有其他设备,那么可能会是ttyUSB1之类的。然后设置波特率115200,8,1,无流控。

     上一点说道的手动设置IP也是要在通过minicom登陆板子后在板子串口上设置的。

1.4 挂载共享文件夹

     继续呆在板子串口里,然后设置挂载文件夹:

 

 

mount -t nfs -o nolock 192.168.1.101:/home/luoyun/nfs /opt #假设开发机的IP是192.168.1.101

 

     意思就是把板子的/opt文件夹挂载到开发机的nfs文件夹上。

 

1.5 unpack SDK

      假设你已经有了海思的SDK,如果没有的话,那就自己找找呗。文件比较大,我也不方便上传。

      执行./sdk.unpack,主要执行权限。

      为了后续编译不出低级问题,如果开发系统是Ubuntu的话,建议修改默认dash为bash, 命令行执行sudo dpkg-reconfigure dash,然后选择no即可。

1.6 编译osdrv

     编译osdrv主要会出现几个问题,需要一一对应处理:

     1. “arm-hisiv100nptl-linux-gcc:command not found”,出现这个问题主要还没有安装海思的编译器和设置环境变量的问题,最好切换到root用户,然后执行osdrv/toolchain里面的cross.instal, 然后再执行source /etc/profile确认环境变量。理论上如果不用root用户操作,可以把/etc/profile中最后一行$PATH的命令复制到命令行执行一遍就可以,不过好像当前情况下一直不成功。

     2. 解决了第一个问题之后,很可能会出现第二个问题: ”mkimage:command not found",一开始知道了这个命令ubuntu是不自带的之后,别人发了个mkimage的执行文件给我,我直接拷贝到系统中用,结果我设置好权限之后还是用不了,然后果断放弃,直接安装这个命令,安装方法 sudo apt-get install u-boot-tools.

     然后就编译通过了。

 

2. 移植支持视频传输的PJSIP

 

2.1 设置环境变量

      如果1.6第一个问题中你用了root操作,并且乖乖的安装了编译器,那么估计是不需要用到在命令行执行$PATH的,但是在这一步,这个工作还确实是省不了了。因为如果不把这个执行了,环境变量没有设置好,无法编译其他文件的。

2.2 移植编译FFMPEG

      FFMPEG是PJSIP能支持视频传输或者通话的最重要的依赖库,所以要编译了这个,然后再编译PJSIP才可以有视频的功能。

      一定要记住的是编译任何依赖库都要是用arm或海思的编译器编译,才能给后续的程序使用,最后给板子使用,不然只是在电脑编译了是没有用的。

      编译命令参考:

./configure --enable-cross-compile --arch=arm --target-os=linux --enable-static --disable-shared --cc=arm-hisiv100nptl-linux-gcc --enable-libx264 --enable-gpl --disable-network  --enable-pthreads --enable-small --disable-parsers --disable-debug


     如果有需要,可以先编译一下x264,如果没有编译x264,那--enable-libx264也可以删掉。

     如果提醒有strip相关的问题,可以用--disable-stripping不使用strip去掉库信息。

2.3 移植编译PJSIP

     最后一步,其实不难,先执行如下命令

./configure --with-ffmpeg=/usr/local/lib --host=arm-hisiv100nptl-linux-

     然后修改pjproject2-4/pjmedia/include/pjmedia的config.h, 把#define PJMEDIA_HAS_VIDEO 和#define PJMEDIA_HAS_FFMPEG的0改成1.

     保守一点的话,还可以在pjlib/pj/include/config_site.h中写入#define PJMEDIA_HAS_VIDEO 1(官网上的标准配置是需要写这个的)。

     最后执行make dep && make。

     编译通过后,把可执行文件拷贝到/home/luoyun/nfs那个挂载了的文件夹上即可。

 

转载请注明出处:http://blog.csdn.net/luoyun614/article/details/46526645

Hi3518开发板开发总结

标签:linux   sdk   海思3518c   嵌入式   

原文地址:http://blog.csdn.net/luoyun614/article/details/46526645

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!