目录

前言

一、解压sdk

二、更新系统并安装依赖

1.更新系统

2.安装依赖

三、编译3568 sdk

1.准备编译环境

2.选择产品

3.IO-Domain GPIO电压配置

4.开始编译sdk

5. kernel编译弹出IO-Domain确认对话框

6.编译完成 烧录固件


前言

随着物联网的发展,开发板各式各样,驱动这门技术也越来越重要,很多人都开启了学习驱动,本文就介绍了rk3568的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、解压sdk

ubuntu@jsd:~$ mkdir rk3568_Android11.0
ubuntu@jsd:~$ cat rk3568_Android11.0_sdk.tar.gz* | tar -zx -C rk3568_Android11
ubuntu@jsd:~$ cd rk3568_Android11

二、更新系统并安装依赖

1.更新系统

sudo apt-get   update

2.安装依赖

sudo apt-get install git gnupg flex bison gperf libsdl1.2-dev \
libesd-java libwxgtk3.0-dev squashfs-tools build-essential zip curl \
libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \
xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \
lib32readline-dev gcc-multilib libswitch-perl libssl-dev unzip zip

三、编译3568 sdk

1.准备编译环境

source build/envsetup.sh

2.选择产品

ubuntu@jsd:rk3568_Android11$ lunch 

You're building on Linux

Lunch menu... pick a combo:
     ...
     50. rk3566_r-user
     51. rk3566_r-userdebug
     52. rk3566_rgo-user
     53. rk3566_rgo-userdebug
     54. rk3568_r-user
     55. rk3568_r-userdebug
     ...

Which would you like? [aosp_arm-eng] 55

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=11
TARGET_PRODUCT=rk3568_r
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=cortex-a55
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-2a
TARGET_2ND_CPU_VARIANT=cortex-a55
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.4.0-124-generic-x86_64-Ubuntu-18.04.6-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=RQ3A.210705.001
OUT_DIR=out
============================================
ubuntu@jsd:rk3568_Android11$

3.IO-Domain GPIO电压配置

&pmu_io_domains {
    status = "okay";
    pmuio2-supply = <&vcc3v3_pmu>;
    vccio1-supply = <&vccio_acodec>;
    vccio3-supply = <&vccio_sd>;
    vccio4-supply = <&vcc_1v8>;
    vccio5-supply = <&vcc_3v3>;
    vccio6-supply = <&vcc_1v8>;
    vccio7-supply = <&vcc_3v3>;
};

gpio 电压配置将会在后面单独会讲

4.开始编译sdk

ubuntu@jsd:rk3568_Android11$  source build/envsetup.sh 
ubuntu@jsd:rk3568_Android11$  lunch rk3568_r-userdebug

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=11
TARGET_PRODUCT=rk3568_r
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=cortex-a55
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-2a
TARGET_2ND_CPU_VARIANT=cortex-a55
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.4.0-125-generic-x86_64-Ubuntu-18.04.6-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=RD2A.211001.002
OUT_DIR=out
============================================
ubuntu@jsd:rk3568_Android11$

5. kernel编译弹出IO-Domain确认对话框

编译kernel时弹出如下对话框:

    弹出这个对话框目的是检查实际硬件原理图和软件dts的GPIO电压是否匹配, 需要根据硬件原理图的实际设计电压来选择(对话框中选择的值不会保存到dts中,dts需要手动去修改)

修改代码屏蔽io电压选择:

kernel/scripts/mkimg

-if [ "${ARCH}" == "arm64" ]; then
-       ./scripts/io-domain.sh ${srctree}/arch/arm64/boot/dts/rockchip/.${DTB}
-fi
+#if [ "${ARCH}" == "arm64" ]; then
+#      ./scripts/io-domain.sh ${srctree}/arch/arm64/boot/dts/rockchip/.${DTB}
+#fi

6.编译完成 烧录固件

至此,开发环境搭建完成

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐