瑞芯微平台RK3568系统开发(1)安卓环境搭建

1 开发环境搭建

注意: 重要!重要!重要!自己编译后的固件,

必须先确认io_domains(4.2章节)后,才可以下载到板子运行,

否则可能造成烧坏RK3568的情况。

1.1 更新系统

~$ sudo apt-get update

1.2 安装依赖

~$ sudo apt-get install repo git ssh make gcc libssl-devliblz4-toolexpect g++ patchelf chrpath gawk texinfo chrpathdIFfstatbinfmt-supportqemu-user-static live-build bison flex fakeroot cmakegcc-multilibg++-multilib unzip device-tree-compiler python-piplibncurses5-devbuild-essential vim tree

1.3 解压rk3568_sdk

~$ mkdir rk3568_aybering_Android11.0
~$ cat rk3568_aybering_Android11.0_sdk.tar.gz* | tar -zx -C rk3568_aybering_Android11
~$ cd rk3568_aybering_Android11

1.4 编译sdk

1.4.1 准备编译环境
rk3568_aybering_Android11$ source build/envsetup.sh
1.4.2 选择产品
rk3568_aybering_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
============================================
rk3568_aybering_Android11$ 
1.4.3 GPIO电压配置确认

RK3568 GPIO电压没配置对会导致芯片GPIO烧坏,

因此需要根据实际硬件原理图,

对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>;
};

vccio1-supply为例,

首先查看硬件原理图确认vccio1电源域(VCCIO1)的配置如图所示:

在硬件原理图上面搜索 VCCIO1 ,如下图:

从上图找到 VCCIO1 的电源是 vccio_acodec 。
在原理图上搜索 vccio_acodec ,可以找到如下图:

在硬件原理图上面搜索 VCCIO1 ,如下图:

从上图找到 VCCIO1 的电源是 vccio_acodec 。
在原理图上搜索 vccio_acodec ,可以找到如下图:

从上图找到 vccio_acodec 是由RK809的LDO4供电。
从软件的DTS里面找到LDO_REG4(LDO4)的配置信息,如下

vccio_acodec: LDO_REG4 {
    regulator-always-on;
    regulator-boot-on;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vccio_acodec";
    regulator-state-mem {
    regulator-off-in-suspend;
};

将上面的 vccio_acodec 配置到pmu_io_domains节点中的

vccio1-supply = <&vccio_acodec>;即可完成vccio1的电压配置

&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>;`
};

其他几路按照上面的方式配置即可,

其中vccio2是硬件固定电压不需要配置

  • pmuio2
  • vccio1
  • vccio3
  • vccio5
  • vccio6
  • vccio7

GPIO电压按照上面的方式配置即可

1.4.4 开始编译sdk
rk3568_aybering_Android11$  source build/envsetup.sh 
rk3568_aybering_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
============================================
rk3568_aybering_Android11$  
1.4.5 RK356X kernel编译弹出IO-Domain确认对话框

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

    弹出这个对话框目的是检查实际硬件原理图和软件dts的GPIO电压是否匹配,

需要根据硬件原理图的实际设计电压来选择(对话框中选择的值不会保存到dts中,dts需要手动去修改)。

如果你是软件工程师请与你们的硬件工程师一起核对确认,这个很重要。

如果GPIO电压配置不对会导致芯片GPIO烧坏。

当你正确确认GPIO电压后这个对话框就不会在弹出(输入值和dts配置的值相同),

如果dts名字或者dts里面的io-domian发生变化,则会在继续弹出进行确认。

1.4.6 编译完成,生成固件路径
hale@thinkpad:rk3568_aybering_Android11$ ls IMAGE/
RK3568_R_USERDEBUG_RK3568-EVB1-DDR4-V10__20220816.1803

至此,开发环境搭建完成

rk3568平台是一款针对高性能应用的芯片集成电路,被广泛应用于智能家居、智能终端等领域。在安卓开发中,传感器系统是其中非常重要的一部分,主要用于检测设备的姿态、位置、加速度、角速度等物理量,为应用提供相关的数据。本文将就rk3568平台安卓系统中的传感器系统进行分析。 首先,rk3568平台支持多种常见的传感器类型,包括加速度传感器、陀螺仪、磁场传感器、光线传感器、环境温湿度传感器等。这些传感器的数据在应用中可以被收集并解析,以展现设备在不同物理环境下的状态。 其次,rk3568平台上的传感器系统也支持传感器的扩展。用户可以通过添加更多的传感器模块来扩展设备的功能,从而实现更丰富的应用场景。这种扩展性在智能家居、智能终端等领域非常有用。 除了传感器的收集和解析,rk3568平台安卓系统中还提供了传感器管理服务。这些服务可用于控制传感器的采样频率和精度,从而实现更好的能耗管理和性能优化。用户可以根据自己的应用需求,通过调整传感器管理服务的配置,达到最佳的使用效果。 最后,值得注意的是,rk3568平台上的传感器系统也存在一定的局限性。例如,在某些物理环境下,传感器数据可能会受到干扰和误差,导致应用使用不正常。因此,在应用开发中,需要对传感器数据进行有效处理和校准,以保证应用的稳定性和准确性。 总之,rk3568平台安卓系统中的传感器系统具有非常重要的作用。它不仅为应用提供了丰富的物理数据,还通过传感器管理服务实现了能耗管理和性能优化。但是,开发者需要注意传感器数据的处理和校准,以确保应用的稳定性和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bingdund

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值