树莓派3B+ 运行大疆 DJI PSDK2.1.0

    技术2022-07-11  84

    一、开发前准备:

    1.申请PSDK ID与KEY

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

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

    二、对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-linux-gnueabihf-gcc arm-linux-gnueabihf-g++

     

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

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

     

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

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

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

    注释psdk_config.h文件中的所有预定义:如图所示

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

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

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

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

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

    在project中新建文件夹build 

    mkdir build

    进行编译

    cd build cmake .. make

    运行可执行文件

    ./psdk_demo

     

    Processed: 0.012, SQL: 10