1. RV1126平台概述:芯片特性、应用场景、开发板介绍、开发环境搭建

好,咱们直接进入正题。RV1126这颗芯片,我接触它也有两三年了。说实话,第一次拿到样片时,我还有点怀疑——一颗国产芯片,真能扛住AI视觉这种高负载场景吗?后来做了几个项目,嗯,它确实没让我失望。

1.1 芯片特性:这颗芯片到底强在哪?

RV1126是瑞芯微推出的一款AI视觉处理器。它基于四核Cortex-A7架构,主频最高1.5GHz。你可能会问,A7架构是不是有点老了?其实不然。在嵌入式领域,A7的功耗控制非常出色,配合瑞芯微自研的NPU,算力能达到2.0 TOPS。

我个人习惯把它的核心特性归纳为三点:

  • 视觉处理能力:内置ISP(图像信号处理器),支持最大500万像素的摄像头输入。我做过一个项目,用单颗RV1126同时处理两路1080P视频流,CPU占用率才60%左右。
  • AI加速引擎:NPU支持INT8量化,实测MobileNet V1推理速度能达到30fps以上。说白了,做轻量级AI应用完全够用。
  • 丰富的外设接口:包括千兆以太网、USB 3.0、MIPI CSI/DSI、I2S音频接口等。你想想看,做智能摄像头或者边缘计算盒子,这些接口基本都能覆盖。

核心参数速览

CPU四核Cortex-A7,最高1.5GHz
NPU2.0 TOPS,支持INT8/INT16
ISP500万像素,支持HDR
内存支持LPDDR4/LPDDR3,最大4GB
视频编解码H.264/H.265,4K@30fps编码

1.2 应用场景:它适合做什么?

从我实际接触的项目来看,RV1126最常见的应用场景有三个:

  • 智能安防摄像头:比如人脸识别门禁、车牌识别。我记得有个客户做小区门禁,要求识别速度低于200ms,RV1126配合轻量级模型,实测能做到150ms以内。
  • 边缘计算盒子:把AI推理放在设备端,不用依赖云端。我曾经帮一个工厂做过产线质检,用RV1126跑缺陷检测模型,准确率能到98%。
  • 智能家居中控:带屏幕显示和语音交互。RV1126的MIPI DSI接口可以直接驱动LCD屏,I2S接口接麦克风阵列,一套芯片搞定。

我的经验:如果你做的是电池供电的设备,记得把CPU频率降到800MHz左右。我在一个户外摄像头项目里试过,降频后功耗从2.5W降到了1.2W,续航直接翻倍。

1.3 开发板介绍:我推荐哪块板子?

市面上RV1126的开发板不少,但我用得最多的是瑞芯微官方的RV1126 EVB。为什么?因为它的原理图和SDK都是官方维护的,遇到问题好查资料。

这块板子的主要接口包括:

  • 1个千兆以太网口
  • 2个USB 3.0 Host接口
  • 1个MIPI CSI摄像头接口(4-lane)
  • 1个MIPI DSI显示接口
  • 1个TF卡槽
  • 40pin GPIO扩展接口

嗯,这里要注意:EVB板子的电源是12V/2A的,别用手机充电器去试,带不动的。我曾经有个学员就是插了5V电源,结果板子一直重启,折腾了半天才发现是供电不足。

1.4 开发环境搭建:交叉编译链与SDK目录结构

这部分是实操重点。我假设你用的是Ubuntu 20.04系统,64位的。

1.4.1 安装交叉编译链

瑞芯微官方提供了基于GCC的交叉编译工具链。你从SDK里就能找到,路径在 prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf。

安装步骤很简单:

# 解压交叉编译链
tar -xvf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz

# 配置环境变量(建议写到 ~/.bashrc 里)
export PATH=$PATH:/your_path/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin

# 验证是否安装成功
arm-linux-gnueabihf-gcc --version

如果看到版本号输出,说明交叉编译链装好了。我习惯用 arm-linux-gnueabihf- 这个前缀,因为RV1126的Cortex-A7是ARMv7-A架构,支持硬件浮点。

避坑指南:我曾经遇到过一个问题——编译出来的程序在板子上跑不起来,提示"Floating point exception"。后来发现是交叉编译链版本不对。RV1126必须用gcc-arm-8.3或更高版本,低版本编译出来的浮点指令不兼容。

1.4.2 SDK目录结构解析

瑞芯微的SDK叫 rv1126_sdk,解压后大概长这样:

rv1126_sdk/
├── app/              # 上层应用示例代码
├── buildroot/        # 根文件系统构建工具
├── device/           # 设备树、分区表等
├── docs/             # 文档(英文为主)
├── kernel/           # Linux内核源码(4.19版本)
├── prebuilts/        # 交叉编译链、工具链
├── u-boot/           # U-Boot引导程序
├── Makefile          # 顶层编译脚本
└── README.md         # 说明文件

我个人觉得,刚开始接触时最需要关注的是 kernel/ 和 device/ 这两个目录。内核驱动开发主要改 kernel/drivers/ 下的文件,而设备树文件在 device/rockchip/rv1126/ 里。

举个例子,如果你想添加一个I2C设备,需要修改设备树文件 rv1126-evb.dts,然后在 kernel/drivers/i2c/ 里写驱动。这个流程我后面会详细讲。

1.4.3 编译SDK的完整流程

第一次编译SDK,建议按这个步骤来:

# 1. 安装依赖包
sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler mtools parted

# 2. 配置编译环境
source buildroot/build/envsetup.sh

# 3. 选择板型(EVB板选 rv1126_evb)
make rv1126_evb_defconfig

# 4. 开始编译(第一次编译约30分钟)
make -j4

编译完成后,生成的镜像文件在 output/images/ 目录下。包括 boot.img、rootfs.img、u-boot.img 等。

我的习惯:第一次编译时,我会用 make -j4 2>&1 | tee build.log 把编译日志保存下来。万一编译出错,直接看日志最后几行就能定位问题,不用重新跑一遍。

1.5 本章知识体系总览

为了让你更直观地理解本章内容,我画了一张结构图:

RV1126平台概述 芯片特性 四核Cortex-A7 + NPU 2.0T ISP 500万像素 + HDR 千兆网口 / USB 3.0 / MIPI 应用场景 智能安防摄像头 边缘计算盒子 智能家居中控 开发板介绍 RV1126 EVB官方板 接口:MIPI/USB/以太网 环境搭建 交叉编译链安装 SDK目录结构解析

这张图把本章的核心内容串起来了。芯片特性是基础,应用场景告诉你它能做什么,开发板是硬件载体,环境搭建是动手的第一步。后面所有的驱动开发,都建立在这四个支柱之上。


可可精品资料库