RV1106开发整个过程分享

  • 开发概述

RV1106,由对接人员提供的百度网盘下载,下载下来的SDK,整个开发分为四个阶段:SDK熟悉,SDK使用,硬件适配,软件驱动适配和应用开发,以下将详述每个步骤。

  • SDK目录结构

解压SDK后和以往瑞星微SDK比较相似但又有区别,根据以往经验,查看build.sh可以看到其使用方法:

echo "Usage: build.sh [OPTIONS]"

echo "Available options:"

echo "lunch              -Select Board Configure"    (1.主板选型)

echo "env                -build env"

echo "meta               -build meta (optional)"

echo "uboot              -build uboot"             (3.分离编译uboot)

echo "kernel             -build kernel" (3.分离编译kernel)

echo "rootfs             -build rootfs" (3.分离编译rootfs)

echo "driver             -build kernel's drivers"

echo "sysdrv             -build uboot, kernel, rootfs"

echo "media              -build rockchip media libraries"

echo "app                -build app"

echo "recovery           -build recovery"

echo "tool               -build tool"

echo "updateimg          -build update image"

echo "unpackimg          -unpack update image"

echo "factory            -build factory image"

echo "all           -build uboot, kernel, rootfs, recovery image"   (4.完全编译,不打包)

echo "allsave            -build all & firmware & save"              (2.完全编译)

echo ""

echo "clean              -clean all" (4.全部清理)

echo "clean uboot        -clean uboot"

echo "clean kernel       -clean kernel"

echo "clean driver       -clean driver"

echo "clean rootfs       -clean rootfs"

echo "clean sysdrv       -clean uboot/kernel/rootfs"

echo "clean media        -clean rockchip media libraries"

echo "clean app          -clean app"

echo "clean recovery     -clean recovery"

echo ""

echo "firmware           -pack all the image we need to boot up system"

echo "ota                -pack update_ota.tar"

echo "save               -save images, patches, commands used to debug"

echo "check              -check the environment of building"

echo "info               -see the current board building information"

echo ""

echo "Default option is 'allsave'."

其中,比较重要的如上图黄色区域,其目录如下图:

media: Rockchip Media库目录,多Rockchip媒体编解码、ISP等算法相关源代码

,所有与库相关的源代码存放至此目录,

project:App目录,所有应用相关源代码存放至此目录,此目录使用make管理构建树,因此对于每一个App而言,都需要有一个自己的Makefile文件,并通过包含(include)Makefile.param文件获取参数。App可使用RK_APP_MEDIA_INCLUDE_PATH变量(Rockchip Media库头文件变量)与RK_APP_MEDIA_LIBS_PATH变量(Rockchip Media库库目录变量)来链接Rockchip Media库目录中的库。

sysdrv:系统目录,包含uboot、linux kernel、rootfs的源代码。

tools:编译所需的工具,例如固件打包工具,交叉编译器等。

在选择版型后会链接出一个,如下

  • SDK使用方法

安装依赖

sudo apt update

sudo apt-get install -y git ssh make gcc gcc-multilib g++-multilib module-assistant expect g++ gawk texinfo libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler libncurses5-dev pkg-config bc python-is-python3 passwd openssl openssh-server openssh-client vim file cpio rsync

交叉编译器:

可单独将{SDK_PATH}/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf中置于/opt中修改/etc/profile 并生效(source /etc/profile)即可,如下图:

生效后,使用arm-rockchip830-linux-uclibcgnueabihf-gcc -v  可以看到版本信息如下:

build.sh使用说明,见上。

  1. 使用 ./build.sh lunch 选择Luckfox_Pico_Pro_Max-IPC
  2. 使用 ./build.sh allsave 或者./build.sh 编译全部,生成文件的存放目录: output/image

注意事项

在windows下复制源码包时,linux下的可执行文件可能变为非可执行文件,或者软连接失效导致无法编译使用。因此使用时请注意不要在windows下复制源代码包。

  • 文件系统适配
  1. 开启busybox诸多功能,例如telnet ,ftp,中文识别网络等功能,详情见busybox的配置文件:opensource/sysdrv/tools/board/busybox/config_normal ,初步统计如下:
    1. 静态编译busybox:
    2. 支持UNICODE字符
    3. 直接后台界面大小重设RESIZE
    4. 支持用户操作:addgroup、adduser、chpasswd ,deluser delgroup
    5. 支持mod操作:DEPMOD、INSMOD、LSMOD、MODPROBE
    6. 支持fdisk和文件系统操作
    7. 支持mkfs操作和mount操作
    8. 支持httpd ftpd tcpsvd udpsvd telnet tftpd
    9. 支持ip 操作和tracert 、udhcp
    10. 支持nslookup ping6

2.修改busybox构建的linux系统配置,例如,密码,网咯配置增加dam2160i文件夹供后期应用使用。

  1. 修改分区数和分区大小,详情见opensource/project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-NONE-RV1106_Luckfox_Pico_Pro_Max-IPC.mk,去除oem、userdate等分区,修改rootfs分区大小为250M,剩余1M未使用。
  2. fw_printenv和MAC设置。
  3. uboot和 kernel 看门狗开发。
  • 硬件适配

硬件驱动根据IO引脚分配表进行逐一测试,包括如下USB、交换机芯片、串口功能、看门狗等,通过修改对应的dts完成。

  • 软件驱动适配

主要是适配自定义的引脚和相关驱动,编译成ko,独立动态加载使用。

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值