首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
  • GM-3568JHF

    • 一、简介

      • GM-3568JHF 简介
    • 二、快速开始

      • 00 前言
      • 01 环境搭建
      • 02 编译说明
      • 03 烧录指南
      • 04 调试工具
      • 05 软件更新
      • 06 查看信息
      • 07 测试命令
      • 08 应用编译
      • 09 源码获取
    • 三、外设与接口

      • 01 USB
      • 02 显示与触摸
      • 03 以太网
      • 04 WIFI
      • 05 蓝牙
      • 06 TF-Card
      • 07 音频
      • 08 串口
      • 09 CAN
      • 10 RTC
    • 四、应用开发

      • 01 UART读写案例
      • 02 按键检测案例
      • 03 LED灯闪烁案例
      • 04 MIPI屏幕检测案例
      • 05 读取 USB 设备信息案例
      • 06 FAN 检测案例
      • 07 FPGA FSPI 通信案例
      • 08 FPGA DMA 读写案例
      • 09 GPS调试案例
      • 10 以太网测试案例
      • 11 RS485读写案例
      • 12 FPGA IIC 读写案例
      • 13 PN532 NFC读卡案例
      • 14 TF卡读写案例
    • 五、QT开发

      • 01 ARM64交叉编译器环境搭建
      • 02 QT 程序加入开机自启服务
    • 六、RKNN_NPU开发

      • 01 RK3568 NPU 概述
      • 开发环境搭建
    • 七、FPGA开发

      • ARM与FPGA通讯
      • FPGA开发手册
    • 八、其他

      • 01 根目录文件系统的修改
      • 02 系统自启服务
    • 九、资料下载

      • 资料下载

开发环境搭建

2.1 板端环境准备

系统要求

支持的操作系统

  • Ubuntu 20.04 LTS (推荐)
  • Ubuntu 22.04 LTS
  • Debian 11/12
  • Buildroot (定制系统)

硬件要求

  • 开发板: GM-3568JHF
  • 内存: 最低2GB RAM (推荐4GB+)
  • 存储: 最低16GB存储空间
  • 网络: 以太网或WiFi连接

NPU驱动安装

检查NPU硬件

# 检查NPU设备节点
ls -la /dev/rknpu*

# 查看NPU设备信息
cat /proc/device-tree/npu*/compatible

# 检查NPU在设备树中的状态
cat /proc/device-tree/npu*/status

安装NPU驱动

# 检查内核模块
lsmod | grep rknpu

# 如果没有加载,手动加载驱动
sudo modprobe rknpu

# 设置开机自动加载
echo "rknpu" | sudo tee -a /etc/modules

# 验证驱动加载成功
dmesg | grep -i npu

驱动配置文件

# NPU设备权限配置
sudo nano /etc/udev/rules.d/99-rknpu.rules

# 添加以下内容
SUBSYSTEM=="rknpu", GROUP="video", MODE="0666"

# 重新加载udev规则
sudo udevadm control --reload-rules
sudo udevadm trigger

RKNN Runtime 安装

方法一:使用预编译包

# 下载RKNN Runtime包
wget https://github.com/rockchip-linux/rknpu2/releases/download/v1.4.0/rknpu2_1.4.0_aarch64.tar.gz

# 解压安装包
tar -xzf rknpu2_1.4.0_aarch64.tar.gz
cd rknpu2_1.4.0_aarch64

# 安装运行时库
sudo cp runtime/Linux/librknn_api/aarch64/librknnrt.so /usr/lib/
sudo ldconfig

# 安装Python绑定
cd runtime/Linux/rknn_server/aarch64/usr/bin/
sudo cp rknn_server /usr/bin/
sudo chmod +x /usr/bin/rknn_server

# 安装Python API
pip3 install runtime/Linux/rknn_toolkit_lite2/packages/rknn_toolkit_lite2-1.4.0-cp38-cp38-linux_aarch64.whl

方法二:从源码编译

# 克隆源码仓库
git clone https://github.com/rockchip-linux/rknpu2.git
cd rknpu2

# 编译运行时库
cd runtime/Linux/librknn_api
mkdir build && cd build
cmake ..
make -j4

# 安装库文件
sudo make install
sudo ldconfig

Python环境配置

安装Python依赖

# 更新包管理器
sudo apt update

# 安装Python3和pip
sudo apt install python3 python3-pip python3-dev

# 安装必要的系统库
sudo apt install libopencv-dev python3-opencv
sudo apt install libnumpy-dev python3-numpy
sudo apt install python3-pillow

# 安装RKNN相关Python包
pip3 install rknn-toolkit-lite2
pip3 install opencv-python
pip3 install numpy
pip3 install pillow

验证Python环境

#!/usr/bin/env python3
# test_rknn_env.py

import sys
print(f"Python版本: {sys.version}")

try:
    import numpy as np
    print(f"NumPy版本: {np.__version__}")
except ImportError:
    print("NumPy未安装")

try:
    import cv2
    print(f"OpenCV版本: {cv2.__version__}")
except ImportError:
    print("OpenCV未安装")

try:
    from rknnlite.api import RKNNLite
    print("RKNN Lite API导入成功")
except ImportError:
    print("RKNN Lite API导入失败")

# 测试NPU设备
try:
    rknn = RKNNLite()
    print("RKNN Lite对象创建成功")
except Exception as e:
    print(f"RKNN Lite对象创建失败: {e}")
# 运行测试脚本
python3 test_rknn_env.py

系统优化配置

内存和性能优化

# 增加swap空间 (如果内存不足)
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 永久启用swap
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 调整内存参数
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf

NPU频率和电源管理

# 查看NPU频率
cat /sys/class/devfreq/fdab0000.npu/cur_freq

# 设置NPU性能模式
echo performance | sudo tee /sys/class/devfreq/fdab0000.npu/governor

# 查看可用频率
cat /sys/class/devfreq/fdab0000.npu/available_frequencies

# 设置固定频率 (可选)
echo 600000000 | sudo tee /sys/class/devfreq/fdab0000.npu/userspace/set_freq

网络和远程开发配置

SSH服务配置

# 安装SSH服务
sudo apt install openssh-server

# 启动SSH服务
sudo systemctl enable ssh
sudo systemctl start ssh

# 配置SSH (可选)
sudo nano /etc/ssh/sshd_config

# 重启SSH服务
sudo systemctl restart ssh

文件传输工具

# 安装rsync
sudo apt install rsync

# 安装scp/sftp (通常已包含在openssh中)
# 使用示例:
# scp file.txt user@board_ip:/home/user/
# rsync -av local_dir/ user@board_ip:/remote_dir/

2.2 PC 端环境搭建

系统要求

支持的操作系统

  • Windows 10/11 (x64)
  • Ubuntu 18.04/20.04/22.04 (x64)
  • macOS 10.15+ (x64/ARM64)

硬件要求

  • CPU: Intel i5或AMD Ryzen 5以上
  • 内存: 最低8GB RAM (推荐16GB+)
  • 存储: 最低20GB可用空间
  • 网络: 稳定的互联网连接

Python环境安装

Windows环境

# 下载并安装Python 3.8-3.10 (推荐3.9)
# 从 https://www.python.org/downloads/ 下载

# 验证安装
python --version
pip --version

# 升级pip
python -m pip install --upgrade pip

# 安装虚拟环境工具
pip install virtualenv

# 创建虚拟环境
python -m venv rknn_env

# 激活虚拟环境
rknn_env\Scripts\activate

# 在虚拟环境中安装依赖
pip install rknn-toolkit2
pip install numpy opencv-python pillow matplotlib

Linux环境

# Ubuntu/Debian系统
sudo apt update
sudo apt install python3 python3-pip python3-venv

# 创建虚拟环境
python3 -m venv rknn_env

# 激活虚拟环境
source rknn_env/bin/activate

# 安装RKNN-Toolkit2
pip install rknn-toolkit2

# 安装其他依赖
pip install numpy opencv-python pillow matplotlib torch torchvision onnx

macOS环境

# 安装Homebrew (如果未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装Python
brew install python@3.9

# 创建虚拟环境
python3 -m venv rknn_env

# 激活虚拟环境
source rknn_env/bin/activate

# 安装依赖
pip install rknn-toolkit2
pip install numpy opencv-python pillow matplotlib

RKNN-Toolkit2 详细安装

安装最新版本

# 激活虚拟环境
source rknn_env/bin/activate  # Linux/macOS
# 或
rknn_env\Scripts\activate     # Windows

# 安装RKNN-Toolkit2
pip install rknn-toolkit2

# 验证安装
python -c "from rknn.api import RKNN; print('RKNN-Toolkit2安装成功')"

离线安装 (网络受限环境)

# 下载离线安装包
wget https://github.com/rockchip-linux/rknn-toolkit2/releases/download/v1.4.0/rknn_toolkit2-1.4.0+29bac7b4-cp39-cp39-linux_x86_64.whl

# 离线安装
pip install rknn_toolkit2-1.4.0+29bac7b4-cp39-cp39-linux_x86_64.whl

# 安装其他依赖
pip install numpy opencv-python pillow matplotlib

开发工具安装

代码编辑器

# Visual Studio Code (推荐)
# 下载地址: https://code.visualstudio.com/

# 安装有用的扩展
# - Python
# - Jupyter
# - Remote-SSH (远程开发)
# - GitLens

Jupyter Notebook

# 安装Jupyter
pip install jupyter notebook

# 启动Jupyter
jupyter notebook

# 或安装JupyterLab
pip install jupyterlab
jupyter lab

Git版本控制

# Windows: 下载Git for Windows
# Linux: sudo apt install git
# macOS: brew install git

# 配置Git
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

环境验证

创建测试脚本

#!/usr/bin/env python3
# pc_env_test.py

import sys
import platform

print("=== PC端RKNN开发环境检查 ===")
print(f"操作系统: {platform.system()} {platform.release()}")
print(f"Python版本: {sys.version}")
print(f"Python路径: {sys.executable}")

# 检查必要的包
packages = [
    'numpy', 'cv2', 'PIL', 'matplotlib', 
    'rknn', 'torch', 'onnx'
]

for package in packages:
    try:
        if package == 'cv2':
            import cv2
            print(f"✓ OpenCV: {cv2.__version__}")
        elif package == 'PIL':
            import PIL
            print(f"✓ Pillow: {PIL.__version__}")
        elif package == 'rknn':
            from rknn.api import RKNN
            print("✓ RKNN-Toolkit2: 导入成功")
        else:
            module = __import__(package)
            version = getattr(module, '__version__', '未知版本')
            print(f"✓ {package}: {version}")
    except ImportError:
        print(f"✗ {package}: 未安装")

# 测试RKNN基本功能
try:
    from rknn.api import RKNN
    rknn = RKNN(verbose=False)
    print("✓ RKNN对象创建成功")
    
    # 测试支持的平台
    platforms = ['rk3566', 'rk3568', 'rk3588']
    print(f"✓ 支持的目标平台: {platforms}")
    
except Exception as e:
    print(f"✗ RKNN测试失败: {e}")

print("\n=== 环境检查完成 ===")
# 运行测试脚本
python pc_env_test.py

网络连接配置

配置开发板连接

# connection_config.py
BOARD_CONFIG = {
    'ip': '192.168.1.100',  # 开发板IP地址
    'username': 'root',      # 用户名
    'password': 'root',      # 密码
    'ssh_port': 22,         # SSH端口
}

# SSH连接测试
import paramiko

def test_ssh_connection():
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(
            BOARD_CONFIG['ip'],
            port=BOARD_CONFIG['ssh_port'],
            username=BOARD_CONFIG['username'],
            password=BOARD_CONFIG['password'],
            timeout=10
        )
        
        stdin, stdout, stderr = ssh.exec_command('uname -a')
        result = stdout.read().decode()
        print(f"开发板连接成功: {result}")
        ssh.close()
        return True
    except Exception as e:
        print(f"开发板连接失败: {e}")
        return False

if __name__ == "__main__":
    test_ssh_connection()

项目目录结构

推荐的项目结构

rknn_project/
├── models/                 # 原始模型文件
│   ├── onnx/              # ONNX模型
│   ├── pytorch/           # PyTorch模型
│   └── tensorflow/        # TensorFlow模型
├── rknn_models/           # 转换后的RKNN模型
├── datasets/              # 数据集
│   ├── images/            # 测试图片
│   └── calibration/       # 校准数据
├── scripts/               # 脚本文件
│   ├── convert/           # 模型转换脚本
│   ├── test/              # 测试脚本
│   └── deploy/            # 部署脚本
├── src/                   # 源代码
│   ├── python/            # Python代码
│   └── cpp/               # C++代码
├── docs/                  # 文档
├── requirements.txt       # Python依赖
└── README.md             # 项目说明

创建项目模板

# 创建项目目录
mkdir rknn_project
cd rknn_project

# 创建子目录
mkdir -p models/{onnx,pytorch,tensorflow}
mkdir -p rknn_models
mkdir -p datasets/{images,calibration}
mkdir -p scripts/{convert,test,deploy}
mkdir -p src/{python,cpp}
mkdir docs

# 创建requirements.txt
cat > requirements.txt << EOF
rknn-toolkit2
numpy>=1.19.0
opencv-python>=4.5.0
pillow>=8.0.0
matplotlib>=3.3.0
torch>=1.8.0
torchvision>=0.9.0
onnx>=1.8.0
paramiko>=2.7.0
tqdm>=4.60.0
EOF

# 创建README.md
cat > README.md << EOF
# RKNN项目模板

## 环境要求
- Python 3.8+
- RKNN-Toolkit2

## 安装依赖
\`\`\`bash
pip install -r requirements.txt
\`\`\`

## 项目结构
- models/: 原始模型文件
- rknn_models/: 转换后的RKNN模型
- scripts/: 各种脚本
- src/: 源代码

## 使用说明
1. 将原始模型放入models/目录
2. 运行转换脚本生成RKNN模型
3. 使用测试脚本验证模型
4. 部署到开发板
EOF

常见问题解决

Python环境问题

# 问题1: pip安装速度慢
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rknn-toolkit2

# 问题2: 权限问题 (Linux/macOS)
pip install --user rknn-toolkit2

# 问题3: 版本冲突
pip install --upgrade --force-reinstall rknn-toolkit2

网络连接问题

# 问题1: SSH连接被拒绝
# 检查开发板SSH服务状态
sudo systemctl status ssh

# 问题2: 防火墙阻止连接
# 开发板端开放SSH端口
sudo ufw allow ssh

# 问题3: IP地址冲突
# 使用静态IP配置
sudo nano /etc/netplan/01-netcfg.yaml

RKNN工具问题

# 问题1: 导入RKNN失败
# 检查Python版本兼容性
python --version

# 问题2: 模型转换失败
# 检查模型格式和版本
# 更新到最新版本的RKNN-Toolkit2

# 问题3: 内存不足
# 增加虚拟内存或使用更小的batch size

环境搭建检查清单

PC端检查清单

  • [ ] Python 3.8+ 安装完成
  • [ ] 虚拟环境创建并激活
  • [ ] RKNN-Toolkit2 安装成功
  • [ ] 必要依赖包安装完成
  • [ ] 开发工具配置完成
  • [ ] 项目目录结构创建
  • [ ] 网络连接测试通过

板端检查清单

  • [ ] 操作系统正常运行
  • [ ] NPU驱动加载成功
  • [ ] RKNN Runtime 安装完成
  • [ ] Python环境配置完成
  • [ ] 系统性能优化完成
  • [ ] SSH服务正常运行
  • [ ] 网络连接稳定

连接测试清单

  • [ ] PC到开发板SSH连接正常
  • [ ] 文件传输功能正常
  • [ ] RKNN环境测试通过
  • [ ] 示例代码运行成功

完成以上环境搭建后,您就可以开始进行RKNN模型的开发和部署工作了。下一章将介绍如何运行官方的YOLOv5示例来验证环境配置的正确性。

在 GitHub 上编辑此页
上次更新:
贡献者: jxc
Prev
01 RK3568 NPU 概述