RV1103 开发板+SDK部署

描述

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

SDK介绍

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

嵌入式

其中

1、.repo

整个工程的版本管理工具

2、docs

开发文档

3、media

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

4、project

里面的内容如下

嵌入式

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

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

嵌入式

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

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

5、sysdrv

目录里面内容如下

嵌入式

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,因此可以执行如下操作

嵌入式

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

嵌入式

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

嵌入式

分区表配置,修改为这样,适配W25N01 128MB的

嵌入式

文件系统类型

嵌入式

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

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

嵌入式

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

嵌入式

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

嵌入式

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

嵌入式

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

./build.sh lunch

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

嵌入式

然后执行

./build.sh

进行完整构建

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

嵌入式

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

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

嵌入式

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

构建中出现的问题

1、media部分编译报错

嵌入式

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

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

嵌入式


审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分