我是靠谱客的博主 俊逸天空,最近开发中收集的这篇文章主要介绍Hi3516DV300 Cmake工程建立教程一、准备事项二、建立基本的Cmake工程三、提取SDK完善Cmake工程四、编译与调试五、总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Hi3516DV300 Cmake工程建立教程

  • 一、准备事项
  • 二、建立基本的Cmake工程
  • 三、提取SDK完善Cmake工程
  • 四、编译与调试
  • 五、总结

一、准备事项

1.以默认路径安装交叉编译器arm-himix200-linux.
2.解压SDK Hi3516CV500_SDK_V2.0.2.0.
3.板子运行程序前需加载好驱动。

二、建立基本的Cmake工程

如下图所示,建立基本的Cmake工程。
1.bin目录用于放编译生成的可执行文件。
2.build目录用于编译。
3.include目录用于放SDK的头文件。
4.lib目录用于放库文件。
5.src目录则用于放SDK的.c文件。
6.CMakeLists.txt为Cmake文件。

在这里插入图片描述

三、提取SDK完善Cmake工程

以编译sample vio为例完善Cmake工程。
1.添加头文件、库文件、以及common目录和sample/vio目录下的文件
注意:如果代码存在目录文件夹的,需要复制出来,include以及src目录下不放其他文件夹。
添加文件之后的Cmake工程如下图所示。
在这里插入图片描述
2.编写CMakeLists.txt文件
工程目录下的CMakeLists.txt

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)
SET(TOOLCHAIN_DIR /opt/hisi-linux/x86-arm/arm-himix200-linux)
SET(CMAKE_C_COMPILER /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc)
SET(CMAKE_CXX_COMPILER /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++)
SET(CMAKE_FIND_ROOT_PATH  ${TOOLCHAIN_DIR}
 ${TOOLCHAIN_DIR}/arm-himix200-linux/include
 ${TOOLCHAIN_DIR}/arm-himix200-linux/lib )
 
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

PROJECT(Hi3516CV500_SDK_V2.0.2.0_MPP_Sample)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
INCLUDE_DIRECTORIES(include)
add_subdirectory(src)

src目录下的CMakeLists.txt

aux_source_directory (. SRC_LIST)

add_executable (EXEC_MPP_SAMPLE ${SRC_LIST})

set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)

LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)

target_link_libraries(EXEC_MPP_SAMPLE pthread dl m)

3.提取MPP编译参数
修改Hi3516CV500_SDK_V2.0.2.0/smp/a7_linux/mpp/sample/smp_linux.mak文件。
添加4个echo将sample的编译参数提取出来。
在这里插入图片描述
编译sample即可提取编译参数。
在这里插入图片描述
提取CFLAGS
在这里插入图片描述
提取编译的库链接顺序
在这里插入图片描述

4.使用编译参数完善CMakeLists.txt文件
给工程目录下的CMakeLists.txt添加CFLAGS。
在这里插入图片描述
给src目录下的CMakeLists.txt添加链接库。
在这里插入图片描述

四、编译与调试

进入build目录进行编译与调试Cmake工程。

cmake ..用于生成Makefile文件

在这里插入图片描述
生成Makefile之后在build目录进行编译。
在这里插入图片描述
报错找不到audio_aac_adp.h文件,将SDK audio/adp目录下的文件复制到Cmake工程include和src目录。
Hi3516CV500_SDK_V2.0.2.0/smp/a7_linux/mpp/sample/audio/adp
在这里插入图片描述
报错找不到VGS相关函数,修改库的链接顺序,将libmpi放到lib_hiawb之后。
在这里插入图片描述
在这里插入图片描述
报错找不到MP3的相关函数,删除MP3相关的文件audio_mp3_adp.c/audio_mp3_adp.h/mp3dec.h,根据audio目录下的可知,mp3相关的库需要从Android P的源码中拷贝,暂时不添加MP3的代码。

删除MP3相关的文件需要删除build目录下的文件,重新生成Makefile。

rm * -rf
cmake ..

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

报错找不到MP3的头文件和定义,则屏蔽相关代码。
在这里插入图片描述
编译成功,同时在bin目录下生成可执行文件EXEC_MPP_SAMPLE。

将EXEC_MPP_SAMPLE复制到板子上即可运行。
在这里插入图片描述
在这里插入图片描述

五、总结

本教程将SDK的MPP代码重新建立Cmake工程,可以脱离SDK单独进行开发,大大提高了开发便捷性。不过,本教程是基于sample vio建立的Cmake工程,编译其他sample时可能会出现报错,需要额外处理错误信息。后续可能会在此基础上添加FB相关功能,相关更新会在git代码进行。CSDN积分多的小伙伴可以点击下CSDN下载地址下载。

本教程git地址
本教程文件CSDN下载地址

最后

以上就是俊逸天空为你收集整理的Hi3516DV300 Cmake工程建立教程一、准备事项二、建立基本的Cmake工程三、提取SDK完善Cmake工程四、编译与调试五、总结的全部内容,希望文章能够帮你解决Hi3516DV300 Cmake工程建立教程一、准备事项二、建立基本的Cmake工程三、提取SDK完善Cmake工程四、编译与调试五、总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部