刚开始接触linux下Hi35xx的交叉编译,对于makefile的使用感觉实在太头疼,不懂makefile语法,对Hi35xx的工程也不了解,有时连头文件都找不到,所以对集成开发环境就特别的渴望。
在一次收集资料过程中,发现有linux下的codeblocks交叉编译的文章,于是对集成开发环境开发Hi35xx的热情重新被点燃,如图(1)。
图(1)
下面是在linux下使用codeblocks进行交叉编译的一些尝试,通过图(2)中的命令安装codeblocks,主要关注第7行的命令,再输入codeblocks即可运行。
图(2)
在ubuntu下的codeblocks新建工程,编译sample,还存在如下红色部分错误,应该是找不到对应的源文件,需要解决,再找到交叉编译器的路径并进行combile配置,那么应该可以实现codeblocks交叉编译开发Hi35xx(至少刚开始的时候是这么认为的),如图(3)。
图(3)
想方设法,把报错缺少的一些资源放到能找到的路径里,再次编译下,勉强能够找到这些文件,但是却又爆出下面这个问题,SENSOR0_TYPE找不到,没有定义,如图(4),对这个SENSOR0_TYPE也不理解是什么,当然后来知道,这是镜头的类型,比如是200万像素的镜头,还是800万像素的镜头。
图(4)
在单片机和linux开发里,朱有鹏老师的视频很有名,在他的教程里,提到海思SDK里的MPP中有很多的工程实例,如图(5),MPP中的实例会调用很多API函数,而API函数又封装在ko库里。
图(5)
比如图(6) common中的sample_comm_venc.c需要调用MPP中的HI_MPI_SYS_SetMemConfig,但是却不存在,那是因为海思把这些API函数封装在ko库里了,而codeblocks又没法加载这个库,那么就歇菜了。
图(6)
codeblocks不能加载ko文件,那么真的是没办法用codeblocks做hi35xx的开发了。所以啊,目前情况来看,想要通过集成开发环境来进行Hi35xx进行交叉编译开发,那应该可能是不大了,还是乖乖地通过makefile进行工程开发吧,不要再有什么异想。
以上内容,是个人在开发过程中经验与技巧的分享,或许存在不到之处,仅供参考!