DJI PSDK2.1 .0 海思3516ev200 开发实例

开发前准备:

1.申请PSDK ID与KEY

申请链接:https://developer.dji.com/payload-sdk/apply/

2.申请通过后可以在用户中心中下载PSDK2.1.0的开发包

正式开始开发

先简单叙述下开发思路:在X86的电脑上进行交叉编译,下载编译链并进行安装,更改PSDK2.1.0的Cmakelist文件,更改PSDK2.1的环境适配:

一、下载himix100的编译链,并进行安装(我安装在了X86的电脑上)

1.himix100的编译链下载:https://download.csdn.net/download/qq_35781447/12485614

2.解压编译链:

tar zxvf arm-himix100-linux.tgz

3.进入文件夹进行安装:

cd arm-himix100-linux/
sudo ./arm-himix100-linux.install

4.安装成功后可以在终端输出arm-himix100-linux- 再双击TAB键查看环境是否正常,若出现下图则正常

DJI PSDK2.1 .0 海思3516ev200 开发实例_第1张图片

#若安装成功但是无法出现上图,可以尝试重启,重启后依旧不行则执行以下步骤:

cd /etc
sudo gedit profile

#在最后一行添加(路径,默认是以下路径)

# HuaWei LiteOS Linux, Cross-Toolchain PATH
export PATH="/opt/hisi-linux/x86-arm/arm-himix100-linux/bin:$PATH" 
# 

二、对PSDK2.1.0进行适配

1.下载安装包,并解压

unzip Payload_SDK_V2.1.0.zip

大家可以看下文件架构

doc/psdk_other_docs/psdk_code_style: Template files described code style of Payload SDK.
doc/simple_model: Some structural models of Skyport 1/Skyport 2/X-Port and aircraft. The structure models provide convenience for users to design payload structure.
psdk_lib/api_headers: Header files of Payload SDK, describing all API of Payload SDK. Users can understand features provided by Payload SDK and its usages relying on the header files.
psdk_lib/lib: Library files of Payload SDK. Users select appropriate library file to use based on target platform.
sample/api_sample: Sample code used to demonstrate usage of Payload SDK features.
sample/platform: Sample code related to specific platform, including Linux and FreeRTOS platforms.
sample/platform/linux/common/osal: OSAL layer implementation of Linux operation system.
sample/platform/linux/manifold2: Sample project used on Manifold 2.
sample/platform/rtos_freertos/common/osal: OSAL layer implementation of FreeRTOS operation system.
sample/platform/rtos_freertos/psdk_development_board_1.0: Sample project used on Payload SDK development board 1.0.
tools: Some tools used with Payload SDK.

2.我们先修改Cmakelist.txt文件,位于Payload_SDK_V2.1.0-build.189/sample/platform/linux/manifold2/project

修改两个地方,第一处是编译链版本,将原来的gcc g++改为arm-

set(CMAKE_C_COMPILER "arm-himix100-linux-gcc")
set(CMAKE_CXX_COMPILER "arm-himix100-linux-g++")

第二处修改PSDK链接库(如下直接注释原来的,添加以下两行)

 DJI PSDK2.1 .0 海思3516ev200 开发实例_第2张图片

link_directories(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/arm-himix100-linux-gcc)
link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/arm-himix100-linux-gcc/libpayloadsdk.a)

3.在app_info.h中填写申请的用户信息(文件路径/Payload_SDK_V2.1.0-build.189/sample/platform/linux/manifold2/application)

4.我们先注释掉一些不好适配的功能先让这个PSDK跑起来

注释psdk_config.h文件中的以下功能:如图所示 只留下PSDK_USING_CAMERA_EMU

DJI PSDK2.1 .0 海思3516ev200 开发实例_第3张图片

 

注释main.c中的234-237行 289-297行 416-422行(可能随着版本变化 位置不一样请对照下面图片进行注释)

DJI PSDK2.1 .0 海思3516ev200 开发实例_第4张图片

DJI PSDK2.1 .0 海思3516ev200 开发实例_第5张图片

DJI PSDK2.1 .0 海思3516ev200 开发实例_第6张图片

注释psdk_media_file_mp4.c文件中207-213行(可能随着版本变化 位置不一样请对照下面图片进行注释)

DJI PSDK2.1 .0 海思3516ev200 开发实例_第7张图片

注释psdk_media_file_jpg.c文件170-176行(可能随着版本变化 位置不一样请对照下面图片进行注释)

注释osal.c文件63-68行(可能随着版本变化 位置不一样请对照下面图片进行注释)

DJI PSDK2.1 .0 海思3516ev200 开发实例_第8张图片

到这里初步已经适配完成了,我们进行编译和试跑。

三、编译软件并进行试跑

编译程序完成后将psdk_demo.bin可执行文件拷入海思板子中并运行即可

 

你可能感兴趣的:(DJI,SDK)