RK3568 学习笔记 : u-boot 千兆网络无法 ping 通PC问题的解决方法二

news/2024/5/20 20:01:16

参考

  • RK3568 学习笔记 : u-boot 千兆网络无法 ping 通PC问题的解决

前言

  • rk3568 rockchip 提供的 u-boot,默认的设备树需要读取 单独分区 resouce.img 镜像中的 设备树文件,也就是 Linux 内核的设备树 dtb 文件,gmac 网络才能正常的 ping 通 PC 主机。

  • 如果使用 u-boot 默认的设备树,虽然可以正常的识别到 gmac 设备,但是无法 ping 通 PC 主机,也就是 u-boot 下网络功能异常。

环境

  • 正点原子 RK3568 开发板: AtomPi-CA1DLRK3568 开发板

  • 虚拟机 ubuntu 20.04 单独编译 开发板提供的 u-boot,并去掉 rockchip 一些定制的选项,如使用 resouce 分区等

相关的修改

  • 取消【勾选】一些 rockchip 的配置选项

在这里插入图片描述
在这里插入图片描述

[ ] Enable support for rockchip resource image 
[ ] Rockchip vendor storage partition support
[ ] Using dtb from Kernel/resource for U-Boot
  • 取消后,重新编译 u-boot,发现启动后,提示 env emmc 异常,此时需要修改一下 common/board_r.c 文件

  • rockchip 为了实现 env 通过读取 resource 分区,对初始化次序做了一些调整,需要调整回去,也就是 env 的初始化需要默认放在 mmc 初始化的后面

在这里插入图片描述

  • 这里主要是关闭了 CONFIG_USING_KERNEL_DTB,造成了 initr_env 初始化放在了 initr_mmc 前面,改到后面,就可以正常的 初始化 env 了(env 保存在 emmc 中)

设备树问题

  • 如果使用 u-boot 默认的设备树,gmac 网络无法 ping 通,如果把 u-boot 下的整个设备树,替换为 rockchip Linux kernel 中的设备树,gmac 网络可以正常 ping 通,说明问题点在 设备树的配置上。

  • u-boot 下的设备树,如果全部替换为 Linux kernel 的设备树,比较的麻烦,需要替换很多文件,包括 dt-bindings 头文件等,因为 u-boot 下的设备树与 Linux kernel 的设备树属于两套独立的设备树。Linux kernel 的设备树相对齐全与复杂一些。

  • 通过对比 u-boot 与 Linux kernel 的 设备树,发现 gmac 的相关的设置均一致,排除了 gmac 设置问题。

  • 那到底什么会影响 gmac 的网络功能呢? gmac 网络设备能正常的初始化,没有报错。

问题排查

  • 通过查看 开发板的原理图,发现了一些思路,电源管理,也就是 Linux 内核的设备树,与 rk809 pmic 的电源管理配置,而 u-boot 下,并没有这个配置。

  • 经过仔细查看原理图,发现 gmac 的 io 供电 vcc_1v8,来自 rk809 pmic 电源管理芯片,而这个 pmic 电源管理芯片,默认需要使用 i2c 通信配置,如果不配置,默认的配置,可能供电异常。

在这里插入图片描述

在这里插入图片描述

  • 抱着尝试的心态,在 u-boot 下的开发板设备树文件中,增加 rk809 相关的配置(来自 Linux kernel 设备树配置),并使能了 电源域,测试发现,网络可以 Ping 通了,说明网络 u-boot 默认设备树缺少 pmic 电源管理部分,造成网络无法正常 ping 通

  • 增加的电源管理部分 rk809 相关的设备树配置如下:DLRK3568 开发板 arch/arm/dts/atk-dlrk3568.dts 文件

/** SPDX-License-Identifier:     GPL-2.0+** (C) Copyright 2020 Rockchip Electronics Co., Ltd*//dts-v1/;
#include "rk3568.dtsi"
#include "rk3568-u-boot.dtsi"
#include <dt-bindings/input/input.h>/ {model = "ATK-DLRK3568 Rockchip RK3568 Board";compatible = "rockchip,rk3568-evb", "rockchip,rk3568";dc_12v: dc-12v {compatible = "regulator-fixed";regulator-name = "dc_12v";regulator-always-on;regulator-boot-on;regulator-min-microvolt = <12000000>;regulator-max-microvolt = <12000000>;};vcc3v3_sys: vcc3v3-sys {compatible = "regulator-fixed";regulator-name = "vcc3v3_sys";regulator-always-on;regulator-boot-on;regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;vin-supply = <&dc_12v>;};vcc5v0_sys: vcc5v0-sys {compatible = "regulator-fixed";regulator-name = "vcc5v0_sys";regulator-always-on;regulator-boot-on;regulator-min-microvolt = <5000000>;regulator-max-microvolt = <5000000>;vin-supply = <&dc_12v>;};vcc5v0_usb: vcc5v0-usb {compatible = "regulator-fixed";regulator-name = "vcc5v0_usb";regulator-always-on;regulator-boot-on;regulator-min-microvolt = <5000000>;regulator-max-microvolt = <5000000>;vin-supply = <&dc_12v>;};adc-keys {compatible = "adc-keys";io-channels = <&saradc 0>;io-channel-names = "buttons";keyup-threshold-microvolt = <1800000>;u-boot,dm-spl;status = "okay";volumeup-key {u-boot,dm-spl;linux,code = <KEY_VOLUMEUP>;label = "volume up";press-threshold-microvolt = <17822>;};volumedown-key {u-boot,dm-spl;label = "volume down";linux,code = <KEY_VOLUMEDOWN>;press-threshold-microvolt = <415385>;};};
};&mdio0 {rgmii_phy0: phy@0 {compatible = "ethernet-phy-ieee802.3-c22";reg = <0x0>;};
};&mdio1 {rgmii_phy1: phy@0 {compatible = "ethernet-phy-ieee802.3-c22";reg = <0x0>;};
};&gmac0 {phy-mode = "rgmii";clock_in_out = "output";snps,reset-gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;snps,reset-active-low;/* Reset time is 20ms, 100ms for rtl8211f */snps,reset-delays-us = <0 20000 100000>;assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;assigned-clock-rates = <0>, <125000000>;pinctrl-names = "default";pinctrl-0 = <&gmac0_miim&gmac0_tx_bus2&gmac0_rx_bus2&gmac0_rgmii_clk&gmac0_rgmii_bus>;tx_delay = <0x3c>;rx_delay = <0x2f>;phy-handle = <&rgmii_phy0>;status = "okay";
};&gmac1 {phy-mode = "rgmii";clock_in_out = "output";snps,reset-gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;snps,reset-active-low;/* Reset time is 20ms, 100ms for rtl8211f */snps,reset-delays-us = <0 20000 100000>;assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;assigned-clock-rates = <0>, <125000000>;pinctrl-names = "default";pinctrl-0 = <&gmac1m1_miim&gmac1m1_tx_bus2&gmac1m1_rx_bus2&gmac1m1_rgmii_clk&gmac1m1_rgmii_bus>;tx_delay = <0x4f>;rx_delay = <0x26>;phy-handle = <&rgmii_phy1>;status = "okay";
};&crypto {status = "okay";
};&uart2 {status = "okay";
};&i2c0 {status = "okay";vdd_cpu: tcs4525@1c {compatible = "tcs,tcs452x";reg = <0x1c>;vin-supply = <&vcc5v0_sys>;regulator-compatible = "fan53555-reg";regulator-name = "vdd_cpu";regulator-min-microvolt = <712500>;regulator-max-microvolt = <1390000>;regulator-init-microvolt = <900000>;regulator-ramp-delay = <2300>;fcs,suspend-voltage-selector = <1>;regulator-boot-on;regulator-always-on;regulator-state-mem {regulator-off-in-suspend;};};rk809: pmic@20 {compatible = "rockchip,rk809";reg = <0x20>;interrupt-parent = <&gpio0>;interrupts = <3 IRQ_TYPE_LEVEL_LOW>;pinctrl-names = "default", "pmic-sleep","pmic-power-off", "pmic-reset";pinctrl-0 = <&pmic_int>;pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>;pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>;pinctrl-3 = <&soc_slppin_gpio>, <&rk817_slppin_rst>;rockchip,system-power-controller;wakeup-source;#clock-cells = <1>;clock-output-names = "rk808-clkout1", "rk808-clkout2";//fb-inner-reg-idxs = <2>;/* 1: rst regs (default in codes), 0: rst the pmic */pmic-reset-func = <0>;/* not save the PMIC_POWER_EN register in uboot */not-save-power-en = <1>;vcc1-supply = <&vcc3v3_sys>;vcc2-supply = <&vcc3v3_sys>;vcc3-supply = <&vcc3v3_sys>;vcc4-supply = <&vcc3v3_sys>;vcc5-supply = <&vcc3v3_sys>;vcc6-supply = <&vcc3v3_sys>;vcc7-supply = <&vcc3v3_sys>;vcc8-supply = <&vcc3v3_sys>;vcc9-supply = <&vcc3v3_sys>;pwrkey {status = "okay";};pinctrl_rk8xx: pinctrl_rk8xx {gpio-controller;#gpio-cells = <2>;rk817_slppin_null: rk817_slppin_null {pins = "gpio_slp";function = "pin_fun0";};rk817_slppin_slp: rk817_slppin_slp {pins = "gpio_slp";function = "pin_fun1";};rk817_slppin_pwrdn: rk817_slppin_pwrdn {pins = "gpio_slp";function = "pin_fun2";};rk817_slppin_rst: rk817_slppin_rst {pins = "gpio_slp";function = "pin_fun3";};};regulators {vdd_logic: DCDC_REG1 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <500000>;regulator-max-microvolt = <1350000>;regulator-init-microvolt = <900000>;regulator-ramp-delay = <6001>;regulator-initial-mode = <0x2>;regulator-name = "vdd_logic";regulator-state-mem {regulator-off-in-suspend;};};vdd_gpu: DCDC_REG2 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <500000>;regulator-max-microvolt = <1350000>;regulator-init-microvolt = <900000>;regulator-ramp-delay = <6001>;regulator-initial-mode = <0x2>;regulator-name = "vdd_gpu";regulator-state-mem {regulator-off-in-suspend;};};vcc_ddr: DCDC_REG3 {regulator-always-on;regulator-boot-on;regulator-initial-mode = <0x2>;regulator-name = "vcc_ddr";regulator-state-mem {regulator-on-in-suspend;};};vdd_npu: DCDC_REG4 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <500000>;regulator-max-microvolt = <1350000>;regulator-init-microvolt = <900000>;regulator-ramp-delay = <6001>;regulator-initial-mode = <0x2>;regulator-name = "vdd_npu";regulator-state-mem {regulator-off-in-suspend;};};vdda0v9_image: LDO_REG1 {regulator-boot-on;regulator-always-on;regulator-min-microvolt = <900000>;regulator-max-microvolt = <900000>;regulator-name = "vdda0v9_image";regulator-state-mem {regulator-off-in-suspend;};};vdda_0v9: LDO_REG2 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <900000>;regulator-max-microvolt = <900000>;regulator-name = "vdda_0v9";regulator-state-mem {regulator-off-in-suspend;};};vdda0v9_pmu: LDO_REG3 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <900000>;regulator-max-microvolt = <900000>;regulator-name = "vdda0v9_pmu";regulator-state-mem {regulator-on-in-suspend;regulator-suspend-microvolt = <900000>;};};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_sd: LDO_REG5 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <1800000>;regulator-max-microvolt = <3300000>;regulator-name = "vccio_sd";regulator-state-mem {regulator-off-in-suspend;};};vcc3v3_pmu: LDO_REG6 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-name = "vcc3v3_pmu";regulator-state-mem {regulator-on-in-suspend;regulator-suspend-microvolt = <3300000>;};};vcca_1v8: LDO_REG7 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <1800000>;regulator-max-microvolt = <1800000>;regulator-name = "vcca_1v8";regulator-state-mem {regulator-off-in-suspend;};};vcca1v8_pmu: LDO_REG8 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <1800000>;regulator-max-microvolt = <1800000>;regulator-name = "vcca1v8_pmu";regulator-state-mem {regulator-on-in-suspend;regulator-suspend-microvolt = <1800000>;};};vcca1v8_image: LDO_REG9 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <1800000>;regulator-max-microvolt = <1800000>;regulator-name = "vcca1v8_image";regulator-state-mem {regulator-off-in-suspend;};};vcc_1v8: DCDC_REG5 {regulator-always-on;regulator-boot-on;regulator-min-microvolt = <1800000>;regulator-max-microvolt = <1800000>;regulator-name = "vcc_1v8";regulator-state-mem {regulator-off-in-suspend;};};vcc_3v3: SWITCH_REG1 {regulator-always-on;regulator-boot-on;regulator-name = "vcc_3v3";regulator-state-mem {regulator-off-in-suspend;};};vcc3v3_sd: SWITCH_REG2 {regulator-always-on;regulator-boot-on;regulator-name = "vcc3v3_sd";regulator-state-mem {regulator-off-in-suspend;};};};};
};&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>;
};&pinctrl {pmic {pmic_int: pmic_int {rockchip,pins =<0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;};soc_slppin_gpio: soc_slppin_gpio {rockchip,pins =<0 RK_PA2 RK_FUNC_GPIO &pcfg_output_low_pull_down>;};soc_slppin_slp: soc_slppin_slp {rockchip,pins =<0 RK_PA2 1 &pcfg_pull_up>;};soc_slppin_rst: soc_slppin_rst {rockchip,pins =<0 RK_PA2 2 &pcfg_pull_none>;};};
};
  • 修改 arch/arm/dts/rockchip-pinconf.dtsi,增加一些 引脚相关的定义

在这里插入图片描述

  • 以上修改,可以参考 Linux kernel 中开发板设备树获取

验证

  • 经过完善 u-boot 下开发板设备树, rk3568 u-boot gmac 网络功能正常了,也不再依赖 Linux 内核的设备树,不再依赖 resouce 分区,可以单独编译并正常工作了

小结

  • 默认使用 rockchip 提供的 u-boot,通过读取 resouce 分区的Linux 设备树,可以正常的工作,如果想去掉这个依赖,需要 u-boot 关闭 resouce 分区,并且完善 u-boot 下的设备树,当前网络部分无法 ping 通问题主要是 缺少 rk809 电源管理 pmic 的配置

  • 通过不断摸搜,虽然没有写什么代码,只是更改了一些配置,让 RK3568 平台的 u-boot 回归到了原有的样子,去除了一些 rockchip 定制化的选项,可能这样做意义不是很大,不过有兴趣的可以尝试,比如自定义分区,不需要定义过多的额外的 resouce 等分区。


http://www.mrgr.cn/p/76678745

相关文章

Marin说PCB之国产电源芯片方案 ---STC2620Q

随着小米加入的造车大家庭&#xff0c;让这个本来就卷的要死的造车大家庭更加卷了。随之带来的蝴蝶效应就是江湖上各个造成门派都开始了降本方案的浪潮啊&#xff0c;开始打响价格战了。各家的新能源车企也是不得不开始启动了降本方案的计划了&#xff0c;为了应对降价的浪潮。…

3月空气净化器市场数据分析,热门品牌排行榜揭晓!

三月上旬以来&#xff0c;中国空气净化器行业的规模持续扩大&#xff0c;市场规模和消费需求也在不断提升&#xff0c;消费者对高质量空气的需求增加。智能化是当前空气净化器市场的一个重要发展方向&#xff0c;这类产品集成了空气过滤、监测等功能&#xff0c;满足了现代消费…

Linux0.11中MINIX 文件系统

阅读linux 的源码的时候对minix 文件系统有很多的疑惑&#xff0c;根据自己的认识将这些做一个总结。 MINIX 文件系统由六个部分组成&#xff0c;分别是引导块&#xff0c;超级块&#xff0c;i结点位图&#xff0c;逻辑块位图&#xff0c;i结点&#xff0c;数据块。 引导块&am…

【动态规划】:路径问题_地下城游戏

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本专栏是关于各种算法的解析&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结构专栏&…

ChatPPT开启高效办公新时代,AI赋能PPT创作

目录 一、前言二、ChatPPT的几种用法1、通过在线生成2、通过插件生成演讲者模式最终成品遇到问题改进建议 三、ChatPPT其他功能 一、前言 想想以前啊&#xff0c;为了做个PPT&#xff0c;我得去网上找各种模板&#xff0c;有时候还得在某宝上花钱买。结果一做PPT&#xff0c;经…

【driver2】设备读写,同步和互斥,ioctl,进程休眠,时间和延时,延缓

文章目录 1.实现设备读写&#xff1a;write函数中一个进程写没问题&#xff0c;两进程写&#xff1a;第一个进程运行到kzalloc时&#xff0c;第二个进程也执行了kzalloc&#xff0c;只第二个进程地址保存在c中&#xff0c;第一个进程分配内存空间地址丢失造成内存泄漏。第一个进…

Spring-依赖来源

依赖来源 1 Spring BeanDefinition&#xff08;xml,注解&#xff0c;BeanDefinitionBuilder, 还有API实现的单例对象&#xff09; 2 Spring 内建BeanDefinition 3 内建单例对象 依赖注入和依赖查找的区别 Context.refresh() 的时候会调用这个方法&#xff1a;prepareBeanF…

微服务---gateway网关

目录 gateway作用 gateway使用 添加依赖 配置yml文件 自定义过滤器 nacos上的gateway的配置文件 我们现在知道了通过nacos注册服务&#xff0c;通过feign实现服务间接口的调用&#xff0c;那对于不同权限的用户访问同一个接口&#xff0c;我们怎么知道他是否具有访问的权…

FileLink文件摆渡技术解析:如何实现数据的安全摆渡与隔离

文件摆渡系统&#xff0c;这一现代科技名词&#xff0c;蕴含着深刻的科技内涵和广泛的应用前景。简而言之&#xff0c;文件摆渡系统是一种高效、安全的文件传输工具&#xff0c;它能够在不同的网络环境之间实现文件的快速、稳定传输。在今天的数字化时代&#xff0c;随着数据量…

Linux(openEuler、CentOS8)企业内网DHCP服务器搭建(固定Mac获取指定IP)

----本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS8基本一致&#xff0c;可参考本文&#xff09;---- 目录 一、知识点二、实验&#xff08;一&#xff09;为服务器配置网卡和IP&#xff08;二&#xff09;为服务器安装DHCP服务软件&#xff08;三&a…

【JAVA】类加载过程,以及类加载器

类加载过程&#xff0c;以及类加载器 一、类加载的过程二、类加载器介绍三、跨类加载三、举例说明 一、类加载的过程 类加载是Java虚拟机&#xff08;JVM&#xff09;将类文件加载到内存中并转换成对应的类对象的过程。它确保了类文件能够正确加载并转换成可执行的类对象&…

【半个月我拿下了软考证】软件设计师高频考点--系统化教学-网络安全

&#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;软件设计师考点暴击 ⭐&#x1f170;️进入狂砍分⭐ ⭐软件设计师高频考点文档&#xff0c; ⭐软件设计师高频考点专栏 ⭐软件设计师高频考点⭐ &#x1f3b6;&#xff08;A) 考点1&#xff0c;网络攻击 理解记忆 &#…

初学python记录:力扣1652. 拆炸弹

题目&#xff1a; 你有一个炸弹需要拆除&#xff0c;时间紧迫&#xff01;你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。 为了获得正确的密码&#xff0c;你需要替换掉每一个数字。所有数字会 同时 被替换。 如果 k > 0 &#xff0c;将第 i 个数字用…

【数据库原理及应用】期末复习汇总高校期末真题试卷06

试卷 一、选择题 1&#xff0e; ________是长期存储在计算机内的有组织,可共享的数据集合. A.数据库管理系统 B.数据库系统 C.数据库 D.文件组织 1&#xff0e; 有12个实体类型&#xff0c;并且它们之间存在15个不同的二元联系&#xff0c;其中4个是1:1联系类型&#xff0c;5…

pgsql查看指定模式的存储过程

pgsql查看指定模式的存储过程 在 PostgreSQL 中&#xff0c;如果你想要查看指定模式的存储过程&#xff08;也称为函数&#xff09;&#xff0c;你可以使用 \df 或 \df 命令在 psql 命令行工具中&#xff0c;或者使用 SQL 查询来从 pg_catalog 系统模式中查询。 \df命令行查询…

基于Python的LSTM网络实现单特征预测回归任务(TensorFlow)

单特征&#xff1a;数据集中只包含2列&#xff0c;时间列价格列&#xff0c;仅利用价格来预测价格 目录 一、数据集 二、任务目标 三、代码实现 1、从本地路径中读取数据文件 2、数据归一化 3、创建配置类&#xff0c;将LSTM的各个超参数声明为变量&#xff0c;便于后续…

如何让加快OpenHarmony编译速度?

OpenHarmony 有两种编译方式&#xff0c;一种是通过 hb 工具编译&#xff0c;一种是通过 build.sh 脚本编译。本文笔者将提升 build.sh 方式编译速度的方法整理如下&#xff1a; 因为笔者只用 build.sh 脚本编译&#xff0c;没用过 hb 工具&#xff0c;好像下面的选项也可以用于…

容灾演练双月报|郑大一附院数据级容灾演练切换

了解更多灾备行业动态 守护数字化时代业务连续 目录 CONTENTS 01 灾备法规政策 02 热点安全事件 03 容灾演练典型案例 01 灾备法规政策 3月19日&#xff0c;工信部发布《工业和信息化部办公厅关于做好2024年信息通信业安全生产和网络运行安全工作的通知》。明确提出“…

llama.cpp制作GGUF文件及使用

llama.cpp的介绍 llama.cpp是一个开源项目&#xff0c;由Georgi Gerganov开发&#xff0c;旨在提供一个高性能的推理工具&#xff0c;专为在各种硬件平台上运行大型语言模型&#xff08;LLMs&#xff09;而设计。这个项目的重点在于优化推理过程中的性能问题&#xff0c;特别是…

我们的小程序每天早上都白屏,真相是。。。

大家好&#xff0c;我是程序员鱼皮。最近我们在内测一款面试刷题小程序&#xff0c;没错&#xff0c;就是之前倒下的 “面试鸭”&#xff01; 在我们的内测交流群中&#xff0c;每天早上都会有同学反馈&#xff1a;打开小程序空白&#xff0c;没任何内容且登录不上。 然后过了…