【PSDK】基于DOCKER的开发环境配置

本文详细介绍了如何使用Dockerfile创建一个包含Ubuntu18.04基础镜像的容器,配置环境并下载依赖,如TiProcessorSDK、编译工具等,以支持J721ERTOS开发。

1 创建容器

1.1 Dockerfile

########################################################################################################################
# docker build -f Dockerfile_u18_tsinghua_u18 -t u18:tsinghua_u18 .
# docker run -id --privileged=true --name u18_tsinghua u18:tsinghua_u18
# docker exec -it u18_tsinghua /bin/bash 
# docker stop u18_tsinghua
# docker rm   u18_tsinghua
# docker rmi  u18:tsinghua_u18
########################################################################################################################
# 基础镜像
FROM ubuntu:18.04

# 构建参数
ARG user=u18

# 元数据
LABEL Author=Steven.Zhou Email=zhy29563@126.com

# 系统更新
RUN apt-get -y update                                                                                    &&\
    apt-get install -y ca-certificates                                                                   &&\
    cp /etc/apt/sources.list /etc/apt/sources.list.bak                                                   &&\
    sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list  &&\
    sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list &&\
    apt-get -y update                                                                                    &&\
    apt-get -y upgrade                                                                                   &&\
    apt-get install -y sudo openssh-server net-tools wget axel curl zip unzip build-essential            &&\
    apt-get -y autoremove

# 添加用户:赋予sudo权限,指定密码
RUN useradd -m --shell /bin/bash ${user} && adduser ${user} sudo && echo "${user}:${user}" | chpasswd

# 指定容器起来的工作目录
WORKDIR /home/${user}

# 指定容器起来的登录用户
USER ${user}

1.2 镜像与容器操作

# 创建镜像
docker build -f Dockerfile_u18_tsinghua_u18 -t u18:tsinghua_u18 .
# 创建容器
docker run -id --privileged=true --name u18_tsinghua u18:tsinghua_u18
# 进入容器
docker exec -it u18_tsinghua /bin/bash 
# 停止容器
docker stop u18_tsinghua
# 删除容器
docker rm   u18_tsinghua
# 删除镜像
docker rmi  u18:tsinghua_u18

2. 依赖下载

2.1 环境包

下载链接:PROCESSOR-SDK-RTOS-J721E
下载版本与文件

cd DOWNLOAF_PATH

wget https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-bA0wfI4X2g/07.03.00.07/ti-processor-sdk-rtos-j721e-evm-07_03_00_07.tar.gz
wget https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-bA0wfI4X2g/07.03.00.07/ti-processor-sdk-rtos-j721e-evm-07_03_00_07-prebuilt.tar.gz
wget https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-bA0wfI4X2g/07.03.00.07/psdk_rtos_j721e_7.3_es11_src_patch.tar.gz

2.2 编译工具

cd DOWNLOAF_PATH

wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf.tar.xz         --no-check-certificate
wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz   --no-check-certificate
wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz --no-check-certificate

2.3 相关依赖

cd DOWNLOAF_PATH

git clone git://git.ti.com/atf/arm-trusted-firmware.git
cd arm-trusted-firmware && git checkout -b dev ti2020.00
cd .. && tar -zcvf arm-trusted-firmware.tar.gz arm-trusted-firmware/

git clone git://git.ti.com/optee/ti-optee-os.git
cd ti-optee-os && git checkout -b dev ti2020.00
cd .. && tar -zcvf ti-optee-os.tar.gz ti-optee-os/

wget https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/snapshot/opkg-utils-master.tar.gz --no-check-certificate
wget https://github.com/g-truc/glm/releases/download/0.9.8.0/glm-0.9.8.0.zip                 --no-check-certificate
wget https://sourceforge.net/projects/glew/files/glew/2.0.0/glew-2.0.0.zip/download          --no-check-certificate -O `pwd`/glew-2.0.0.zip

3. 拷贝镜像到容器

cd DOWNLOAF_PATH

docker exec -t u18_tsinghua mkdir /home/u18/psdk_src                                                    &&\
docker cp ti-processor-sdk-rtos-j721e-evm-07_03_00_07.tar.gz            u18_tsinghua:/home/u18/psdk_src &&\
docker cp ti-processor-sdk-rtos-j721e-evm-07_03_00_07-prebuilt.tar.gz   u18_tsinghua:/home/u18/psdk_src &&\
docker cp psdk_rtos_j721e_7.3_es11_src_patch.tar.gz                     u18_tsinghua:/home/u18/psdk_src &&\
docker cp gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf.tar.xz            u18_tsinghua:/home/u18/psdk_src &&\
docker cp gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz      u18_tsinghua:/home/u18/psdk_src &&\
docker cp gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz    u18_tsinghua:/home/u18/psdk_src &&\
docker cp arm-trusted-firmware.tar.gz                                   u18_tsinghua:/home/u18/psdk_src &&\
docker cp opkg-utils-master.tar.gz                                      u18_tsinghua:/home/u18/psdk_src &&\
docker cp ti-optee-os.tar.gz                                            u18_tsinghua:/home/u18/psdk_src &&\
docker cp glm-0.9.8.0.zip                                               u18_tsinghua:/home/u18/psdk_src &&\
docker cp glew-2.0.0.zip                                                u18_tsinghua:/home/u18/psdk_src

4. 环境构建

cd /home/u18/psdk_src

# 主环境
tar -xvf /home/u18/psdk_src/ti-processor-sdk-rtos-j721e-evm-07_03_00_07.tar.gz &&\
mv       /home/u18/psdk_src/ti-processor-sdk-rtos-j721e-evm-07_03_00_07        /home/u18/psdk

# 文件系统
tar -xvf /home/u18/psdk_src/ti-processor-sdk-rtos-j721e-evm-07_03_00_07-prebuilt.tar.gz                                           &&\
cp       /home/u18/psdk_src/ti-processor-sdk-rtos-j721e-evm-07_03_00_07-prebuilt/boot-j7-evm.tar.gz                /home/u18/psdk &&\
cp       /home/u18/psdk_src/ti-processor-sdk-rtos-j721e-evm-07_03_00_07-prebuilt/tisdk-default-image-j7-evm.tar.xz /home/u18/psdk

# 补丁包
tar -xvf /home/u18/psdk_src/psdk_rtos_j721e_7.3_es11_src_patch.tar.gz &&\
tar -xvf /home/u18/psdk_src/psdk_rtos_j721e_7.3_es11_src.tar.gz -C /home/u18/psdk/pdk_jacinto_07_03_00_29/packages/ti

# 编译器
tar -xvf /home/u18/psdk_src/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf.tar.xz         -C /home/u18/psdk &&\
tar -xvf /home/u18/psdk_src/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz   -C /home/u18/psdk &&\
tar -xvf /home/u18/psdk_src/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz -C /home/u18/psdk

# 依赖
tar -xvf /home/u18/psdk_src/arm-trusted-firmware.tar.gz  -C /home/u18/psdk &&\
tar -xvf /home/u18/psdk_src/ti-optee-os.tar.gz           -C /home/u18/psdk &&\
tar -xvf /home/u18/psdk_src/opkg-utils-master.tar.gz     -C /home/u18/psdk &&\
unzip    /home/u18/psdk_src/glm-0.9.8.0.zip              -d /home/u18/psdk &&\
unzip    /home/u18/psdk_src/glew-2.0.0.zip               -d /home/u18/psdk && cd /home/u18/psdk/glew-2.0.0 && make && sudo make install

# X11 与 GL
sudo apt-get install -y libx11-dev mesa-common-dev libglu1-mesa-dev

# i386架构
sudo dpkg --add-architecture i386
sudo apt-get -y update

# 构建SDK
cd /home/u18/psdk
./psdk_rtos/scripts/setup_psdk_rtos.sh

# 编译视觉程序
cd vision_apps
make -j16

# 删除安装包
rm -rf /home/u18/psdk_src
<think>好的,我现在需要帮助用户解决关于大疆PSDK开发环境配置和使用方法的问题。首先,我要回顾用户提供的引用内容,确保信息准确。用户提到了四个引用,其中引用[2]、[4]涉及环境配置,引用[3]关于自定义控件,引用[1]是概述。用户明确询问环境配置和使用教程,所以重点应放在引用[2]和[4]上。 首先,检查开发环境的基本要求。引用[4]提到需要GCC 5.4.0/5.5.0和CMake 2.8以上版本,以及如何安装这些工具。这部分需要详细说明安装步骤,包括安装命令和验证方法,确保用户能正确设置编译器。 接下来是PSDK的获取和编译。用户需要知道从哪里下载PSDK,可能是指官方网站或GitHub仓库。引用[2]和[4]都提到了编译步骤,特别是CMakeLists.txt的配置。这里需要分步骤解释如何解压SDK、配置CMake、进行交叉编译,并处理可能的依赖问题,如Widget模块的设置。 然后是开发环境的初始化配置,引用[2]提到在V2.2.0中设置Widget资源路径的函数,需要指导用户如何在代码中添加相关配置,并处理错误情况。这部分需要代码示例,并解释每个函数的作用,比如PsdkTest_WidgetSetConfigFilePath和PsdkTest_WidgetInit。 此外,用户可能需要了解如何运行和调试程序,特别是在无人机硬件上的部署。虽然引用中没有详细说明,但根据经验,可能需要指导如何将编译后的程序上传到负载设备,并连接无人机进行测试。 最后,确保回答结构清晰,分步骤讲解,并附带示例代码,如CMake配置和初始化代码片段。同时,生成相关问题,帮助用户深入探索,比如交叉编译优化、自定义控件开发等,这些都在引用[2][3]中有涉及。 需要验证所有步骤是否正确,特别是安装命令和代码片段是否有拼写错误,确保用户能顺利跟随教程。同时,注意使用中文,避免专业术语混淆,必要时进行解释。比如,解释交叉编译的概念,确保新手也能理解。 总结回答的结构:开发环境准备、获取PSDK、编译配置、初始化设置、运行调试、常见问题,然后相关问题部分。确保每个步骤都有明确的指导,引用对应的参考资料,并在末尾添加引用标识。</think>### 大疆PSDK开发环境配置与使用教程 以下为基于大疆Payload SDK(PSDK开发环境配置的详细步骤,结合官方文档和实际开发经验整理而成: --- #### 一、开发环境准备 1. **操作系统要求** - 推荐使用Ubuntu 18.04/20.04 LTS(兼容性最佳) - Windows需通过WSL或虚拟机运行Linux环境[^4] 2. **工具链安装** ```bash # 安装GCC编译器(5.4.0/5.5.0版本) sudo apt install build-essential gcc -v # 验证版本 # 安装CMake(2.8及以上) sudo apt install cmake cmake --version # 验证版本 ``` *引用[4]中提到的工具链需优先配置*[^4] --- #### 二、获取PSDK并编译 1. **SDK下载与解压** - 从大疆开发者官网下载最新版PSDK(如V3.3) - 解压至工作目录:`tar -zxvf psdk_v3.3.tar.gz` 2. **交叉编译配置** ```cmake # 示例CMakeLists.txt关键配置(引用[2]) set(CMAKE_C_COMPILER "gcc") include_directories(${PROJECT_SOURCE_DIR}/inc) add_subdirectory(psdk_wrapper) # 包含PSDK核心库 ``` *注意:需根据硬件平台调整交叉编译工具链*[^2] --- #### 三、初始化开发环境 1. **Widget模块配置(引用[3])** 在代码中设置资源路径并注册控件: ```c #ifdef PSDK_USING_WIDGET // 设置Widget资源路径 if (PsdkTest_WidgetSetConfigFilePath("./data/") != PSDK_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { PsdkLogger_UserLogWarn("Path set failed, use default."); } // 初始化Widget模块 if (PsdkTest_WidgetInit() != PSDK_ERROR_SYSTEM_MODULE_CODE_SUCCESS) { PsdkLogger_UserLogError("Widget init error"); } #endif ``` *控件配置文件需放置在`./data/`目录下*[^3] --- #### 四、运行与调试 1. **编译并部署** ```bash mkdir build && cd build cmake .. && make # 生成可执行文件 ./psdk_demo # 运行示例程序 ``` 2. **连接无人机** - 通过USB或RTK端口连接DJI行业无人机(如Matrice 300) - 使用`PsdkPlatform_RegHalOsalHandler()`注册硬件抽象层接口[^2] --- #### 五、常见问题 - **依赖缺失**:确保安装`libusb-1.0`和`openssl`开发包 - **版本兼容性**:SDK版本需与无人机固件匹配(参考大疆官方兼容性列表) ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhy29563

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值