欢迎来到亿配芯城! | 免费注册
RV1103 开发板+SDK部署
发布日期:2024-01-09 13:01     点击次数:193

本文介绍一下RV1103 SDK的部署,以及初步修改,并编译出一个能在设备上运行的基础版本的固件。

SDK介绍

RK公版的SDK解压之后内容如下。RV1103和RV1106是公用一套SDK的。这套SDK和RV1109/RV1126系列不能共用。

wKgaomUsGluAehLTAAAUvJ8yKfY128.png

其中

1、.repo

整个工程的版本管理工具

2、docs

开发文档

3、media

多媒体开发工具。里面包含了v4l2视频输入库, mpp编解码库,alsa音频库等音视频组件库。

4、project

里面的内容如下

wKgZomUsGluAAL41AAAjGRD-75I231.png

其中app目录是一些更上层的应用示例,比如ipc的应用demo。

cfg目录是板级编译配置。目前支持的配置如下

wKgZomUsGluAUMrpAAAy0GUJNeE394.png

scripts目录里面是编译脚本和一些打包配置,比如打包内核镜像+设备树的its文件。

这个cfg目录+scripts目录在常规的RK SDK里面一般是放在device目录里面。

5、sysdrv

目录里面内容如下

wKgaomUsGluAEDqOAAAS7DkrPt8654.png

cfg目录是编译配置

drv_ko存放部分不开源的驱动,以及WiFi驱动的源码。

source是uboot和kernel源码

tools目录用于构建rootfs。其中board是板端的软件组件包源码,比如busybox和adb等。pc是pc端的工具源码,比如mtd-tools编译出来的mtd工具可用于打包nand分区镜像。

这个tools目录类似于其它RK SDK的buildroot

6、tools

包含Windows和Linux下面的固件制作工具以及烧录工具。此外交叉编译工具在linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf下

这个SDK跟之前RK其它系列的Linux SDK不一样,它的目录更少,而且没有那么多种rootfs的支持。此外,libc库更改为uclibc而不是其它系列使用的glibc。

新建编译配置

首先进入project/cfg/BoardConfig_IPC目录,注意到里面并没有RV1103 SPI NAND的配置,因此要新建一个。可以在SPI NOR的基础上修改。这个开发板名叫PICO,因此可以执行如下操作

wKgZomUsGluAaZrqAAAQsXkfYuk842.png

然后打开这个文件,进行如下修改

wKgaomUsGluAehLTAAAUvJ8yKfY128.png

uboot里面的defconfig,默认都是rv1106的defconfig,这个defconfig是从SPI NAND启动的

wKgaomUsGlyAQ8ziAAATYIfYJ4g757.png

分区表配置, 芯片采购平台修改为这样,适配W25N01 128MB的

wKgaomUsGo6AZ8mtAACmESqOWhA059.png

文件系统类型

wKgZomUsGpSAP3MaAACS2pcxsVY344.png

如果是读写分区,spi nand一般用ubifs,spi nor用jffs2。只读分区都用squashfs。建议rootfs改为只读,以提升系统可靠性

另外最后还要加上如下内容,指定SPI NAND的块大小和页大小

wKgaomUsGlyABWzhAAAqxTP1lvs371.png

设备树需要新建一个支持SPI NAND的。打开sysdrv/source/kernel/arch/arm/boot/dts,找到rv1103g-evb-v10.dts,直接基于这个进行修改。执行

wKgZomUsGlyAZNMNAAAGeTZv1hc787.png

然后将默认的spi nor改成spi nand。在复制过来的这个dts末尾增加

wKgaomUsGlyAFq7ZAAAvDl_fSVs480.png

然后修改mk文件种的这个DTS为新建的

wKgaomUsGlyAbPgtAAASc1Wyv3o055.png

其余的暂时不修改,尝试执行构建。在SDK根目录下执行

./build.sh lunch

找到新建的这个方案,输入对应的序号,这里是3

wKgZomUsGlyANT43AAApMAJ2nKo881.png

然后执行

./build.sh

进行完整构建

如果没有出现错误,会生成固件,放在output/image下

wKgaomUsGlyAex8PAAAtgizWCZM618.png

这个update.img就是打包后的固件

将构建后的固件烧录到设备上。重新上电,可以看到内核的编译信息

wKgZomUsGlyAbsUVAAAfAecvu7A585.png

注意到编译的时间已经更新。说明烧录进去的固件已经能正常运行。到这里,SDK部署就完成了。后续可以在此配置上面进行相关功能的开发。

构建中出现的问题

1、media部分编译报错

wKgZomUsGm-ANXPJAAIqfvXCOs0324.png

此问题第一次执行构建时必现,再次执行构建消失。初步看是media有很多个模块组成,模块之间有依赖关系,不能并行编译

解决方案为media部分强制改为单线程编译

wKgaomUsGlyAVVSoAABFlgvydpA438.png 审核编辑 黄宇