RDK X5 载板适配
适用:EVS 模块(如 EVS_003)连接 RDK X5 载板。本页合并硬件连接、环境配置与示例程序。模块参数见 EVS_003 产品页,事件相机原理见 基础原理。
没有相机?
可先到 资料下载 — 示例录像 下载一个 .raw 文件,用本页的 evs_recode_player 或上位机回放,体验事件数据预览与分析。
一、硬件准备与环境配置
1 硬件准备
1.1 所需硬件清单
在开始之前,请确保准备好以下硬件:
| 硬件 | 说明 | 必需 |
|---|---|---|
| RDK X5 开发板 | 运行示例程序的主板 | ✓ |
| EVS 事件相机模块 | 连接到 RDK X5 | ✓ |
| 电源适配器 | 5V/3A 或更高功率 | ✓ |
| SD 卡 | 建议 32GB 及以上,Class 10 | ✓ |
| HDMI 显示器 | 用于查看实时画面 | 推荐 |
| HDMI 线 | 连接开发板和显示器 | 推荐 |
| 网线/WiFi | 用于远程访问(可选) | 可选 |
| USB 键盘 | 本地操作(可选) | 可选 |
1.2 硬件连接步骤
步骤 1:安装 SD 卡
确保 SD 卡已烧录系统镜像
镜像版本
使用的镜像为:shimetapi_rdk_x5_3.4.1_0609.img
MD5值:81c545e85b9ba9c414657d52d9bed711将 SD 卡插入 RDK X5 的 SD 卡槽
步骤 2:连接 EVS 相机
- 找到 RDK X5 上的 MIPI CSI 接口,默认接在 CAM1 接口上(靠近网口)
- 轻轻打开接口卡扣
- 将 EVS 相机排线插入
- 按下卡扣固定排线

步骤 3:连接显示器
- 使用 HDMI 线连接 RDK X5 和显示器
步骤 4:接通电源
- 连接电源适配器
- 观察开发板指示灯(应该开始闪烁)
2 环境配置
参考文档
RDK官方指导:https://developer.d-robotics.cc/rdk_doc/RDK
2.1 系统登录
2.1.1 HDMI桌面系统
插入电源,HDMI,等待系统初始化,初始化完成即可显示桌面系统

2.1.2 串口登录
选择串口登录需要确保安装了串口驱动CH340。 插入串口,设备管理器会有端口显示。
打开 MobaXterm 工具,点击 Session,然后选择 Serial,X5的串口波特率是115200

再插入电源上电,此时在 MobaXterm 的串口终端里会打印日志,最后会有个系统登录 用户:sunrise 密码:sunrise 用户:root 密码:root (管理员权限)
2.2 MobaXterm SSH 连接
连接 WIFI 可以直接用 ifconfig 指令获取当前设备 IP
连接以太网的需要输入下面的指令
sudo vi /etc/NetworkManager/system-connections/netplan-eth0.nmconnection这里以串口终端显示为例,需要修改这个文件里面的 IP 地址和网关,需要和你连接的网线一样的 IP 网段

然后就可以打开 MobaXterm 工具,点击 SSH,填写 IP 地址和用户(这里的用户推荐直接使用 root)

点击 OK 后再输入密码就可以进入终端了

二、示例程序使用指南
以下指令均在 root 用户下执行,在 sunrise 用户下需要在指令前添加 sudo 再执行。
1 示例程序目录框架
├── sample_aps # APS 显示模式
│ └── get_aps_raw_display
│ ├── aps_display.cpp
│ └── Makefile
├── sample_evs_release # EVS 案例包
│ ├── evs_env
│ │ ├── include
│ │ └── lib
│ ├── evs_mode
│ │ ├── 01_evs_live_player
│ │ ├── 02_evt2_to_csv
│ │ ├── 03_evs_recode_player
│ │ └── 04_raw8_to_evt2
│ └── Makefile
└── sample_hvs # HVS 显示模式
└── dual_vc_vin_src
├── dual_vc_vin.c
├── include
├── lib
├── Makefile
└── src2 sample_aps 使用指南
2.1 APS实时预览(get_aps_raw_display)
cd /app/multimedia_samples/sample_apx003cc/sample_aps/get_aps_raw_display
make执行上述内容,Ubuntu系统桌面就会显示一个窗口显示APS模式的图像
注意:目前只是demo,未加入ISP效果文件,后续将会加入ISP效果文件,实现RGB图像显示。
3 sample_evs_release 使用指南
3.1 实时预览与录制 (evs_live_player)
3.1.1 功能说明
evs_live_player 是最基础的示例程序,提供两个核心功能:
- 实时预览:在屏幕上显示事件相机捕获的画面
- 数据录制:将事件数据保存为 RAW8 格式文件
3.1.2 使用前准备
确保:
- ✓ EVS 相机已正确连接
- ✓ 显示器已连接(用于预览)
3.1.3 使用说明
先进入到工程目录,赋予程序可执行权限后查看可用的传感器:
cd /app/multimedia_samples/sample_apx003cc/sample_evs_release/evs_mode/01_evs_live_player
sudo ./evs_live_player.RAW8 -s 49注意目前只适配了apx003c-4096x256-240fps-4line 这组配置文件,这里选择索引 49 执行
执行后:
- 程序启动,打开相机
- 弹出预览窗口显示实时画面

如果需要进行录制,可以通过快捷键r切换录制开关,数据会写入到内存中,录制结束后写到SD卡(系统卡)中

录制结束以后,文件会自动命名并保存到当前目录。
注意
模块内部集成加密芯片,本程序只适用于 shimeta 的 evs 模块。
3.1.4 FAQ
这里解释一下为什么要先把数据写入到内存中:
由于RDKX5并没有集成EMMC存储,只配备了4/8G可选的DDR4内存,系统文件都存储在SD卡中,大部分的SD卡在非连续文件读写的时的速度都不高,加上SD卡的质量参差不齐,而EVS相机的一大特点就是高帧率,虽然数据量不大,但是耐不住帧率高,笔者了解到国产的EVS相机传感器帧率最大已经达到了64K!
我们再对使用的SD卡和板卡自带的DDR进行读写速度测试,笔者使用的SD卡测试结果如下:
SD卡写入测试(12MB/S):
dd if=/dev/zero of=/tmp/test_write bs=1M count=256 conv=fdatasyncSD卡读取测试(24MB/S):
fio --name=read_test --ioengine=sync --rw=read --bs=1M --size=256M --numjobs=1 --filename=/tmp/test_write
内存读写速度测试(写765MB/S ; 读 1.7GB/S)
写入测试:
dd if=/dev/zero of=/dev/shm/memtest bs=1M count=1024 conv=fdatasync读取测试:
dd if=/dev/shm/memtest of=/dev/null bs=1M count=1024
实测发现两者的速度差距快达到100倍了! 高帧率时开启录制,SD卡的读写速度就明显吃力了,把数据暂存到内存也是无奈之举。
3.2 RAW8 转 EVT2 (raw8_to_evt2)
为什么需要转换?
虽然说RDKX5宣传有10T的算力,但这一块的算力主要集中于BPU,而我们解码主要使用CPU资源 经过实测,将原始mipi数据包进行解码并实时显示,CPU无法完成如此大算力的计算,大于120FPS时画面出现明显卡顿。 为了显示的实时性,我们只对每个mipi包第一个完整帧进行解码显示。录制时,剩下的原始数据直接保存到内存用于后续解码。 那为什么不对原始数据包直接进行分析,而是先转换成EVT2格式呢? 而EVT2 格式是Metavision SDK 标准格式,可以兼容我们的windows上位机软件和Ubuntu上的完整算法库,所有提供了保存的原始数据转换成EVT2格式的中间过程。
使用方法:
cd /app/multimedia_samples/sample_apx003cc/sample_evs_release/evs_mode/04_raw8_to_evt2
# 转换后的文件直接生成在当前目录
./raw8_to_evt2 /userdata/hand_wave.RAW8
# 指定转换后的文件到指定目录
./raw8_to_evt2 /userdata/hand_wave.RAW8 /userdata/output.raw转换过程:

3.3 EVT2 转 CSV (evt2_to_csv)
为什么转换为 CSV?
CSV 是通用的表格格式,便于:
- 在 Excel 中查看和分析
- 使用 Python/MATLAB 进行数据处理
- 可视化工具绘图
CSV 文件格式:
x,y,polarity,timestamp
352,240,1,1234567890
120,180,0,1234567920
425,305,1,1234568100
...| 列名 | 含义 | 取值范围 |
|---|---|---|
| x | 横坐标 | 0-767 |
| y | 纵坐标 | 0-607 |
| polarity | 极性 | 0(变暗)或 1(变亮) |
| timestamp | 时间戳 | 微秒 |
使用方法:
cd /app/multimedia_samples/sample_apx003cc/sample_evs_release/evs_mode/02_evt2_to_csv
# 转换后的文件直接生成在当前目录
./evt2_to_csv /userdata/hand_wave.raw
# 指定转换后的文件到指定目录
./evt2_to_csv /userdata/hand_wave.raw /userdata/events.csv
转换后的文本文件可以直接打开查看

注意,不要轻易打开长时间录制的转换文件,几百MB的纯txt文件,电脑不好的话大概率宕机了
3.4 录制文件回放 (evs_recode_player)
3.4.1 功能说明
evs_recode_player 用于回放录制的事件数据,支持变速播放(x1, x1/2, x1/8)
3.4.2 使用方法
cd /app/multimedia_samples/sample_apx003cc/sample_evs_release/evs_mode/03_evs_recode_player
# 播放 EVT2 格式文件
./evs_recode_player /userdata/hand_wave.raw3.4.3 使用说明

画面循环播放,按快捷键1正常倍速播放 ,2以1/2速度播放 , 3以1/8速度播放
4 sample_hvs 使用指南
4.1 HVS 实时显示 (dual_vc_vin_src)
执行下述指令,Ubuntu系统桌面就会显示一个窗口显示HVS模式的图像(左侧EVS图像+右侧APS图像)
cd /app/multimedia_samples/sample_apx003cc/sample_hvs/dual_vc_vin_src
./dual_vc_vin_src
make默认参数:-a 50 -b 51

注意:目前只是demo,未加入ISP效果文件,后续将会加入ISP效果文件,实现RGB图像显示。
