技术专栏
基于arm-himix200-linux-gcc 交叉编译大疆PSDK
528
本文会讲诉如何在基于arm-himix200-linux-gcc交叉编译工具进行编译大疆PSDK,选用的板子是HI3516DV300为主控的,交叉编译平台是ubuntu20.04,PSDK版本是3.7.0。
大疆PSDK地址:https://github.com/dji-sdk/Payload-SDK/tree/master
libusb:https://libusb.info/
环境准备
首先既然是使用arm-himix200-linux这个交叉编译链,当然是要先配置关于它的环境了,从海思的SDK里面我们可以得到这个,没有的可以从论坛下载,解压后进行source一下环境。
source ./arm-himix200-linux.install
arm-himix200-linux-gcc -v //看到有正常输出即编译链工具配置成功
psdk是通过cmake来管理整个工程的,所以还需要安装cmake。
sudo apt install cmake
cmake --version //psdk要求版本至少不低于3.5
然后需要交叉编译一下libusb-1.0这个库。
tar -xvf libusb-1.0.26.tar.bz2
cd libusb-1.0.26
./configure --prefix=/opt/libusb-1.0-install CC=arm-himix200-linux-gcc --host=arm-linux --disable-udev //--prefix为最后install的路径,根据自己的环境进行修改,要写绝对路径 CC为指定编译工具 --host为交叉编译工具 --disable-udev是关闭udev库(udev为usb摄像头开发时使用的,这里我们不需要,需要可自行编译libudev),防止编译时报错
make -j
make install
PSDK编译
进入PSDK工程,找到Payload-SDK/samples/sample_c/platform/linux/manifold2/CMakeLists.txt,进行一些简单修改
cmake_minimum_required(VERSION 3.5)
project(dji_sdk_demo_linux C)
set(CMAKE_C_FLAGS "-pthread -std=gnu99")
set(CMAKE_CXX_FLAGS "-std=c++11 -pthread")
set(CMAKE_EXE_LINKER_FLAGS "-pthread")
set(CMAKE_C_COMPILER "arm-himix200-linux-gcc") # 更换为arm-himix200-linux-gcc
set(CMAKE_CXX_COMPILER "arm-himix200-linux-g++") # 更换为arm-himix200-linux-g++
add_definitions(-D_GNU_SOURCE)
if (NOT USE_SYSTEM_ARCH)
add_definitions(-DSYSTEM_ARCH_LINUX)
endif ()
if (BUILD_TEST_CASES_ON MATCHES TRUE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
endif ()
set(PACKAGE_NAME payloadsdk)
## "uname -m" to auto distinguish Manifold2-G or Manifold2-C
execute_process(COMMAND uname -m
OUTPUT_VARIABLE DEVICE_SYSTEM_ID)
# 这一段屏蔽
#if (DEVICE_SYSTEM_ID MATCHES x86_64)
# set(TOOLCHAIN_NAME x86_64-linux-gnu-gcc)
# add_definitions(-DPLATFORM_ARCH_x86_64=1)
#elseif (DEVICE_SYSTEM_ID MATCHES aarch64)
# set(TOOLCHAIN_NAME aarch64-linux-gnu-gcc)
# add_definitions(-DPLATFORM_ARCH_aarch64=1)
#else ()
# message(FATAL_ERROR "FATAL: Please confirm your platform.")
#endif ()
set(TOOLCHAIN_NAME arm-himix200-linux-gcc)
file(GLOB_RECURSE MODULE_COMMON_SRC ../common/*.c)
file(GLOB_RECURSE MODULE_HAL_SRC hal/*.c)
file(GLOB_RECURSE MODULE_APP_SRC application/*.c)
file(GLOB_RECURSE MODULE_SAMPLE_SRC ../../../module_sample/*.c)
include_directories(../../../module_sample)
include_directories(../common)
include_directories(../manifold2/application)
include_directories(../../../../../psdk_lib/include)
link_directories(../../../../../psdk_lib/lib/${TOOLCHAIN_NAME})
link_libraries(${CMAKE_CURRENT_LIST_DIR}/../../../../../psdk_lib/lib/${TOOLCHAIN_NAME}/lib${PACKAGE_NAME}.a)
if (NOT EXECUTABLE_OUTPUT_PATH)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
endif ()
add_executable(${PROJECT_NAME}
${MODULE_APP_SRC}
${MODULE_SAMPLE_SRC}
${MODULE_COMMON_SRC}
${MODULE_HAL_SRC})
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../common/3rdparty)
find_package(OPUS REQUIRED)
if (OPUS_FOUND)
message(STATUS "Found OPUS installed in the system")
message(STATUS " - Includes: ${OPUS_INCLUDE_DIR}")
message(STATUS " - Libraries: ${OPUS_LIBRARY}")
add_definitions(-DOPUS_INSTALLED)
target_link_libraries(${PROJECT_NAME} /usr/local/lib/libopus.a)
else ()
message(STATUS "Cannot Find OPUS")
endif (OPUS_FOUND)
# libusb
include_directories(/opt/libusb-1.0-install/include
)
target_link_libraries(${PROJECT_NAME}
/opt/libusb-1.0-install/lib/libusb-1.0.a
)
target_link_libraries(${PROJECT_NAME} m)
add_custom_command(TARGET ${PROJECT_NAME}
PRE_LINK COMMAND cmake ..
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
然后编译即可
mkdir build;cd build
cmake ..;make -j
放到板子上后可以了,这个报错是因为要配置账户密码,这个的话需要自己去大疆平台申请,还有串口和网口也需要对应修改。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
5
5
评论
打赏
- 分享
- 举报
评论
0个
时间排序
手气红包
共 0 条记录 第
0 / 页
相关专栏
-
2020-08-03 19:14:56
-
浏览量:3559次2019-12-16 13:54:11
-
浏览量:3561次2022-04-01 17:01:16
-
浏览量:488次2023-06-20 16:09:54
-
浏览量:2448次2022-10-13 17:29:06
-
浏览量:2041次2020-08-04 20:30:30
-
浏览量:4141次2020-09-30 18:01:11
-
浏览量:385次2023-06-12 14:18:15
-
浏览量:161次2023-10-25 15:43:39
-
浏览量:2858次2020-08-29 16:50:56
-
浏览量:3532次2022-10-17 20:51:39
-
浏览量:84次2023-11-23 15:47:07
-
浏览量:2597次2017-11-21 13:53:36
-
浏览量:2121次2017-11-20 12:34:12
-
浏览量:4621次2019-12-28 10:33:46
-
浏览量:4948次2020-08-03 18:36:13
-
浏览量:408次2023-06-12 14:34:40
-
浏览量:2785次2020-08-30 10:04:00
-
浏览量:176次2023-09-01 13:29:58
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者

毛巾卷
您的支持将鼓励我继续创作!
打赏金额:
¥1

¥5

¥10

¥50

¥100

支付方式:

举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注