在上次进行了开箱以后,我在接下来的日子里继续研究了爱芯派Pro,在我研究其他人的试用报告时,我发现大家都在玩人工智能的模型,虽然板子的确强项是人工智能,但是在我看来,首先要编译好DEMO,然后研究如何接入RTSP,最后再把识别出来的数据传递给其他进程或者API也是必不可少的内容,毕竟将来做产品总不能用官方的示例。在我搭建好了环境以后,然后就进行了编译程序,最后通过SCP将编译好的程序传入到板子上的时候,然后发现了一个巨大的问题就是DEMO无法运行起来,但是我运行板子上自带的DEMO是完全没有问题的,我目前没有解决,不过已经有思路了,就在解决这个问题的时候突然发现应该交第2篇报告了,所以本次的主题就是搭建编译环境、一次失败的编译、运行板上的示例程序,以及解决方案和后续计划。
搭建编译环境
本次搭建编译环境是DOCKER的Ubuntu镜像上面进行的,依据的过程是官方的GITHUB上,地址是ax650n_bsp_sdk,根据里面的README,我们首先要安装编译软件。
wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
sudo tar -xvf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz -C /opt/
export PATH="/opt/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/:$PATH"
基本上的步骤就是下载交叉编译软件,然后进行解压,最后引入环境变量就完事了。
然后我们还需要通过百度网盘下载一些三方软件,官方也已经提供给我们了,地址是third-party。
最后我们首先把库拉下来,如果用github进行拉库的话,会非常非常的慢,我在gitee上面也找到了官方维护的库,但是还是1.40的版本,所以我又在gitee上面重新克隆了一遍,大家可以在拉库的时候直接使用我的这个库进行拉库,如果后续官方更新了,我没有同步,大家可以提醒我一下,或者自己在gitee上面重新引入自己的,不过还是比较慢的最好提前进行。
最后我们把三方软件进行解压,解压后放入到目录中,最后的样子就是如同上图所示的那样,接下来,我们进行编译。
首先我们编译的是官方的DEMO。
cd app
make p=AX650_pipro_box
直接就可以编译成功了,可以说是非常轻松了。
然后我们进行编译sample程序。
cd msp/samples
make p=AX650_pipro_box
很快也编译成功了,然后可以看一下msp/out/bin/下面会出现sample和DEMO程序了。
然后我们把整个out进行全部打包,如果通过windows中转,这里是一定要将out文件夹打包进行传输的。
通过SCP传到板子上后,进行解压,解压后执行一个RTC的小sample,可以看到是没有任何问题的,完全正常的运行了。
一次失败的编译
但是接下来在运行编译好的DEMO程序时,发现并不能正常运行,总是报错。
当然了,在运行DEMO以前要先把HDMI的输出关闭。
但是我的DEMO程序依旧是在报错。
我怀疑是我的配置有问题(后来发现并不是),然后突然发现板子的/opt下有自带的DEMO程序,那就美了先测试一下。
运行板上的示例程序
开始执行板子上的程序,最后,HDMI上也如愿以偿的显示了出来。
于是我把我板子上的程序进行了备份,把我的执行程序放了过来,然后运行,但是依旧是没有运行起来,报错的问题一样,然后我就考虑到底是哪里出了问题?随之,我突然想起来github上面的SDK是1.45版本,随之官方还发布了新的镜像,而我查看了下载站的image,发现板子上面的镜像是1.27,那么有没有可能是SDK不匹配的问题呢?
目前还尚未验证。
解决方案
解决方案有两种,第一是把板子升级到1.45,第二是把SDK降到1.27,但是我查看了GitHub上面的LOG,发现好像GITHUB上面最开始就已经是1.40了,这就很尴尬了,不过我会先后续尝试一下。再说说第一种方案,第一种方案最大的问题是我没有找到烧写回1.27的办法,下载站中虽然有镜像,但是并没有介绍如何烧录,也有可能是我没有看见?但是我看到别人有写,说是1.27智能再TF卡上执行,没有办法烧录回EMMC,我估计办法肯定是有的,可能没有开放,而且据说1.45还是有问题,但是,从内心来讲还是要采用第一种方案的,毕竟有问题还是要解决问题的,总不能固步不前不是。
后续计划
首先是根据以上两种解决方案,依次进行尝试,首先将SDK降到1.40尝试,然后再将板子升级到1.45再次进行尝试。
然后,是研究将拉流RTSP到板子上进行解码,然后再进行编码推流RTMP进行直播。
最后,通过板子上面的AI进行视频画面的处理。