作为一名嵌入式开发老鸟,最近拿到香橙派5开发板时还是被它的配置惊艳到了。这款基于瑞芯微RK3588S的板子,不仅搭载了四核Cortex-A76和四核Cortex-A55的big.LITTLE架构,还配备了6TOPS算力的NPU,这在同价位开发板中实属罕见。我手上这块是8GB内存版本,跑起AI推理任务来简直不要太爽。
第一次点亮板子时,官方提供的Debian系统已经预装了完整的开发环境。通过HDMI接上显示器,熟悉的Linux桌面瞬间呈现。不过作为开发者,我更关心的是如何在裸机环境下充分发挥这块板子的性能。接下来几周,我将从基础外设测试到AI模型部署,带大家完整走一遍香橙派5的开发流程。
工欲善其事,必先利其器。针对RK3588S的异构计算架构,我们需要准备以下工具:
特别要注意的是,官方提供的SDK包解压后约有35GB空间占用,建议准备至少100GB的SSD空间。我在第一次编译时就因为空间不足导致构建失败,后来换用NVMe SSD后才解决问题。
官方提供的Debian镜像虽然开箱即用,但对我们做底层开发来说显得过于臃肿。我选择从Buildroot开始构建最小系统:
bash复制make BR2_aarch64=y BR2_PACKAGE_HOST_LINUX_HEADERS=y menuconfig
在配置时需要特别注意:
完整编译一次大约需要2小时(16线程i7-12700H)。生成的镜像仅120MB,非常适合作为开发基础。
香橙派5的40pin扩展接口与树莓派兼容,但引脚定义有所不同。通过查阅原理图,我整理出常用GPIO的对应关系:
| 功能 | 物理引脚 | 芯片引脚 | 备注 |
|---|---|---|---|
| LED1 | 7 | GPIO0_B3 | 低电平点亮 |
| 按键 | 11 | GPIO0_A0 | 按下为低 |
使用sysfs方式控制GPIO时,需要先导出引脚:
bash复制echo 3 > /sys/class/gpio/export # GPIO0_B3
echo out > /sys/class/gpio/gpio3/direction
echo 0 > /sys/class/gpio/gpio3/value # 点亮LED
注意:RK3588S的GPIO编号计算方式为(group)8 + (index),比如GPIO0_B3对应08+11=11(不是3)
香橙派5的PCIe 3.0 x4接口非常适合接NVMe SSD。我使用三星980 Pro进行测速:
bash复制# 安装测试工具
apt install fio
# 顺序读写测试
fio --filename=/dev/nvme0n1 --rw=read --bs=1M --iodepth=64 --runtime=60 --name=test
测试结果:
这个性能已经接近接口的理论上限,完全能满足边缘计算的数据吞吐需求。
RK3588S的NPU支持INT8/INT16/FP16量化。以YOLOv5s为例,转换流程如下:
python复制torch.onnx.export(model, im, "yolov5s.onnx", opset_version=12)
python复制rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]])
rknn.load_onnx(model="yolov5s.onnx")
rknn.build(do_quantization=True, dataset="dataset.txt")
rknn.export_rknn("yolov5s.rknn")
c复制rknn_input inputs[1];
inputs[0].index = 0;
inputs[0].buf = input_data;
inputs[0].size = input_size;
rknn_inputs_set(ctx, 1, inputs);
rknn_run(ctx, nullptr);
rknn_output outputs[3];
rknn_outputs_get(ctx, 3, outputs, nullptr);
经过实测,我发现以下几个优化点能显著提升NPU效率:
rknn_set_core_mask指定NPU核心(0-5)rknn_set_batch_core_num优化后,YOLOv5s的推理速度从初始的45ms提升到22ms(1080p输入)。
现象:上电后无显示,串口无输出
排查步骤:
现象:推理结果全零或NaN
可能原因:
长时间满负载运行时,RK3588S的温升明显。我测试了几种散热方案:
| 方案 | 待机温度 | 满载温度 | 噪音 |
|---|---|---|---|
| 被动散热片 | 45℃ | 92℃ | 无 |
| 小型风扇 | 38℃ | 75℃ | 45dB |
| 涡轮风扇 | 35℃ | 68℃ | 55dB |
建议根据使用场景选择:安静环境用被动散热+降频,性能优先选涡轮风扇。
经过一个月的深度使用,我发现香橙派5在以下场景表现尤为出色:
对于想深入开发的同好,我建议: