栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Hi3516DV300 Cmake工程建立教程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hi3516DV300 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下载地址

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/360598.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号