运行示例程序
在申请到开发者账号后,请下载 PSDK 提供的示例代码并在示例代码中补充应用信息,通过编译、调试和烧录等操作获得示例程序。移植到目标开发板后即可运行示例程序。
提示:
- 如需将 RTOS 或 Linux 的示例代码运行在其他开发板或操作系统中,请参考跨平台移植。
获取示例代码
可以直接通过开发者网站的下载链接下载 PSDK 开发包,在 PSDK 开发包中可获取相关的示例代码,借助示例代码了解使用 PSDK 开发负载设备的方法,并快速开发出功能完善的负载设备。
创建负载应用
请参考 注册 PSDK 开发者账号 章节,填写必要的信息并申请开发者账号;审核通过后,我们会以邮件的形式告知生成的账号信息。
注意:
- 为提高您的开发效率,请在示例代码中正确填写应用的名称、ID、Key和开发者账号,否则编译后的示例程序将无法正常运行。
运行 RTOS 示例代码
说明:
- 本文以 HC32F460 芯片开发板为例,介绍运行 RTOS 示例代码的步骤和方法。
烧录 Bootloader
烧录发布版本,在 samples\sample_c\platform\rtos_freertos\hc32f460\04_tools\release目录下ModelX.MODEXTHROWV2-boot_V1.0.0.0_app_Vx.x.x.x.bin
文件。
相关参考:
- 实现 Bootloader:
samples\sample_c\platform\rtos_freertos\hc32f460\03_boot\
- Bootloader 工程目录:
samples\sample_c\platform\rtos_freertos\hc32f460\03_boot\projects
- Bootloader 编译脚本:
samples\sample_c\platform\rtos_freertos\hc32f460\04_tools\all_make.bat
补充应用信息
- 使用 Keil IDE 打开位于
samples\sample_c\platform\rtos_freertos\hc32f460\02_app\projects
目录下的工程文件app.uvprojx
。 - 在
samples\module_sample\uav_sdk_app_info.c
文件中替换应用的名称、ID、Key、License、开发者账号和指定波特率。
#define USER_APP_NAME "your_app_name"
#define USER_APP_ID "your_app_id"
#define USER_APP_KEY "your_app_key"
#define USER_APP_LICENSE "your_app_license"
#define USER_DEVELOPER_ACCOUNT "your_app_account"
#define USER_BAUDRATE_RATE "460800"
编译并烧录
- 使用 Keil MDK IDE 编译示例代码为示例程序。
- 编译示例代码后,将编译后的程序烧录到负载设备中。
- 如需调试示例程序,请将串口调试工具的波特率设置为:
115200
。 - 如需使用示例程序中升级接口进行升级,则需要使用 Bootloader 构建脚本生成 bin 文件并烧录。仅进行功能调试时可以直接使用 Keil MDK IDE 进行烧录调试。
运行 Linux 示例代码
说明:
- 本文以树莓派 4B 为例,介绍运行 Linux 示例代码的步骤和方法。
补充应用信息
- 在
example/uav_sdk_app_info.h
文件中替换应用的名称、ID、Key、License、开发者账号和指定波特率。
#define USER_APP_NAME "your_app_name"
#define USER_APP_ID "your_app_id"
#define USER_APP_KEY "your_app_key"
#define USER_APP_LICENSE "your_app_license"
#define USER_DEVELOPER_ACCOUNT "your_app_account"
#define USER_BAUDRATE_RATE "460800"
- 在
example/timesync.cxx
示例代码中的 main 函数中修改串口通信信息。
UAV_Uart_Init("/dev/pts/20",115200);
- 通过 ifconfig 命令,查看当前与无人机通讯的网口设备名称,并填写到
include/uav_platform.h
文件的LOCALHOST_ETHERNET_TEST
宏中。注意实际开发中以 UAV_Network_Init 函数传参为准。
#define LOCALHOST_ETHERNET std::string("your_network_name")
执行示例程序
- 配置运行环境后执行时间同步示例。
export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH
./example/timesync ./config/logger.yaml