上手教程
介绍
串口调试
升级固件
介绍
使用USB线缆升级固件
MaskRom模式
使用SD卡升级固件
Linux开发
编译 Linux 固件
Firefly Linux 开发指南
Firefly Debian 使用手册
快速使用
RKMedia
技术案例
接口使用
ADC 使用
Camera 使用
Display 使用
Ethernet 使用
GPIO 使用
LED 使用
RTC 使用
UART 使用
Watchdog 使用
WIFI 使用
4G 模组使用
Sound Card 使用
POE 使用
配件
摄像头模组
显示屏模组
通信模组
其他
常见问题解答
FAQs
Linux 设备树 (DTS) 指南
参考资料
资源下载
Core-1126K-JD4
产品规格书

上手教程

1. 介绍

Core-1126-JD4采用瑞芯微RV1109系列处理器,内置AI神经网络加速NPU算力高达1.2Tops,支持4K H.265/H.264 多路编解码,内置1400万 ISP 2.0 ,具备多级降噪、3帧HDR等技术,支持 3 个摄像头同时输入,满足安防产品和AIoT的行业需求,广泛应用于:人脸识别、IPC智能网络摄像头、闸机门禁、智能安防、智慧金融/工地、智慧出行等行业。

_images/Core-1126-JD4-front.png

AIO-1126JD4 开发板由核心板 Core-1109-JD4 底板 MB-JD4-RV11091126 组成,。AIO-1126JD4 拥有 RGMII、USB2.0、I2C、UART、GPIO、MIPI-DSI 以及 MIPI-CSI 等丰富接口,可直接应用到各种智能产品中,加速产品落地,详细内容可参考接口定义

_images/AIO-1126JD4.png

一、产品介绍

产品简介

_images/usb-to-ttl-serial.png

发货清单

_images/usb-to-ttl-serial_shop_list.png

详细参数

  参数
尺寸 25x15.5mm
芯片 CP2104
LED Power LED, TX LED, RX LED
USB 类型 MicroUSB
排针 2.54mm 3PIN

二、使用方法

硬件连接

注意: 如使用其它串口适配器遇到 TX 和 RX 不能输入和输出的问题,可以尝试对调 TX 和 RX 的连接。

使用说明

串口参数配置

  • 波特率:1500000

  • 数据位:8

  • 停止位:1

  • 奇偶校验:无

  • 流控:无

说明: 以下表格中板型的调试串口波特率有所不同,是 115200。

板卡型号
RK3128 全系列,RK3288 全系列,AIO-3576JD4

Windows 上使用串口调试

安装驱动

下载驱动并安装:

如果在 Win8 上不能正常使用 PL2303,参考这篇文章, 采用 3.3.5.122 或更老版本的旧驱动即可。

如果在 Windows 系统上安装官网的 CP210X 驱动,使用 PUTTY 或 SecureCRT 等工具设置串口波特率为 1500000,如果出现设置不了或无效的问题,可以下载旧版本驱动

插入适配器后,系统会提示发现新硬件,并初始化,之后可以在设备管理器找到对应的 COM 口:

_images/debug_find_com.png

安装软件

Windows 上一般用 putty 或 SecureCRT。其中我们推荐使用 MobaXterm 免费版本。这是一款功能强大的终端软件,在这里介绍一下,MobaXterm 的使用方法与之类似。

到这里下载 MobaXterm

  1. 选择 sessionSerial

  2. Serial port 修改为在设备管理器中找到的 COM 端口。

  3. 设置 Speed (bsp) 为 1500000。

  4. 点击 OK 按钮。

_images/debug_set_MobaXterm1.png

_images/debug_set_MobaXterm2.png

Ubuntu 上使用串口调试

在 Ubuntu 上可以有多种选择:

  • minicom

  • picocom

  • kermit

篇幅关系,以下就介绍 minicom 的使用。

安装 minicom

注意:Hardware Flow Control Software Flow Control 都要设成 No,否则可能导致无法输入。

设置完成后回到上一菜单,选择 Save setup as dfl 即可保存为默认配置,以后将默认使用该配置。

升级固件

1. 介绍

1.1. 前言

Core-1126-JD4出厂默认安装Linux操作系统,如果用户要运行其他操作系统,需要使用对应的固件烧写到主板。

Core-1126-JD4有灵活的启动方式。一般情况下,除非硬件损坏,Core-1126-JD4 开发板是不会变砖的。

如果在升级过程中出现意外,bootloader 损坏,导致无法重新升级,此时仍可以进入 MaskRom 模式来修复。

1.2. 固件获取

1.3. 升级方式

Core-1126-JD4 支持通过以下两种方式升级固件:

  • 使用USB线缆升级固件

    使用Core-1126-JD4 将主板连接到电脑上,通过升级工具将固件烧写到主板上。
     

  • 使用SD卡升级固件

    通过升级卡制作工具,将MicroSD卡制作为升级卡(建议使用32G及以下容量的卡),将升级卡插入主板,上电开机,机器自动执行升级。

1.4. 启动存储器

Core-1126-JD4 从以下的存储器中加载系统:

  • eMMC 接口

  • SDMMC 接口

1.5. 启动模式

Core-1126-JD4有三种启动模式:

  • Normal 模式

  • Loader 模式

  • MaskRom 模式

1.5.1. Normal 模式

Normal 模式就是正常的启动过程,各个组件依次加载,正常进入系统。

1.5.2. Loader 模式

在 Loader 模式下,bootloader 会进入升级状态,等待主机命令,用于固件升级等。

1.5.3. MaskRom 模式

MaskRom 模式用于 bootloader 损坏时的系统修复。

一般情况下是不用进入 MaskRom 模式的,只有在 bootloader 校验失败(读取不了 IDB 块,或 bootloader 损坏) 的情况下,BootRom 代码 就会进入 MaskRom 模式。此时 BootRom 代码等待主机通过 USB 接口传送 bootloader 代码,加载并运行之。

要强行进入 MaskRom 模式,请参阅《MaskRom模式》一章。

2. 使用USB线缆升级固件

2.1. 前言

本文介绍了如何将主机上的固件,通过USB 数据线烧录到 Core-1126-JD4 开发板的存储器中。升级时,需要根据主机操作系统和固件类型来选择合适的升级方式。

2.2. 准备工具

  • Core-1126-JD4 开发板

  • 固件

  • 主机

  • 良好的USB 数据线

2.3. 准备固件

固件可以通过编译SDK获得,也可以通过资源下载处下载公版固件(统一固件)。固件文件一般有两种:

  • 单个统一固件

    统一固件是由分区表、bootloader、uboot、kernel、system等所有文件打包合并成的单个文件。Firefly正式发布的固件都是采用统一固件格式,升级统一固件将会更新主板上所有分区的数据和分区表,并且擦除主板上所有数据。

  • 多个分区镜像

    即各个功能独立的文件,如分区表、bootloader、kernel等,在开发阶段生成。独立分区镜像可以只更新指定的分区,而保持其它分区数据不被破坏,在开发过程中会很方便调试。

通过统一固件解包/打包工具,可以把统一固件解包为多个分区镜像,也可以将多个分区镜像合并为一个统一固件。

2.4. 安装烧写工具

2.4.1. Windows操作系统

  • 安装RK USB驱动

下载 Release_DriverAssistant.zip,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱动,请先选择驱动卸载,然后再选择驱动安装

_images/upgrade_firmware_install_rk_usb.jpg

  • 运行AndroidTool的RKDevTool.exe

_images/upgrade_firmware_androidtool_zh.png

2.4.2. Linux操作系统

Linux 下无须安装设备驱动

下载 Linux_Upgrade_Tool, 并按以下方法安装到系统中,方便调用:

下载 Linux_adb_fastboot, 并按以下方法安装到系统中,方便调用:

2.5. 进入升级模式

通常我们升级固件的模式有两种,分别是Loader模式和MaskRom模式。烧写固件前,我们需要连接好设备,并让板子进入到可升级模式。

2.5.1. Loader模式

2.5.1.1. 硬件方式进入Loader模式

连接设备并通过RECOVERY按键进入Loader升级模式步骤如下:

  • 先断开电源适配器连接

  • 使用 USB 数据线一端连接主机,一端连接开发板

_images/upgrade_otg_interface.jpg

  • 按住设备上的 RECOVERY (恢复)键并保持

  • 硬件版本不同,按键位置可能略有不同,请以实际丝印为准

  • 接上电源

  • 大约两秒钟后,松开 RECOVERY 键

2.5.1.2. 软件方式进入Loader模式

USB 数据线接好后在串口调试终端或adb shell给板子运行以下命令

2.5.1.3. 查看Loader模式

如何确定板子是否进入Loader模式,我们可以通过工具去查看

Windows操作系统

通过AndroidTool工具可以看到下方提示Found One LOADER Device _images/upgrade_firmware_androidtool_zh.png

如果有进行”进入Loader模式”的操作,仍旧没有看到烧写工具提示LOADER,此时可以可以看一下Windows主机是否有提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,可返回上一步重新安装驱动

_images/upgrade_firmware_new_equipment.jpg

Linux操作系统

运行upgrade_tool后可以看到连接设备中有个Loader的提示

2.5.2. MaskRom模式

进入MaskRom模式的方法,请参考《MaskRom模式》

2.6. 烧写固件

2.6.1. windows操作系统

2.6.1.1. 烧写统一固件 update.img

烧写统一固件 update.img 的步骤如下:

  1. 切换至Upgrade Firmware页。

  2. Firmware按钮,打开要升级的固件文件。升级工具会显示详细的固件信息。

  3. Upgrade按钮开始升级。

  4. 如果升级失败,可以尝试先按EraseFlash 按钮来擦除 Flash,然后再升级。

_images/upgrade_firmware_erase_flash_zh.png

2.6.1.2. 烧写分区映像

烧写分区映像的步骤如下:

  1. 切换至Upgrade Firmware页。

  2. 勾选需要烧录的分区,可以多选。

  3. 确保映像文件的路径正确,需要的话,点路径右边的空白表格单元格来重新选择。

  4. 点击Run按钮开始升级,升级结束后设备会自动重启。

_images/upgrade_firmware_androidtool_zh.png

烧写工具使用技巧:

  1. 获取设备分区表信息

    使 rv1126 设备进入 loader 模式。然后点击图片的 Dev Partition 按钮即可获取到设备的分区信息。

    _images/upgrade_tools_get_partition.png

    点击更新即可获取到设备的分区信息如下:

    _images/upgrade_tools_get_partition_ok.png

  2. 导出设备分区表信息

    点击鼠标右键弹出菜单,选择 export config 导出分区表配置:

    _images/upgrade_tools_export_config.png

  3. 加载设备分区表信息

    点击鼠标右键弹出菜单,选择 load config 加载分区表配置:

    _images/upgrade_tools_load_config.png

2.6.2. Linux操作系统

2.6.2.1. 烧写统一固件 update.img

2.6.2.2. 烧写分区镜像

查看 SDK 编译输出目录 rockdev 。可以看到这个目录下的 boot.img 是链接到 /path/to/sdk/kernel/zboot.img 的。


所以实际需要烧录的内核固件是 zboot.img 。如果在 rockdev 目录则执行以下命令烧录内核固件:

2.7. 常见问题

2.7.1. 1. 如何强行进入 MaskRom 模式

如果板子进入不了 Loader 模式,此时可以尝试强行进入 MaskRom 模式。操作方法见《MaskRom模式》

2.7.2. 2. 烧写失败分析

如果烧写过程中出现Download Boot Fail, 或者烧写过程中出错,如下图所示,通常是由于使用的USB线连接不良、劣质线材,或者电脑USB口驱动能力不足导致的,请更换USB线或者电脑USB端口排查。 

_images/upgrade_firmware_download_fail.png

3. MaskRom模式

有关启动模式的介绍,请参阅《升级固件介绍》一章

3.1. 简介

MaskRom 模式是设备变砖的最后一条防线。强行进入 MaskRom 涉及硬件操作,有一定风险,因此仅在设备进入不了 Loader 模式的情况下,方可尝试 MaskRom 模式。进入 MaskRom 的原理是人为的把 EMMC 的数据脚与地线短接,系统会认为 EMMC 数据出错,从而清除 EMMC 数据。

请小心阅读,并谨慎操作!

操作步骤如下:

  1. 设备断开电源

  2. 使用镊子短接 Core-1126-JD4 上的两个测试点(均如下图所示)

  3. 设备插入电源上电

  • 以下为 Core-1126-JD4 上的两个测试点

  • _images/upgrade_maskrom_test_points_core.png

此时设备就会进入 MaskRom 模式。

_images/upgrade_maskrom_zh.png

4. 使用SD卡升级固件

本文主要介绍如何通过MicroSD卡,升级主板上的固件。

使用MicroSD升级固件(建议用32G及以下容量的卡),需要在电脑上,通过做卡工具,将统一固件写入MicroSD卡,目前此操作只支持在Windows操作系统上完成。

4.1. 准备工具

4.2. 操作步骤

  • 下载需要升级到主板上的统一固件。

  • 打开SD_Firmware_Tool,勾选固件升级框,点击选择固件选择正确升级固件。

  • 将MicroSD插入USB读卡器,再插入到电脑USB口上,在列表式组合框中选择正确的USB设备。

  • 点击开始创建之后,等待创建结束。

  • 取出MicroSD卡,插入主板的MicroSD卡插槽,对主板上电开机,主板自动开始升级。

  • 升级完成后,取出MicroSD卡,主板自动重启,完成整个升级固件的流程。

_images/upgrade_firmware_sd_tool_zh.png

Linux开发

1. 编译 Linux 固件

1.1. 获取 SDK

首先准备一个空文件夹用于存放 SDK,建议在 home 目录下,本文以~/proj为例

注意:

1. SDK 采用交叉编译,所以要在 X86_64 电脑上使用 SDK,不要将 SDK 下载到板子上

2. 编译环境请使用 Ubuntu18.04(真机或 docker 容器),如果使用其他版本可能导致编译出错

3. 不要在虚拟机共享文件夹以及非英文目录存放、解压SDK

4. 获取、编译 SDK 请全程使用普通用户,不允许也不需要使用 root 权限(除非需要 apt 安装软件)

非常重要:

开发前请根据 WIKI 把 SDK 更新到最新,尤其是使用 CS-R1 集群服务器用户(使用 CS-R1 用户如果代码版本太旧软件电平配置和硬件不匹配可能导致硬件损坏)。

CORE-1126-JD4/CORE-1109-JD4 系列请下载 rv1126_rv1109_linux_release Linux SDK 软件包。

CORE-1126-JD4/CORE-1109-JD4 系列如果要进行 uvc 应用的开发,请下载 rv1126_rv1109_linux_ai_camera_release Linux SDK 软件包。

1.1.1. SDK 开发包说明

rv1126_rv1109_linux_release SDK 说明:

  1. CORE-1126-JD4/CORE-1109-JD4 系列产品可开发 IPC 固件(IPC 即网络摄像头)

  2. CAM-C1126S2U/CAM-C1109S2U 系列产品可开发 Facial_gate 固件(Facial_gate 即人脸识别闸机)

rv1126_rv1109_linux_ai_camera_release SDK 说明:

  1. CORE-1126-JD4/CORE-1109-JD4 系列产品可开发 AI_UVC 固件(UVC 即免驱摄像头)

  2. CAM-C1126S2U/CAM-C1109S2U 系列产品可开发 AI_UVC 固件(UVC 即免驱摄像头)

完整 SDK 和 BSP SDK 说明:

rv1126_rv1109_linux_release rv1126_rv1109_linux_ai_camera_release 都是完整 SDK 。

rv1126_rv1109_linux_bsp_releaserv1126_rv1109_linux_ai_camera_bsp_release 都是 BSP SDK 。

完整 SDK 和 BSP SDK 的区别:

  1. 完整 SDK 可以编译出 buildroot 系统。文件体积比较大。里面包含 rockchip 提供的硬件加速文件目录。第一次使用建议拉取完整 SDK 。

  2. BSP SDK 无法编译出 buildroot 系统。但是文件体积比较小。提供给只需要在公版固件的基础上,更新 u-boot 和 kernel 等分区固件的客户。

完整 SDK 和 BSP SDK 的相同点:

  1. 都可以编译打包 Debian10 固件。

1.1.2. 安装工具

获取 SDK 需要先安装:

1.1.3. 初始化仓库

  • 方法一(推荐国内用户使用)

SDK 源码存放于 gitlab,国内用户可能下载完整的 SDK 仓库速度比较慢,所以我们提供了一个 SDK 基础包(Linux SDK),国内用户只需要在此基础包上同步 gitlab 上的代码就可以了

注:该方法只能获取到完整 SDK 。BSP SDK 需要使用方法二获取。

  • 方法二

通过 repo 拉取代码,此方法对网络要求较高,有条件可以使用。可选择获取完整 SDK 或者 BSP SDK 。

  • rv1126_rv1109_linux_release 完整 SDK 拉取方法

mkdir ~/proj/rv1126_sdk/
cd ~/proj/rv1126_sdk/

repo init  --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git --no-repo-verify -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_release.xml

repo sync -c
#需反复确认代码下载是否成功
  • rv1126_rv1109_linux_bsp_release BSP SDK 拉取方法

mkdir ~/proj/rv1126_sdk/
cd ~/proj/rv1126_sdk/

repo init  --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git --no-repo-verify -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_bsp_release.xml

repo sync -c
#需反复确认代码下载是否成功
  • rv1126_rv1109_linux_ai_camera_release 完整 SDK 拉取方法

mkdir ~/proj/rv1126_sdk_ai/
cd ~/proj/rv1126_sdk_ai/

repo init  --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git --no-repo-verify -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_ai_camera_release.xml

repo sync -c
#需反复确认代码下载是否成功
  • rv1126_rv1109_linux_ai_camera_bsp_release BSP SDK 拉取方法

mkdir ~/proj/rv1126_sdk_ai/
cd ~/proj/rv1126_sdk_ai/

repo init  --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git --no-repo-verify -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_ai_camera_bsp_release.xml

repo sync -c
#需反复确认代码下载是否成功

注:默认 repo 工具是使用 python2 来拉取代码。如果 Linux PC 系统比较新,可能默认的是 python3 版本。如果代码无法拉取,请手动设置一下 Linux PC 系统的 python 版本为 python2。并且使用当前目录下的 .repo/repo/repo 工具进行代码拉取。查看 Linux PC 系统默认的 python 版本:

1.2. Linux SDK 配置介绍

1.2.1. 目录介绍

1.2.3. 分区说明

1.2.3.1. parameter 分区表

parameter.txt 文件中包含了固件的分区信息,以 parameter-ubuntu-fit.txt 为例:

路径:device/rockchip/rv1126_rv1109/parameter-xxxxxx-fit.txt

FIRMWARE_VER: 8.1
MACHINE_MODEL: RV1126
MACHINE_ID: 007
MANUFACTURER: RV1126
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00010000@0x00008000(boot),0x00010000@0x00018000(recovery),0x00010000@0x00028000(backup),0x00300000@0x00038000(rootfs),0x00060000@0x00338000(oem),0x00400000@0x00398000(userdata),-@0x00798000(media:grow)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9

CMDLINE 属性是我们关注的地方,以 uboot 为例, 0x00002000@0x00004000(uboot) 中 0x00004000 为uboot 分区的起始位置,0x00002000 为分区的大小,以此类推。

1.2.3.2. package-file

package-file 文件用于打包固件时确定需要的分区镜像和镜像路径,同时它需要与 parameter.txt 文件保持一致。

1.3. 编译 Debian 固件

本章介绍 Debian 固件的编译流程,推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。

本教程的编译部分适用于 v2.2.5f 以上 SDK 版本

1.3.2. 编译 SDK

1.3.2.3.1. 全自动编译

1.3.2.3.2. 部分编译


1.4. 编译 Buildroot 固件

本章介绍 Buildroot 固件的编译流程,推荐在 Ubuntu 18.04 系统环境下进行开发,若使用其它系统版本,可能需要对编译环境做相应调整。

本教程的编译部分适用于 v2.2.5f 以上 SDK 版本

1.4.2. 编译 SDK

1.4.2.1. 编译前配置

1.4.2.2. 编译

1.4.2.2.1. 全自动编译

全自动编译会执行上述编译、打包操作,生成 RK 固件。

1.4.2.2.2. 部分编译

1.5. 编译 Thunder-boot 固件

目前 CORE-1126-JD4 最新的 SDK 已适配快速启动。编译快速启动固件选项:

_images/windows_vlc.jpg 

注意:该快速启动固件仅适用于 CORE-1126-JD4 V1.1 版本的核心板。核心板版本详见硬件上的丝印。

2.Firefly Linux 开发指南

Firefly Linux 开发指南

3. Firefly Debian 使用手册

3.1. 固件下载

资源下载页面下载Debian10固件。

3.2. 系统介绍

Debian10 系统内置资源:

  1. 系统没有内置 rockchip 配套的 IPC 应用。也没有内置虹软 ArcSoft Facial_Gate 和 UVC 的 demo 示例应用。如果需要使用上述配套资源,请在资源下载页面下载对应的 buildroot 固件。

  2. 系统内置了 rockchip npu 的库文件和虹软 ArcSoft 人脸识别算法的库文件。并且在系统 /home/firefly/ 目录内置了配套的 rkmedia 开发实例 demo 。帮助用户快速上手开发产品应用。

3.2.1. 软件包

以下软件包已默认安装到 Debian 系统,使用 apt install 安装软件的时候注意不要覆盖掉系统的软件包。

3.2.2. 视频硬件编解码支持

RV1126 集成的 VPU 具有优秀的视频编解码能力, MPP 是 Rockchip 为 VPU 提供的一套视频编解码的 api , 并且基于 mpp 。 Rockchip 提供了一套 gstreamer 的编解码插件。用户可以根据自己的需求,基于 gstreamer 来做视频编解码的应用,或者直接调用 mpp ,来实现硬件的编解码加速。

通过以下两种方式,验证和开发视频编解码相关应用。

一、Gstreamer

  • 默认安装 gstreamer1.0

#测试硬件 H264 解码。
gst-launch-1.0 filesrc location="/home/firefly/test.mp4" ! qtdemux ! h264parse ! mppvideodec ! kmssink

#测试硬件 H264 编码。
gst-launch-1.0 filesrc location=/home/firefly/video-640x360.yuv ! rawvideoparse use-sink-caps=false format=GST_VIDEO_FORMAT_I420 width=640 height=360 ! video/x-raw,width=640,height=360 ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=/home/firefly/yuv2h264.mp4

用户可以参照这两个脚本,配置自己的 gstreamer 应用。

二、MPP

  • Debian 系统下, mpp 相关 deb 包都已经安装到系统中。

更多相关资料,可参考linux-sdk/docs/Linux/Multimedia下的相关文档

3.2.3. 源码编译

3.2.3.1. RKNN_SSD_DEMO

  • NPU 已经内置安装到 Debian 系统。测试 NPU 如下: 测试 demo 为 rknn_ssd_demo 。源码路径为 /home/firefly/rknn_ssd_demo。以下操作均在 RV1126 端执行:

  • # 进入到 rknn_ssd_demo 目录
    cd /home/firefly/rknn_ssd_demo
    
    #编译
    cmake ./
    make
    
    #执行程序
    sudo ./rknn_ssd_demo model/ssd_inception_v2_rv1109_rv1126.rknn model/road.bmp
    
    #效果如下:
    root@firefly:/home/firefly/rknn_ssd_demo# sudo ./rknn_ssd_demo model/ssd_inception_v2_rv1109_rv1126.rknn model/road.bmp 
    Loading model ...
    model input num: 1, output num: 2
    input tensors:
    index=0 name= n_dims=4 dims=[1 300 300 3] n_elems=270000 size=270000 fmt=0 type=3 qnt_type=2 fl=127 zp=127 scale=0.007843
    output tensors:
    index=0 name= n_dims=4 dims=[1 1917 1 4] n_elems=7668 size=7668 fmt=0 type=3 qnt_type=2 fl=-76 zp=180 scale=0.089482
    index=1 name= n_dims=3 dims=[0 1 1917 91] n_elems=174447 size=174447 fmt=0 type=3 qnt_type=2 fl=-66 zp=190 scale=0.137463
    rknn_run
    loadLabelName
    ssd - loadLabelName ./model/coco_labels_list.txt
    loadBoxPriors
    person @ (13 125 58 212) 0.984076
    bicycle @ (171 165 278 234) 0.972723
    person @ (110 119 152 197) 0.968828
    person @ (206 113 256 216) 0.964399
    car @ (146 133 217 170) 0.959365
    person @ (83 134 92 158) 0.634101
    person @ (49 133 58 156) 0.601661
    person @ (96 134 105 162) 0.465688
    

    3.2.3.2. RKMedia

    • RKMedia 已经适配并内置到 Debian 系统。默认不支持 librtsp 库。

    • 默认不支持以下 4 个 demo,所以在 rkmedia/example/CMakeLists.txt注释以下 4 个 demo 的编译配置

    rkmedia_vi_venc_rtsp_test
    rkmedia_rga_crop_venc_test
    rkmedia_vi_rockx_venc_rtsp_test
    rkmedia_vi_rknn_venc_rtsp_test
    
    • 源码路径为 /home/firefly/rkmedia。以下操作均在 RV1126 端执行:

    # 进入到 rkmedia 目录
    cd /home/firefly/rkmedia
    
    # cmake 配置
    cmake ./   -DCMAKE_COLOR_MAKEFILE=OFF -DBUILD_DOC=OFF -DBUILD_DOCS=OFF -DBUILD_EXAMPLE=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TEST=OFF -DBUILD_TESTS=OFF -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=ON  -DWARNINGS_AS_ERRORS=ON -DUSE_RKAIQ=ON  -DRKMPP=ON -DRKMPP_LIB_NAME=rockchip_mpp -DRKMPP_ENCODER=ON -DRKMPP_ENCODER_OSD=ON -DRKMPP_DECODER=ON   -DAUDIO_ENCODER=ON -DAUDIO_DECODER=ON -DALSA_PLAYBACK=ON -DALSA_CAPTURE=ON -DAUDIO_ALGORITHM=ON -DV4L2_CAPTURE=ON  -DRKRGA=ON -DRKGUARD=ON -DRKNN=ON  -DROCKFACE=OFF -DFACE_RECOGNIZE=OFF -DROCKX=ON   -DDRM_DISPLAY=ON -DLIVE555=ON   -DLIVE555_SERVER=ON -DLIVE555_SERVER_H264=ON -DLIVE555_SERVER_H265=ON -DMOVE_DETECTION=ON -DOCCLUSION_DETECTION=ON  -DCOMPILES_EXAMPLES=ON -DCONFIG_OEM=1 -DCOMPILES_MINIMEDIA=ON -DRKAUDIO=ON
    
    # 编译
    make -j4
    
    # 安装
    make install
    

    3.2.3.3. FIREFLY_FFMPEG_RTSP_DEMO

    • 由于 Debian10 不支持 librtsp.a 库。在此使用 ffmpeg 推流的方式替代 rkmedia 推流接口进行数据推流。源码目录在 /home/firefly/firefly_ffmpeg_rtsp_demo。具体使用请参照目录下的 /home/firefly/firefly_ffmpeg_rtsp_demo/README.md 文件

    # 切换到 firefly_ffmpeg_rtsp_demo 目录
    cd /home/firefly/firefly_ffmpeg_rtsp_demo
    
    # 编译
    make
    
    # 后台运行服务器
    /usr/share/rtsp_server/armhf/EasyDarwin-linux-8.1.0-21102107/easydarwin &
    
    # 运行
    ./firefly_ffmpeg_rtsp_demo_test rtsp://xxx.xxx.xxx.xxx # Please replace your camera url address, Default H264 1080p 25fps
    
    • PC 预览推流画面

    
    

    3.2.3.4. FIREFLY_RKMEDIA_DEMO

# 进入到 firefly_rkmedia_demo 目录
cd /home/firefly/firefly_rkmedia_demo

# cmake 配置
cmake ./ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON  -DUSE_RKAIQ=ON -DDRM_DISPLAY=ON -DRKRGA=ON -DRKMPP=ON -DRKMPP_LIB_NAME=rockchip_mpp -DV4L2_CAPTURE=ON

# 编译
make -j4

# 安装
make install

3.3. 虹软人脸算法使用

如需使用虹软人脸识别算法,则需要指定虹软算法库和 librknn_api.so 库文件编译。请参照以下 /home/firefly/firefly_rkmedia_demo/CMakeLists.txt 配置虹软算法链接库。

3.4. 分区介绍

如果自己定制 Debian10 系统可以阅读此章节修改分区后进行升级。

修改固件目录下的分区表parameter.txt,根据需求修改rootfs分区大小。默认为大小为 3G 。PS:因为 Debian10 下没有跑应用,不需要media分区所以删掉了。

CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00010000@0x00008000(boot),0x00010000@0x00018000(recovery),0x00010000@0x00028000(backup),0x00600000@0x00038000(rootfs),0x00060000@0x00638000(oem),-@0x00698000(userdata:grow)

分区表格式:分区大小@所在地址(分区名)。最后的-@所在地址(分区名:grow)的 - 代表将剩余的内存大小拓展该分区,该写法只能放在 CMDLINE 最后。 其中大小和地址都是以块为单位( 1 块 = 512byte),换算成 MByte 可以用以下公式:

3.5. 系统导出

3.6. 恢复出厂设置

4. 快速使用

本章讲述讲述CORE-1126-JD4/CORE-1109-JD4配套官方底板的使用方法,不包含具体应用开发。

4.1. 上电开机

设备出厂默认自带 AI-IPC 场景固件。

  1. 接入DC 12V电源,或者POE供电。

  2. 开机后以太网旁边两个 LED 灯会常亮。

  3. 设备接入网线,确保和调试使用的 windows 电脑处于同一局域网下。要求电脑和 1126 板子是同一个网段。

  4. windows 下载 RK_IPCamera_Tool-Vx.x.zip,解压运行软件。

_images/DEBUG.jpg

5. RKMedia

5.1. 模块介绍

RKMedia 是对 RV1126/RV1109 内所有媒体资源调用进行了整合封装的一套 API 接口,它可以大大降低刚接触 RV1126/RV1109 芯片平台用户的开发成本,以少量代码就可以很快速、简单地调用 Soc 上所有媒体资源。同时 RKMedia 还提供了媒体资源以外的硬件资源联合调用 DEMO,如:RKAIQ、RKNN、RTSP 等等。RKMedia 的核心思想是把各个硬件资源独立成模块,模块开放出输入和输出端通过绑定的方式控制流从某个模块流出并且流入另外一个模块。这里会对每个模块进行相关介绍。

_images/rkmedia.png

5.1.1. 视频

5.1.1.1. VI

5.1.1.2. VP

5.1.1.3. VDEC

5.1.1.4. RGA

 5.1.1.5. VO

5.1.1.6. VENC


5.1.1.7. 通道绑定

5.1.1.8. 通道数据发送与获取

5.1.1.9. RTSP 拉流与推流

注:配置好结构体之后需要创建的线程个数要匹配推送的 RTSP 数据流的个数。

5.1.1.10. 通道析构顺序

需要特别注意的是 rkmedia 对模块的析构顺序有特殊的要求:数据流管道中后级模块要先于前级模块销毁。比如:

5.1.2. 音频

5.1.2.2. AO

5.1.2.3. AENC

  • 音频编码

  • 相关编码协议属性结构体: stAencMP3/stAencMP2/stAencG711A/stAencG711U/stAencG726


5.1.2.4. ADEC

5.1.2.5. VQE 声音质量增强

AI_TALKVQE_CONFIG_S										#音频输入声音质量增强(Talk)配置信息结构体
AI_RECORDVQE_CONFIG_S									#音频输入声音质量增强(Record)配置信息结构体

AI_TALKVQE_CONFIG_S stAiVqeTalkAttr;
memset(&stAiVqeTalkAttr, 0, sizeof(AI_TALKVQE_CONFIG_S));
stAiVqeTalkAttr.s32WorkSampleRate							#工作采样频率
stAiVqeTalkAttr.s32FrameSample								#采样点数目
stAiVqeTalkAttr.aParamFilePath								#参数文件路径
stAiVqeTalkAttr.u32OpenMask =
    AI_TALKVQE_MASK_AEC | AI_TALKVQE_MASK_ANR | AI_TALKVQE_MASK_AGC;	# Talk Vqe 的各功能使能的 Mask 值。目前支持 AI_TALKVQE_MASK_AEC、AI_TALKVQE_MASK_ANR、AI_TALKVQE_MASK_AGC

AI_RECORDVQE_CONFIG_S stAiVqeRecordAttr;
memset(&stAiVqeTalkAttr, 0, sizeof(AI_TALKVQE_CONFIG_S));
stAiVqeRecordAttr.s32WorkSampleRate							#工作采样频率
stAiVqeRecordAttr.s32FrameSample								#采样点数目
stAiVqeRecordAttr.stAnrConfig.fPostAddGain						# ANR 的 post-gain
stAiVqeRecordAttr.stAnrConfig.fGmin								# ANR 频谱增益底限,单位为 dB,默认值为 -30dB
stAiVqeRecordAttr.stAnrConfig.fNoiseFactor						# ANR 噪音抑制系数,默认值为 0.98
stAiVqeRecordAttr.u32OpenMask = AI_RECORDVQE_MASK_ANR;	# Record Vqe 的各功能使能的 Mask 值。目前支持 AI_RECORDVQE_MASK_ANR

5.2. 具体示例

5.2.1. 视频

_images/vi_get_frame.png

5.2.1.2. VI->UVC

  • 该开发流程对应的 DEMO 示例为 firefly_rkmedia_vi_uvc_test.c

  • 说明:将设备虚拟成网卡与 UVC 复合设备。设备摄像头输入并使用 rknn 模型处理图像数据。图像数据通过 UVC 传到 host 上位机。rknn 输出数据结果通过虚拟网卡传输到 host 上位机。host 上位机使用 OpenCV 开发,可应用于 Windows/Linux/macOS 等平台。该 demo 只适用于 sdk-ai 。sdk-ai 源码获取链接


_images/vi_uvc.png

5.2.1.3. VI->RKNN->VENC->RTSP

# 路径需要有相关文件
./rkmedia_vi_rknn_venc_rtsp_test -a /oem/etc/iqfiles/ -c /oem/usr/share/rtsp-nn.cfg -b /oem/usr/share/rknn_model/box_priors.txt -l /oem/usr/share/rknn_model/coco_labels_list.txt -p /oem/usr/share/rknn_model/ssd_inception_v2_rv1109_rv1126.rknn

# PC 端使用 VLC 播放器预览 RTSP 推流命令为
vlc rtsp://168.168.101.208:554/live/main_stream
#注: 168.168.101.208 为开发板的 IP 地址,根据实际情况进行调整
  • DEMO 效果截图如下图所示:

_images/vi_rknn_venc_rtsp.png

5.2.1.4. RTSPGet->VDEC(Multi)->VO

  • 快速使用:

# RTSP 取流 2 个网络摄像头,每个摄像头取流 2 次,并输出显示到显示屏
./rkmedia_rtspget_multi_test rtsp://admin:firefly123@168.168.100.94:554/av_stream rtsp://admin:firefly123@168.168.100.94:554/av_stream rtsp://admin:firefly123@168.168.100.97:554/av_stream rtsp://admin:firefly123@168.168.100.97:554/av_stream
  • DEMO 效果截图如下图所示:

_images/rtsp_multi_vo.jpg

5.2.1.5. RTSPGet->VDEC->RKNN->VENC->RTSPPush

#运行该示例需要有库文件 libffrtsp.so
./rkmedia_rtspget_vdec_rknn_venc_rtsp_test -c /usr/share/ffrtsp-nn.cfg -p /usr/share/rknn_model/ssd_inception_v2_rv1109_rv1126.rknn -l /usr/share/rknn_model/coco_labels_list.txt -b /usr/share/rknn_model/box_priors.txt

# ffrtsp-nn.cfg 两个网络摄像头的配置分别为
video_type=6 video_fps=25 width=1920 height=1080 image_type=4 port=8554 video_url=rtsp://admin:firefly123@168.168.100.94:554/av_stream
video_type=6 video_fps=25 width=1920 height=1080 image_type=4 port=8555 video_url=rtsp://admin:firefly123@168.168.100.97:554/av_stream

#则 PC 端使用 VLC 预览 RTSP 推流画面命令为
vlc rtsp://168.168.101.208:8554/H264_stream_0
vlc rtsp://168.168.101.208:8555/H264_stream_1
#注:168.168.101.208 为开发板的 IP ,根据实际情况进行调整
  • DEMO 效果截图如下图所示:

_images/rtspget_vdec_rknn_venc_rtsppush.png

5.2.2. 音频

6. 技术案例

CORE-1126-JD4/CORE-1109-JD4 金手指保留了 Soc 的大部分接口,用户可以根据自身需要自己制作底板来满足各种应用场景。下面 介绍一下配到官方 MB-1126-JD4 底板下的几种应用场景。

6.1. AI 网络摄像头

底板拥有以太网接口MIPI-CSIPOE 等硬件基础,可以实现 AI 智能网络摄像头。在设备上可以实现 AI 识别和 RTSP 推流, 在 WEB 端或者 RTSP 播放器就可以查看到预览画面。

_images/web.png

6.2. 人脸识别闸机

设备预留了两组 MIPI-CSI 接口,可以适配 RGB & IR 双目摄像头来满足人脸识别闸机的需求。

_images/facial_gate.jpg

人脸识别闸机 Web 管理界面

 

_images/facial_gate_web.png

6.3. 集群边缘计算

CORE-1126-JD4/CORE-1109-JD4 除了可以适配 MB-1126-JD4 单独使用外,还适配了官方的 CS-R1/CS-R2 系列集群服务器。关于 集群服务器相关 WIKI(CS-R1/CS-R2)。

  • CS-R1 _images/CS-R1.png

  • CS-R2 _images/CS-R2.png

接口使用

1. ADC 使用

1.1. 简介

Core-1126-JD4 开发板上的 AD 接口有两种,分别为:温度传感器 (Temperature Sensor)、逐次逼近ADC (Successive Approximation Register)。其中:

  • TS-ADC(Temperature Sensor):支持 2 通道。

  • SAR-ADC(Successive Approximation Register):支持六通道单端10位的SAR-ADC,最大转换速率为1MSPS,采用20MHz的A/D转换器时钟。

内核采用工业 I/O 子系统来控制 ADC,该子系统主要为 AD 转换或者 DA 转换的传感器设计。 下面以 SAR-ADC 为例子,介绍 ADC 的基本配置方法。

1.2. DTS配置

1.2.1. 配置DTS节点

1.3. 驱动说明

1.3.1. 获取 AD 通道

1.4. 接口说明

1.4.1. 获取所有 ADC 值

有个便捷的方法可以查询到每个 SARADC 的值:

1.5. FAQs

1.5.1. 为何按上面的步骤申请 SARADC,会出现申请报错的情况?

驱动需要获取ADC通道来使用时,需要对驱动的加载时间进行控制,必须要在saradc初始化之后。saradc是使用module_platform_driver()进行平台设备驱动注册,最终调用的是module_init()。所以用户的驱动加载函数只需使用比module_init()优先级低的,例如:late_initcall(),就能保证驱动的加载的时间比saradc初始化时间晚,可避免出错。

2. Camera 使用

  • 接口效果图

_images/usage_camera_mipicsi.jpg

  • 注:摄像头上的红线和黑线用作切换滤光片使用。

  • 命令切换滤光片


2.1. MIPI CSI用法

  • MIPI-CSI摄像头需要购买转接板

  • v4l2接口操作MIPI-CSI摄像头


3. Display 使用

  • 底板与 MIPI 屏幕的硬件连接方式如图所示:

_images/mipi_screen.jpg

4. Ethernet 使用

4.1. dts 配置

4.1.1. 公共的配置

4.1.2. 查看IP地址

4.1.3. 连通性测试

5. GPIO 使用

5.1. 简介

GPIO,全称 General-Purpose Input/Output(通用输入输出),是一种软件运行期间能够动态配置和控制的通用引脚。 所有的 GPIO 在上电后的初始状态都是输入模式,可以通过软件设为上拉或下拉,也可以设置为中断脚,驱动强度都是可编程的,其核心是填充 GPIO bank 的方法和参数,并调用 gpiochip_add 注册到内核中。

5.2. GPIO引脚计算

Core-1126-JD4 有 5 组 GPIO bank:GPIO0~GPIO4,每组又以 A0~A7, B0~B7, C0~C7, D0~D7 作为编号区分,常用以下公式计算引脚:

5.3. 输入输出

5.3.1. 应用层设置

在上述 export 导出引脚后,可以直接设置 gpio 为输入模式或者输出模式

5.3.2. 驱动层设置

5.4. 中断

IRQ_TYPE_EDGE_RISING 表示中断由上升沿触发,当该引脚接收到上升沿信号时可以触发中断函数。 这里还可以配置成如下:

5.5. 复用

5.6. 调试方法

5.6.1. IO指令

GPIO 调试有一个很好用的工具,那就是 IO 指令,Core-1126-JD4 的 Linux 系统默认已经内置了 IO 指令,使用 IO 指令可以实时读取或写入每个 IO 口的状态,这里简单介绍 IO 指令的使用。首先查看 IO 指令的帮助:

使用示例:

  • 查看GPIO0_C2引脚的复用情况

  • 从主控的datasheet查到GPIO0对应寄存器基地址为:0xFE020000

  • 从主控的datasheet查到GPIO0D_IOMUX的偏移量为:0x0010

  • GPIO0_C2的iomux寄存器地址为:基址(Operational Base) 偏移量(offset)=0xFE020000 0x0010=0xFE020010

  • 用以下指令查看GPIO1_D0的复用情况:


5.6.2. GPIO 调试接口

Debugfs 文件系统目的是为开发人员提供更多内核数据,方便调试。 这里 GPIO 的调试也可以用 Debugfs 文件系统,获得更多的内核信息。GPIO 在 Debugfs 文件系统中的接口为 /sys/kernel/debug/gpio,可以这样读取该接口的信息:

从读取到的信息中可以知道,内核把 GPIO 当前的状态都列出来了,以 GPIO1 组为例,gpio-55(GPIO1_C7) 输出低电平 (out lo)。

5.6.3. 查看 pinmux-pins

使用命令

5.7. FAQs

5.7.1. Q1: 如何将 PIN 的 MUX 值切换为一般的 GPIO?

A1: 当使用 GPIO request 时候,会将该 PIN 的 MUX 值强制切换为 GPIO,所以使用该 PIN 脚为 GPIO 功能的时候确保该 PIN 脚没有被其他模块所使用。

5.7.2. Q2: 为什么我用 IO 指令读出来的值都是 0x00000000?

A2: 如果用 IO 命令读某个 GPIO 的寄存器,读出来的值异常,如 0x00000000 或 0xffffffff 等,请确认该 GPIO 的 CLK 是不是被关了,GPIO 的 CLK 是由 CRU 控制,可以通过读取 datasheet 下面 CRU_CLKGATE_CON* 寄存器来查到 CLK 是否开启,如果没有开启可以用 io 命令设置对应的寄存器,从而打开对应的 CLK,打开 CLK 之后应该就可以读到正确的寄存器值了。

5.7.3. Q3: 测量到 PIN 脚的电压不对应该怎么查?

A3: 测量该 PIN 脚的电压不对时,如果排除了外部因素,可以确认下该 PIN 所在的 IO 电压源是否正确,以及 IO-Domain 配置是否正确。

5.7.4. Q4: gpio_set_value() 与 gpio_direction_output() 有什么区别?

A4: 如果使用该 GPIO 时,不会动态的切换输入输出,建议在开始时就设置好 GPIO 输出方向,后面拉高拉低时使用 gpio_set_value() 接口,而不建议使用 gpio_direction_output(), 因为 gpio_direction_output 接口里面有 mutex 锁,对中断上下文调用会有错误异常,且相比 gpio_set_value,gpio_direction_output 所做事情更多,浪费。

6. LED 使用

6.1. 前言

LED Pin name Pin number
Up GPIO0_C0 16
Down GPIO0_A4 4

可通过使用 LED 设备子系统或者直接操作 GPIO 控制该 LED。

6.2. 以设备的方式控制 LED

6.3. 使用 trigger 方式控制 LED

Trigger 包含多种方式可以控制 LED,这里就用两个例子来说明。

6.3.1. Complex trigger LED

7. RTC 使用

7.1. 简介

Core-1126-JD4开发板采用 RK808 作为RTC(Real Time Clock)。RK809 集成了晶体振荡器缓冲器和实时时钟 (RTC)。缓冲器与外部 32.768kHz 晶体振荡器配合使用。借助 RTC 功能,PMIC 可提供秒/分/时/日/月/年信息、闹钟唤醒以及时间校准。RK817 提供一路 32.768kHz 时钟,具有开漏输出,默认开启并通过 I2C 接口进行控制。

7.2. RTC驱动

 

7.4. FAQs

7.4.1. Q1: 开发板上电后时间不同步?

A1: 检查一下 RTC 电池是否正确接入。

8. UART 使用

8.1. 简介

AIO-1126-JD4 支持 UART1、UART3、UART4接口

8.2. DTS配置

8.3. 收发验证

用户可以根据不同的接口使用不同的主机的 USB 转串口适配器向开发板的串口收发数据,例如 UART1 的调试步骤如下:

(1) 开发板发送, 主机接收

开发板调试串口终端即可接收到字符串 “firefly UART1 test…”

9. Watchdog 使用

9.1. 简介

看门狗(watchdog)实际是一个定时器,启动之后会开始计时。系统或者软件需要在规定时间内与看门狗通信(俗称喂狗)重置计时,如此反复下去,以此来确定系统和软件正常运行。

如果规定时间内没有喂狗,看门狗超时,说明系统或应用陷入循环、卡死,此时看门狗会发出复位信号让主控复位,脱离卡死。

本章节主要介绍 Core-1126-JD4 开发板内部看门狗的使用。

9.2. DTS配置

9.3. 使用

watchdog 默认是关闭的,需按上述说明在 DTS 文件中打开相关节点方能使用。

demo说明:

1、内部看门狗在使用 open 函数打开后会立刻开始计时。

2、关于超时时间:用户可以用 ioctl 来设置超时时间和获取超时时间。当用户没有设置超时时间时,驱动会应用默认请求的超时时间为 30 s。需要说明的是驱动最终设置的超时时间并不一定是应用层传输的时间或者驱动一开始设置的默认时间。驱动函数里有一个超时时间的列表,该列表中存放了 16 个超时时间(前 9 个是 0)。驱动会在超时时间列表中找到一个合适的时间作为最终 watchdog 设置的超时时间。

以下为超时时间的详细列表:

请求的超时时间 通过 ioctl 获取的超时时间 watchdog最终设置的超时时间
timeout_request > 89 timeout_get = timeout_request timeout_set = 89
44 < timeout_request <= 89 timeout_get = 89 timeout_set = 89
22 < timeout_request <= 44 timeout_get = 44 timeout_set = 44
11 < timeout_request <= 22 timeout_get = 22 timeout_set = 22
5 < timeout_request <= 11 timeout_get = 11 timeout_set = 11
2< timeout_request <= 5 timeout_get = 5 timeout_set = 5
timeout_request = 2 timeout_get = 2 timeout_set = 2
timeout_request = 1 timeout_get = 1 timeout_set = 1

参考文档:SDK/docs/Common/WATCHDOG/

10. WIFI 使用

11. 4G 模组使用

查看 EC20 4G 模组套件是否已经加载

12. Sound Card 使用

12.1. EarPhone && Speak

EarPhone 和 Speak 均采用双声道接口

使用 aplay 命令播放 wav 格式音频

13. POE 使用

_images/POE-interface.png

配件

1. 摄像头模组

Firefly 支持的摄像头如下:

2. 显示屏模组

Firefly 支持的显示屏如下:

3. 通信模组

Firefly 支持的通信模组如下:

其他

1. NPU 使用

1.2. RKNN-Toolkit

1.2.1. 工具介绍

1.2.2. 环境依赖

PS

  1. Windows 只提供Python3.6的安装包。

  2. MacOS 提供Python3.6和Python3.7的安装包。

  3. ARM64 平台(安装 Debian 9 或 10 操作系统)提供Python3.5(Debain 9)和 Python3.7 (Debian10)的安装包。

  4. 除 MacOS 平台外,其他平台的 scipy 依赖为>=1.1.0。

1.2.3. 快速上手

1.2.3.1. PC 主机

1.2.3.2. RV1126 主机

点击:资源下载下载 rknn-toolkit-lite.rar 并拷贝到 rv1126 系统上解压。

1.2.4. 开发文档

当你安装好RKNN-Toolkit并且通过 demo 初步了解和验证了开发流程后,你可以查看详细的 RKNN 开发 API 去完成自己的开发了。

常见问题解答

1. FAQs

1.1. SDK 版本

1.2. NPU 版本

1.3. AI 算法

1.3.1. ROCKX 算法

2. Linux 设备树 (DTS) 指南

有时候需要配置设备树来调整板子功能,比如需要对外设进行适配与修改等。这篇教程会告诉你如何在 SDK 中寻找到板子对应的设备树文件以及有关修改的注意事项。

2.1. 找到设备树

首先需要学习如何编译 Linux SDK,之后你应该可以理解,所有的编译配置信息记录在 SDK/device/rockchip/rv1126_rv1109/ 下的众多 mk 文件里。

2.2. 修改设备树

2.3. 编译烧录

烧录方法:

  1. 根据固件烧录中烧写 kernel 分区的方法烧录 zboot.img 。

参考资料

1. 硬件信息

1.1. 硬件资源

1.1.1. CORE-1126-JD4

  • CPU四核 ARM Cortex-A7,RISC-V MCU

  • NPU2.0Tops, support INT8/ INT16

  • DDRDDR4 1GB/2GB

  • FlasheMMC 8GB/16GB、SD Card 接口

  • 显示MIPI-DSI 接口,1080P@60fps

  • Camera双 MIPI-CSI 接口

  • ISP1400万 ISP 2.0 with 3 帧 HDR(Line-based/Frame-based/DCG)

  • 硬件编码支持 4K H.264/H.265 编码
    -3840 x 2160@30 fps 720p@30 fps encoding

  • 硬件解码支持 4K H.264/H.265 解码
    -3840 x 2160@30 encoding 3840 x 2160@30 fps decoding

  • RTC外部 RTC

  • 网络千兆以太网口、百兆 USB 转以太网口、无线 Wifi、4G 模块接口

  • 声卡RK809 集成音频解码器

  • 外围接口Debug 串口、USB 接口、耳机接口、模拟麦克风接口、Speaker 接口

1.1.2. CORE-1109-JD4

  • CPU双核 ARM Cortex-A7,RISC-V MCU

  • NPU1.2Tops, support INT8/ INT16

  • DDRDDR3 1GB/2GB

  • FlasheMMC 8GB/16GB、SD Card 接口

  • 显示MIPI-DSI 接口,1080P@60fps

  • Camera双 MIPI-CSI 接口

  • ISP500万 ISP 2.0 with 3 帧 HDR(Line-based/Frame-based/DCG)

  • 硬件编码支持 H.264/H.265 编码
    -2688 x 1520@30 fps 1280 x 720@30 fps
    -3072 x 1728@30 fps 1280 x 720@30 fps
    -2688 x 1944@30 fps 1280 x 720@30fps

  • 硬件解码支持 5M H.264/H.265 解码

  • RTC外部 RTC

  • 网络千兆以太网口、百兆 USB 转以太网口、无线 Wifi、4G 模块接口

  • 声卡RK809 集成音频解码器

  • 外围接口Debug 串口、USB 接口、耳机接口、模拟麦克风接口、Speaker 接口

1.2. 外观尺寸

  • 外观尺寸图

_images/size.png

1.3. 外围接口

_images/interface-0.png

_images/interface-2.png

资源下载

资料下载

电话咨询
微信咨询
留言