【智能硬件】RV1126 CE 板软件指导

 

目录

一、  RV1126 CE 板上的 Buildroot 和 Debian

二、 安装 Buildroot & Debian

2.1 从主机安装镜像 - pc

2.1.1 安装前提

2.1.2 安装概述

2.1.3 第一步。下载 Buildroot & Debian 镜像和 flash 下载工具

2.1.4 步骤二、在主机上安装瑞芯微闪存下载驱动

2.1.5 step 3. 让板子进入maskrom或者rockusb loader模式

 2.1.6 步骤四、在主机PC上启动rockchip flash下载工具

2.1.7 step 5. 刷入 buildroot & debian 镜像

3.构建Buildroot源码

3.1 下载 GNU 跨工具链二进制文件并安装所需的软件包(主机 Ubuntu 14.04 或 Ubuntu 16.04)

3.2 获取RV1126 CE Boards Buildroot源代码

3.3 选择板配置

3.4 构建Uboot

3.5 构建Linux内核

3.6 构建 Rootfs

3.7 构建恢复

3.8 全部构建

3.9 生成 RV1126 CE Boards Buildroot 镜像以供 flash 下载

4. 开发Buildroot驱动示例

4.1 简单驱动示例

4.1.1 进入内核驱动补丁,创建hello dir和hello.c:

4.1.2 在hello.c中开始编码:

4.1.3 创建Makefile和Kconfig:

4.1.4 修改Makefile:

4.1.5 构建模块:

4.1.6 安装模块:

4.1.7运行看日志:

4.1.8 卸载模块:

5. 开发 Buildroot 应用示例

5.1 简单的 Buildroot 应用示例

5.1.1 源码位置

5.1.2 在builderroot中创建配置

5.1.3 将Hello应用添加到buildroot菜单

5.1.4 加入项目配置

5.1.5 编译Hello应用

6.开发Linux(Debian)应用示例

6.1.1 创建helloworld dir和helloworld.c:

6.1.2 在helloworld.c中开始编码:

6.1.3 构建应用程序:

6.1.4 运行应用程序并查看输出:

6.2 简单的rga演示

6.2.2 编译演示:

6.2.3 运行demo查看输出:

6.3 简单的mpp演示

6.1.4 mpp demo源码及分析:

6.4 简单的npu c++演示

6.4.4 npu c++ demo源码及分析:

6.4.4 编译演示:

6.4.4 运行demo查看输出:


一、  RV1126 CE 板上的 Buildroot 和 Debian

RV1126 CE Boards 软件支持两种操作系统:Buildroot 和 Debian。 RV1126 CE 板的 Debian 映像基于 Debian 9 版本构建。

二、 安装 Buildroot & Debian

当前支持在 RV1126 CE 板上安装 Buildroot 或 Debian 映像的方法:
        • 通过 USB 数据线和 Rockchip Flash 下载工具从主机安装映像
以下章节将详细介绍该方法。 

2.1 从主机安装镜像 - pc

对于将下载许多自编译操作系统的迭代实验版本的经验丰富的用户,建议使用此方法。如果第一种方法由于无法检测到显示器或鼠标和键盘而失败,这也是一种备用方法。由于此方法使用主机 PC 对电路板进行编程,因此无需将单独的显示器和鼠标/键盘连接到电路板。本指南描述了 Windows 主机系统的过程。

2.1.1 安装前提

此方法需要在Host PC 上安装rockchip flash 下载工具相应的驱动程序。瑞芯微闪存下载工具一个与 RV1126 CE 板的引导加载程序通信并允许您将图像闪存到板上的工具。有关如何在您的主机 PC 上安装 Rockchip 闪存下载工具驱动程序的说明,请参见下文。

2.1.2 安装概述

要从主机 PC 安装 Buildroot,只需遵循以下简单步骤:

  • 步骤 1. 下载 Buildroot 和 Debian 映像
  • 步骤 2. 在主机上安装 Rockchip Flash 下载驱动
  • 步骤 3. 将开发板带入 maskrom 或 rockusb 加载器模式
  • 步骤 4. 在主机 PC 上启动瑞芯微闪存下载工具
  • 步骤 5. 刷新 buildroot 映像步骤
  • 6. 重新启动并使用

以下章节更详细地描述了每个步骤:

2.1.3 第一步。下载 Buildroot & Debian 镜像和 flash 下载工具

1. 从以下网盘下载 buildroot 和 debian 镜像: (后面下载好了贴链接)

https://1drv.ms/u/s!AhoFWWcHV7rXklDzYPeAll4WLSRx?e=Ff0usx

2. 从下面的网盘下载rockchip flash下载工具(window & linux版本):

https://1drv.ms/u/s!AhoFWWcHV7rXklDzYPeAll4WLSRx?e=Ff0usx

2.1.4 步骤二、在主机上安装瑞芯微闪存下载驱动

在网盘工具目录:tools\windows\Driver Assitant_v5.0.zip
双击Driver Assitant _ v5.0\ Driver Install.exe,然后自动在你的windows主机上安装rockchip flash下载驱动。

2.1.5 step 3. 让板子进入maskrom或者rockusb loader模式

使用 typec usb 电缆连接 RV1126 CE 板和主机 PC。

然后让您的 RV1126 CE 板进入下载模式(maskrom 或 rockusb 加载器模式)。

下载模式的方法如下:先按开发板的reset键,然后长按recovery键3-4秒左右进入。

 2.1.6 步骤四、在主机PC上启动rockchip flash下载工具

主机 PC 操作系统是 Windows:
在网盘工具目录:tools\windows\RK Dev Tool_Release.zip 双击RK Dev Tool_Release\RK Dev Tool.exe。
Flash buildroot 系统映像:

【智能硬件】RV1126 CE 板软件指导_第1张图片

Flash debian 系统映像:

 主机 PC 操作系统是 Linux:
在网盘工具目录:tools\linux\Linux_升级_工具_v1.57.zip
解压Linux_升级_工具_v1.57.zip,将镜像解压到Linux_升级_工具文件夹。

如:rv1126-buildroot,rv1126-debian。

2.1.7 step 5. 刷入 buildroot & debian 镜像

主机 PC 操作系统是 Windows:

打开该工具,然后单击“下载镜像”菜单。单击红色箭头标记的每一行结束,会弹出文件选择框,然后选择相应分区的img文件路径。依次设置所有img文件路径。配置完成后,单击“运行”。右侧信息框将显示相关信息。

主机 PC 操作系统是 Linux:

1. Flash buildroot 镜像

sudo ./upgrade_tool ul rv1126-buildroot/MiniLoaderAll.bin
sudo ./upgrade_tool di -p rv1126-buildroot/parameter.txt
sudo ./upgrade_tool di -u rv1126-buildroot/uboot.img
sudo ./upgrade_tool di -misc rv1126-buildroot/misc.img
sudo ./upgrade_tool di -b rv1126-buildroot/boot.img
sudo ./upgrade_tool di -recovery rv1126-buildroot/recovery.img sudo ./upgrade_tool di -oem rv1126-buildroot/oem.img
sudo ./upgrade_tool di -rootfs rv1126-buildroot/rootfs.img
sudo ./upgrade_tool di -userdata rv1126-buildroot/userdata.img

sudo ./upgrade_tool rd

2. Flash debian 镜像

sudo ./upgrade_tool ul rv1126-debian/MiniLoaderAll.bin

sudo ./upgrade_tool di -p rv1126-debian/parameter.txt

sudo ./upgrade_tool di -u rv1126-debian/uboot.img

sudo ./upgrade_tool di -misc rv1126-debian/misc.img

sudo ./upgrade_tool di -b rv1126-debian/boot.img

sudo ./upgrade_tool di -recovery rv1126-debian/recovery.img

sudo ./upgrade_tool di -oem rv1126-debian/oem.img

sudo ./upgrade_tool di -rootfs rv1126-debian/rootfs.img

sudo ./upgrade_tool di -userdata rv1126-debian/userdata.img

sudo ./upgrade_tool rd

2.1.8 第 6 步。重新启动并使用!

镜像下载完成后,请执行以下步骤:

● 断开 USB 电缆
● 按下复位按钮
如果你刷入 buildroot 镜像,重启后你应该会看到 buildroot 启动。

如果你刷入 debian 镜像,重启后你应该会看到 debian 启动。

3.构建Buildroot源码

本节提供从 x86 主机在 RV1126 CE 板上构建和 Buildroot 系统的说明。

3.1 下载 GNU 跨工具链二进制文件并安装所需的软件包(主机 Ubuntu 14.04 或 Ubuntu 16.04)

您需要根据您的主机/目标架构下载正确的 GCC 工具链。通常主机是 Ubuntu 16.04 或 18.04 的标准 Intel x86 - 64 计算机,目标是 Arm ARMHF 的 RV1126 CE 板。

sudo apt-get install repo device-tree-compiler git-core u-bo
ot-tools mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools autoconf autotools-dev libs
igsegv2 m4 intltool libdrm-dev curl sed make binutils build-es
sential gcc g++ bash patch gzip gawk bzip2 perl tar cpio pytho
n unzip rsync file bc wget libncurses5 libqt4-dev libglib2.0-d
ev libgtk2.0-dev libglade2-dev cvs git mercurial openssh-clien
t subversion asciidoc w3m dblatex graphviz python-matplotlib l
ibc6:i386 libssl-dev expect fakeroot cmake flex bison liblz4-t
ool libtool keychain

3.2 获取RV1126 CE Boards Buildroot源代码

# repo init --repo-url=https://gitlab.com/bearkey-tools/repo -u \
  https://gitlab.com/bearkey-1126-linux/manifests.git --no-clone-bundle
# repo sync

3.3 选择板配置

$ ./build.sh BoardConfig-rv1126-bearkey-ce.mk

3.4 构建Uboot

$ ./build.sh uboot

3.5 构建Linux内核

$ ./build.sh kernel

3.6 构建 Rootfs

$ ./build.sh rootfs

3.7 构建恢复

$ ./build.sh recovery

3.8 全部构建

$ ./build.sh

3.9 生成 RV1126 CE Boards Buildroot 镜像以供 flash 下载

$ ./mkfirmware.sh

ps:生成的固件在SDK的rockdev目录下。

4. 开发Buildroot驱动示例

4.1 简单驱动示例

4.1.1 进入内核驱动补丁,创建hello dir和hello.c:

$ cd kernel/drivers 
$ mkdir hello
$ cd hello
$ vim hello.c

4.1.2 在hello.c中开始编码:

#include 
#include  #include 
MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) {
");
printk(KERN_ALERT "hello,I am a simple driver sample\n
return 0;
}
static void hello_exit(void) {
}
printk(KERN_ALERT "goodbye,kernel\n");
module_init(hello_init);
module_exit(hello_exit);
MODULE_AUTHOR("Beiqi");
MODULE_DESCRIPTION("This is a simple driver example!\n"); MODULE_ALIAS("A simplest example");

4.1.3 创建Makefile和Kconfig:

//Makefile
obj-$(CONFIG_BEIQI_HELLO)    += hello.o
//Kconfig
#
#gpio device configuration 
#
menuconfig BEIQI_HELLO

    bool "support beiqi hello test devices" 
    default y
    ---help---
    Say Y here if you support beiqi hello device

4.1.4 修改Makefile:

$ cd ..
$ git diff
diff --git a/drivers/Makefile b/drivers/Makefile 
index 4fa22d2..62a54d1 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -192,3 +192,4 @@ obj-$(CONFIG_RK_NAND) += rk_nand/
obj-$(CONFIG_RK_HEADSET) += headset_observe/

obj-$(CONFIG_RK_FLASH) += rkflash/ 
obj-$(CONFIG_BEIQI_ADC) += beiqi_adc/
+obj-m$(CONFIG_BEIQI_HELLO) += hello/hello.o

4.1.5 构建模块:

$ cd ../../
$ ./build.sh kernel
$ ls kernel/drivers/hello/
hello.c hello.ko hello.mod.c hello.mod.o hello.o Kconfig Mak efile

4.1.6 安装模块:

$ sudo insmod hello.ko

4.1.7运行看日志:

$ dmesg | tail -5

4.1.8 卸载模块:

$ sudo rmmod hello.ko

5. 开发 Buildroot 应用示例

Builderroot 添加编译应用,请参考以下内容。

5.1 简单的 Buildroot 应用示例

5.1.1 源码位置

选择SDK中源码的位置,例如:external。以添加hello应用为例。

$ ls external/hello
hello.c Makefile
$ cat external/hello/hello.c
#include  int main(void)
{
    printf("hello world,I am a simple linux application sample\n ");
return 0; 
}
$ cat external/hello/Makefile
CROSS_COMPILE=arm-linux-gnueabi- CC = ${CROSS_COMPILE}gcc
CXX = ${CROSS_COMPILE}g++
LIBS += -lm
LIBS += -ldl
CFLAGS += -I./include -I$(STAGING_DIR)/usr/include CFLAGS += -O2
#CFLAGS += -fno-stack-protector
LDFLAGS += -L$(STAGING_DIR)/usr/lib -L./
OBJECTS = $(SOURCES:.c=.o) PRJOBJS = hello.c
PRJNAME = hello
all: ${PRJNAME} $(PRJNAME):$(OBJECTS) $(PRJOBJS)
$(CC) -o $@ $(OBJECTS) $(PRJOBJS) $(LIBS) $(LDFLAGS) $(CFLA
GS) .c.o:
$(CC) $(INC) $(CFLAGS) -c -o $@ $<
.cpp.o:
$(CXX) $(INC) $(CFLAGS) -c -o $@ $<
clean:
rm -rf $(PRJNAME) *.so *.o

5.1.2 在builderroot中创建配置

选择buildroot的包配置位置,例如:buildroot/package/rockchip。以添加hello应用为例。

$ ls buildroot/package/rockchip/hello
Config.in hello.mk
$ cat buildroot/package/rockchip/hello/Config.in config BR2_PACKAGE_HELLO
bool "hello" help
All files for hello
$ cat buildroot/package/rockchip/hello/hello.mk HELLO_SITE_METHOD = local
HELLO_SITE = ${TOPDIR}/../external/hello HELLO_DEPENDENCIES =
define HELLO_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) CC=$(TARGET_CC) CXX=$(TARGET_CX
X) -C $(@D)
endef
define HELLO_INSTALL_TARGET_CMDS
cp $(@D)/hello ${TARGET_DIR}/usr/bin endef
$(eval $(generic-package))
$(CXX) $(INC) $(CFLAGS) -c -o $@ $<

5.1.3 将Hello应用添加到buildroot菜单

添加以下内容:

$ git diff buildroot/package/rockchip/Config.in
+source "package/rockchip/hello/Config.in"

5.1.4 加入项目配置

工程编译选择rootfs配置。在boardconfig-ce.mk中可以看到rootfs的配置是rockchip_rv1126_rv1109_defconfig。

$ git diff buildroot/configs/rockchip_rv1126_rv1109_defconfig +BR2_PACKAGE_HELLO=y

5.1.5 编译Hello应用

$ ./buildroot/build/envsetup.sh
This script is executed directly...
Top of tree: /home/qianchen/proj/rv1126p2
You're building on Linux Lunch menu...pick a combo:
0. non-rockchip boards
1. rockchip_px30_32
2. rockchip_px30_64
78. rockchip_rv1126_rv1109
79. rockchip_rv1126_rv1109_ab
80. rockchip_rv1126_rv1109_facial_gate 81. rockchip_rv1126_rv1109_libs
82. rockchip_rv1126_rv1109_ramboot_uvcc
83. rockchip_rv1126_rv1109_recovery
84. rockchip_rv1126_rv1109_sl
85. rockchip_rv1126_rv1109_spi_nand
86. rockchip_rv1126_rv1109_spi_nand_recovery 87. rockchip_rv1126_rv1109_systemd
88. rockchip_rv1126_rv1109_tiny
89. rockchip_rv1126_rv1109_toolchain 90. rockchip_rv1126_rv1109_uvcc
91. rockchip_rv1126_rv1109_uvcc_spi_nand Which would you like? [0]: 78
$ make hello //compile
$ make hello-dirclean //clean
$ ls buildroot/output/rockchip_rv1126_rv1109/build/hello //demo hello

以上只是一个例子。需要了解builderroot编译器才能看懂官方文档。

6.开发Linux(Debian)应用示例

Debian 是一个 linux 桌面系统。开发debian应用程序和linux一样。所以我们开发linux应用程序示例如下。

6.1.1 创建helloworld dir和helloworld.c:

$mkdir helloworld 
$ vim helloworld.c

6.1.2 在helloworld.c中开始编码:

#include 
int main(void)
{
printf("hello world,I am a simple linux application sample\ n");
}

6.1.3 构建应用程序:

$ gcc helloworld.c -o helloworld

6.1.4 运行应用程序并查看输出:

$ ./helloworld

运行输出为:
hello world,我是一个简单的 linux 应用示例

暂时用不到,有需要的私信

6.2 简单的rga演示

6.2.2 编译演示:

6.2.3 运行demo查看输出:

6.3 简单的mpp演示

6.1.4 mpp demo源码及分析:

6.1.4 编译演示:

6.1.4 运行demo查看输出:

6.4 简单的npu c++演示

6.4.4 npu c++ demo源码及分析:

6.4.4 编译演示:

6.4.4 运行demo查看输出:

附言:
它将生成 out.jpg。该图像标记了已识别的对象。

你可能感兴趣的:(智能硬件,智能硬件,RV1126)