当前位置: 首页 > news >正文

20250211解决荣品的RK3566核心板在Android13下出现charge_extrem_low_power的问题

20250211解决荣品的RK3566核心板在Android13下出现charge_extrem_low_power的问题
2025/2/11 17:45


缘起:荣品的RK3566核心板在Android13下,出现charge_extrem_low_power之后就直接挂住了。
由于我司使用了CW2217这个电量计,没有使用核心板自带的RK809。【嫌弃RK809的精度不够。】
battery: 160
voltage_sys = 208
voltage_usb = 208
current_avg = -2
dsoc = 0
rsoc = 0
remain_cap = 0
fcc = 5000
qmax = 5100
NO_CHARGER
Enable charge animation display
charge_extrem_low_power: Not charging, online=0. Shutdown...
debug info:
CAL_OFFSET = 0x8014
current_avg = -2
k = 18, b = 20

battery: 160
voltage_sys = 208
voltage_usb = 208
current_avg = -2
dsoc = 0
rsoc = 0
remain_cap = 0
fcc = 5000
qmax = 5100


结果调试的时候,悲剧了,起不来了!
问荣品,说是要在DTS设备树中屏蔽掉RK809的部分即可。

Z:\Android13.0\kernel-5.10\arch\arm64\boot\dts\rockchip\rk356x\pro-rk3566.dts
Z:\Android13.0\kernel-5.10\arch\arm64\boot\dts\rockchip00\rk356x\pro-rk3566.dts


    charge-animation {
        compatible = "rockchip,uboot-charge";
        rockchip,uboot-charge-on = <0>;
        rockchip,android-charge-on = <0>;
        rockchip,uboot-low-power-voltage = <7000>;
        rockchip,screen-on-voltage = <7000>;
        status = "okay";
    };
修改为:
    charge-animation {

        compatible = "rockchip,uboot-charge";
        rockchip,uboot-charge-on = <0>;
        rockchip,android-charge-on = <0>;
        rockchip,uboot-low-power-voltage = <7000>;
        rockchip,screen-on-voltage = <7000>;
        status = "disabled";
    };


&rk809 {
    battery {
                compatible = "rk817,battery";
                pinctrl-names = "default";
                pinctrl-0 = <&rp_bat_pins>;

                ocv_table = < 7024 7072 7080 7096 7104 7112 7120
                              7136 7152 7168 7184 7224 7264 7320
                              7392 7512 7612 7724 7828 7928 8100>;

                design_capacity = <5000>;
                design_qmax = <5100>;
                bat_res = <100>;
                sleep_enter_current = <300>;
                sleep_exit_current = <300>;
                sleep_filter_current = <100>;
                power_off_thresd = <7024>;
                zero_algorithm_vol = <7400>;
                max_soc_offset = <60>;
                monitor_sec = <5>;
        
                sample_res = <20>;
                bat_res_up = <140>;
                bat_res_down = <20>;
                
                virtual_power = <0>;    //test mode, 1 to force report 66%
                energy_mode = <0>;
                register_chg_psy = <1>;    //rk817 report charge state
                
                plug-det-gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;   //rpdzkj add for detect charge state, need register_chg_psy = 1, active state is plugin.
                full-det-gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;      //rpdzkj add for detect charge status whether is full.
        };
};

修改为:
&rk809 {
//    battery {
//                compatible = "rk817,battery";
//                pinctrl-names = "default";
//                pinctrl-0 = <&rp_bat_pins>;
//
//                ocv_table = < 7024 7072 7080 7096 7104 7112 7120
//                              7136 7152 7168 7184 7224 7264 7320
//                              7392 7512 7612 7724 7828 7928 8100>;

//                design_capacity = <5000>;
//                design_qmax = <5100>;
//                bat_res = <100>;
//                sleep_enter_current = <300>;
//                sleep_exit_current = <300>;
//                sleep_filter_current = <100>;
//                power_off_thresd = <7024>;
//                zero_algorithm_vol = <7400>;
//                max_soc_offset = <60>;
//                monitor_sec = <5>;
//        
//                sample_res = <20>;
//                bat_res_up = <140>;
//                bat_res_down = <20>;
//                
//                virtual_power = <0>;    //test mode, 1 to force report 66%
//                energy_mode = <0>;
//                register_chg_psy = <1>;    //rk817 report charge state
//                
//                plug-det-gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;   //rpdzkj add for detect charge state, need register_chg_psy = 1, active state is plugin.
//                full-det-gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;      //rpdzkj add for detect charge status whether is full.
//        };
};


参考资料:
百度:RK809 电量计 充电指示

https://blog.csdn.net/wsen2012/article/details/139337998
1、关掉电池检测
理由
之所以要关闭充电检测是因为我用RP-PRO-3566核芯板做了一个自己的底板,但充电电路这块又没有抄全,导至整个板子无法启动。打印信息提示是没有足够的电源,然后直接关机了。

有效操作
1、找到主设备树。如下图关闭电池检测即可。


https://m.elecfans.com/article/2092347.html
https://blog.csdn.net/Industio_CSDN/article/details/130921874
【深圳触觉智能技术分享】RK3568 RK809电量计电池调试
 
/{
    charger_det: charger {
        compatible = "gpio-charger";
        charger-type = "mains";
        gpios = <&gpio1 RK_PD1 GPIO_ACTIVE_LOW>;
        status = "okay";
    };
 
    test-power {
        status = "disabled";
    };
};
 
&rk809 {
        battery {
            status = "okay";
            compatible = "rk817,battery";
            ocv_table = <7000 7250 7370 7384 7436 7470 7496
                7520 7548 7576 7604 7632 7668 7706
                7754 7816 7892 7950 8036 8142 8212>;/*开路电压,是第一次接电池开机、长时间关机后再开机、长时间休眠后校正库仑计的依据,
                                                    0%~100%的电量细分成 21 个点,步进 5%电量*/
            design_capacity = <1500>;       //实际电池容量,单位:mah
            design_qmax = <1500>;           //最大容量值
            design_max_voltage = <8400>;      //最大电压
            bat_res = <180>;                //电池内阻
            sleep_enter_current = <300>;    //进入松弛模式的条件之一
            sleep_exit_current = <300>;     //退出松弛模式的条件之一
            sleep_filter_current = <100>;   //过滤无效的松弛电流。
            power_off_thresd = <7000>;      //期待的系统关机电压,单位:mV
            zero_algorithm_vol = <7700>;    //进入电压+库仑计放电模式的电压值
            max_soc_offset = <60>;          //开机校正时允许的最大电量误差。
            monitor_sec = <5>;              //轮询时间 单位秒
            sample_res = <10>;              //电池端附近的采样电阻大小
            energy_mode = <1>;              //该值为 1 时表示尽可能采取将电池电量放完的方式,为 0 时表示尽量考虑曲线平滑的合理性
            fb_temperature = <105>;         //芯片热保护温度阈值
            virtual_power = <0>;            //假电池模式(测试模式)
            bat_res_up = <140>;             //BATDIV上拉分压电阻
            bat_res_down = <20>;                        //BATDIV下拉分压电阻
            register_chg_psy = <0>;         //是否通过RK809上报充电状态
            external_chg_psy = <1>;                    //配置外部DC检测上报充电状态
        };
};

电池调试
驱动文件路径为:kernel/drivers/power/supply/rk817_battery.c
系统启动后可从 /sys/class/power_supply/battery/uevent 节点获取电池状态信息。

支持应用层配置驱动调试信息的输出,配置方法如下:

#开启打印信息
echo 1 > /sys/module/rk817_battery/parameters/dbg_level
#关闭打印信息
echo 0 > /sys/module/rk817_battery/parameters/dbg_level
开启后详细的电池数据将会输出至调试串口,内容如下:


完整的LOG:
console:/ $ 
console:/ $ 
console:/ $ su
console:/ # 
console:/ # 
console:/ # 
console:/ # [ 3187.519017][  T176] type=1400 audit(1739262997.296:567): avc: denied { execute } for comm="sh" name="toybox" dev="dm-0" ino=1722 scontext=u:r:autosync:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1
[ 3187.519249][  T176] type=1400 audit(1739262997.296:568): avc: denied { getattr } for comm="sh" path="/system/bin/toybox" dev="dm-0" ino=1722 scontext=u:r:autosync:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1
[ 3187.520535][  T176] type=1400 audit(1739262997.300:569): avc: denied { read open } for comm="sh" path="/system/bin/toybox" dev="dm-0" ino=1722 scontext=u:r:autosync:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1
[ 3187.520845][  T176] type=1400 audit(1739262997.300:570): avc: denied { execute_no_trans } for comm="sh" path="/system/bin/toybox" dev="dm-0" ino=1722 scontext=u:r:autosync:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1
[ 3187.521291][  T176] type=1400 audit(1739262997.300:571): avc: denied { map } for comm="sync" path="/system/bin/toybox" dev="dm-0" ino=1722 scontext=u:r:autosync:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=1
[ 3189.646808][  T176] type=1400 audit(1739262999.423:572): avc: denied { use } for comm="binder:283_2" path="socket:[151436]" dev="sockfs" ino=151436 scontext=u:r:netd:s0 tcontext=u:r:getagpsdata:s0 tclass=fd permissive=1
[ 3191.816419][  T176] type=1400 audit(1739263001.593:573): avc: denied { read } for comm="Thread-17" name="status" dev="proc" ino=4026532769 scontext=u:r:system_server:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[ 3191.817152][  T176] type=1400 audit(1739263001.593:574): avc: denied { open } for comm="Thread-17" path="/proc/adckey/status" dev="proc" ino=4026532769 scontext=u:r:system_server:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[ 3191.817542][  T176] type=1400 audit(1739263001.593:575): avc: denied { getattr } for comm="Thread-17" path="/proc/adckey/status" dev="proc" ino=4026532769 scontext=u:r:system_server:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[ 3213.808574][  T143] init: Received sys.powerctl='reboot,loader' from pid: 7708 (/system/bin/reboot)
[ 3213.808662][  T143] init: sys.powerctl: do_shutdown: 0 IsShuttingDown: 0
[ 3213.808918][    T1] init: Got shutdown_command 'reboot,loader' Calling HandlePowerctlMessage()
[ 3213.808980][    T1] init: Clear action queue and start shutdown trigger
[ 3213.809101][    T1] init: Entering shutdown mode
[ 3213.809317][    T1] init: processing action (shutdown_done) from (<Builtin Action>:0)
[ 3213.809386][    T1] init: Reboot start, reason: reboot,loader, reboot_target: loader
[ 3213.809444][    T1] init: Shutdown timeout: 6000 ms
[ 3213.809475][    T1] init: Create reboot monitor thread.
[ 3213.810069][ T7710] init: shutdown_timeout_timespec.tv_sec: 3517
[ 3213.878261][ T7711] watchdogd: watchdogd started (interval 10, margin 20)!
I/TA: Goodbye Rockchip Weaver!
I/TA: Goodbye Rockchip gatekeeper!
[ 3214.005996][  T176] type=1400 audit(1739263023.783:576): avc: denied { unlink } for comm="init" name="camera_tool" dev="tmpfs" ino=645 scontext=u:r:init:s0 tcontext=u:object_r:socket_device:s0 tclass=sock_file permissive=1
[ 3214.071114][ T6989] binder: release 326:348 transaction 4836 in, still active
[ 3214.071154][ T6989] binder: send failed reply for transaction 4836 to 507:585
I/TA: Goodbye Rockchip Keymaster!
[ 3214.503489][  T144] printk: init: 16 output lines suppressed due to ratelimiting
[ 3214.557087][  T179] binder_alloc: 507: binder_alloc_buf, no vma
[ 3214.557126][  T179] binder: 179:179 transaction failed 29189/-3, size 100-0 line 3346
[ 3214.690240][ T7718] android_work: sent uevent USB_STATE=DISCONNECTED
[ 3214.711694][  T175] printk: logd.klogd: 192 output lines suppressed due to ratelimiting
[ 3214.753895][ T7713] binder: undelivered TRANSACTION_ERROR: 29189
[ 3214.754233][ T7713] binder: undelivered death notification, b400007c6b9c9640
[ 3215.061474][    T1] [dhd] dhd_reboot_callback: code = 1
[ 3215.061588][    T1] [dhd] dhd_module_cleanup: Enter
[ 3215.061706][    T1] [dhd] sdioh_remove: Enter
[ 3215.063174][    T1] [dhd] dhdsdio_disconnect : no mutex held
[ 3215.063192][    T1] [dhd] dhdsdio_disconnect : set mutex lock
[ 3215.063208][    T1] [dhd] dhd_detach: making dhdpub up FALSE
[ 3215.063223][    T1] [dhd] bcmsdh_oob_intr_unregister: Enter
[ 3215.063232][    T1] [dhd] bcmsdh_oob_intr_unregister: irq is not registered
[ 3215.063242][    T1] [dhd] dhd_wlfc_deinit():3894, Already disabled!
[ 3215.160627][    T1] [dhd] dhd_detach(): thread:dhd_watchdog_thread:19f wait for terminate
[ 3215.160717][    T1] [dhd] dhd_detach(): thread:dhd_watchdog_thread:19f terminated OK
[ 3215.160788][    T1] [dhd] dhd_detach(): thread:dhd_rxf:1a1 wait for terminate
[ 3215.160821][    T1] [dhd] dhd_detach(): thread:dhd_rxf:1a1 terminated OK
[ 3215.160899][  T416] [dhd] dhd_dpc_thread: Unexpected up_cnt 0
[ 3215.161645][    T1] [dhd] dhd_detach(): thread:dhd_dpc:1a0 wait for terminate
[ 3215.161689][    T1] [dhd] dhd_detach(): thread:dhd_dpc:1a0 terminated OK
[ 3215.190817][    T1] [dhd] CFG80211-ERROR) wl_cfg80211_clear_per_bss_ies : netinfo or netinfo->wdev is NULL
[ 3215.253977][    T1] [dhd] dhd_tcpack_suppress_set: TCP ACK Suppress mode 2 -> mode 0
[ 3215.254074][    T1] [dhd] dhd_tcpack_suppress_set: TCPACK_INFO_MAXNUM=40, TCPDATA_INFO_MAXNUM=40
[ 3215.254278][    T1] [dhd] STATIC-MSG) dhd_wlan_mem_prealloc : section 7, size 0
[ 3215.254340][    T1] [dhd] dhdsdio_disconnect : mutex is released.
[ 3215.255881][    T1] [dhd] unregister wifi platform drivers
[ 3215.255935][    T1] [dhd] wifi_platform_bus_enumerate device present 0
[ 3215.255968][    T1] [dhd] ======== Card detection to remove SDIO card! ========
[ 3215.255996][    T1] [dhd] dhd_wlan_deinit_gpio: gpio_free(WL_HOST_WAKE 0)
[ 3215.256046][    T1] [dhd] STATIC-MSG) dhd_static_buf_exit : Enter
[ 3215.256391][    T1] [dhd] dhd_module_cleanup: Exit
[ 3215.258130][    T1] rk808 0-0020: reboot: not restore POWER_EN
[ 3215.259286][    T1] rk808 0-0020: reboot: force RK817_RST_FUNC_REG ok!
[ 3215.563616][    T1] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_disable] Crtc atomic disable vp1
[ 3215.600900][    T1] mpp_rkvdec2 fdf80200.rkvdec: shutdown device
[ 3215.606949][    T1] mpp_rkvdec2 fdf80200.rkvdec: shutdown success
[ 3215.613076][    T1] mpp_rkvenc fdf40000.rkvenc: shutdown device
[ 3215.619025][    T1] mpp_rkvenc fdf40000.rkvenc: shutdown success
[ 3215.645841][    T1] fan53555-regulator 0-001c: fan53555..... reset
[ 3215.653168][    T1] fan53555-regulator 0-001c: reset: force fan53555_reset ok!
[ 3215.670475][    T1] [WLAN_RFKILL]: Enter rfkill_wlan_shutdown
[ 3215.676270][    T1] [WLAN_RFKILL]: rockchip_wifi_power: 0
[ 3215.681696][    T1] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[ 3215.688244][    T1] [WLAN_RFKILL]: wifi shut off power [GPIO-1-1]
[ 3215.694364][    T1] [WLAN_RFKILL]: rfkill_set_wifi_bt_power: 0
[ 3215.700977][    T1] rkisp_hw fdff0000.rkisp: rkisp_hw_shutdown
[ 3215.706976][    T1] mpp-iep2 fdef0000.iep: shutdown device
[ 3215.712491][    T1] mpp-iep2 fdef0000.iep: shutdown success
[ 3215.718129][    T1] mpp_vepu2 fdee0000.vepu: shutdown device
[ 3215.723822][    T1] mpp_vepu2 fdee0000.vepu: shutdown success
[ 3215.729637][    T1] mpp_jpgdec fded0000.jpegd: shutdown device
[ 3215.735498][    T1] mpp_jpgdec fded0000.jpegd: shutdown success
[ 3215.741486][    T1] mpp_vdpu2 fdea0400.vdpu: shutdown device
[ 3215.747167][    T1] mpp_vdpu2 fdea0400.vdpu: shutdown success
[ 3215.753332][    T1] xhci-hcd xhci-hcd.0.auto: remove, state 4
[ 3215.759119][    T1] usb usb6: USB disconnect, device number 1
[ 3215.766221][    T1] xhci-hcd xhci-hcd.0.auto: USB bus 6 deregistered
[ 3215.773074][    T1] xhci-hcd xhci-hcd.0.auto: remove, state 4
[ 3215.778896][    T1] usb usb5: USB disconnect, device number 1
[ 3215.786104][    T1] xhci-hcd xhci-hcd.0.auto: USB bus 5 deregistered
[ 3215.800986][    T1] reboot: Restarting system with command 'loader'
DDR V1.18 f366f69a7d typ 23/07/17-15:48:58
ln
LP4/4x derate en, other dram:1x trefi
SRX
ddrconfig:7
LP4 MR14:0x4d
LPDDR4, 324MHz
BW=32 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
tdqss: cs0 dqs0: 72ps, dqs1: -24ps, dqs2: 24ps, dqs3: -48ps, 
tdqss: cs1 dqs0: 72ps, dqs1: -24ps, dqs2: 24ps, dqs3: -48ps, 

change to: 324MHz
clk skew:0x60

change to: 528MHz
clk skew:0x58

change to: 780MHz
clk skew:0x58

change to: 1056MHz(final freq)
PHY drv:clk:38,ca:38,DQ:30,odt:60
vrefinner:16%, vrefout:29%
dram drv:40,odt:80
vref_ca:00000068
clk skew:0x25
cs 0:
the read training result:
DQS0:0x40, DQS1:0x41, DQS2:0x40, DQS3:0x42, 
min  : 0x7  0x5  0x4  0x5  0x5  0x4  0x3  0x1 , 0x1  0x5  0xa  0x5  0x2  0x5  0x7  0x3 ,
       0x4  0x3  0x4  0x2  0x1  0x2  0x5  0x1 , 0x8  0x3  0x5  0x3  0x3  0x6  0x9  0x1 ,
mid  :0x27 0x25 0x25 0x25 0x25 0x25 0x23 0x23 ,0x24 0x27 0x29 0x26 0x23 0x27 0x29 0x25 ,
      0x25 0x25 0x25 0x24 0x23 0x24 0x26 0x23 ,0x29 0x26 0x27 0x25 0x26 0x27 0x2b 0x24 ,
max  :0x48 0x46 0x47 0x46 0x46 0x46 0x44 0x45 ,0x47 0x49 0x48 0x47 0x44 0x4a 0x4c 0x47 ,
      0x47 0x47 0x46 0x46 0x46 0x47 0x47 0x46 ,0x4b 0x49 0x4a 0x47 0x49 0x48 0x4d 0x47 ,
range:0x41 0x41 0x43 0x41 0x41 0x42 0x41 0x44 ,0x46 0x44 0x3e 0x42 0x42 0x45 0x45 0x44 ,
      0x43 0x44 0x42 0x44 0x45 0x45 0x42 0x45 ,0x43 0x46 0x45 0x44 0x46 0x42 0x44 0x46 ,
the write training result:
DQS0:0x2e, DQS1:0x22, DQS2:0x28, DQS3:0x1f, 
min  :0x56 0x56 0x56 0x56 0x55 0x54 0x53 0x56 0x56 ,0x49 0x4b 0x4e 0x4b 0x4a 0x4d 0x4d 0x4b 0x4b ,
      0x4f 0x4f 0x4f 0x4e 0x4d 0x4e 0x4f 0x4f 0x4e ,0x48 0x47 0x47 0x47 0x47 0x48 0x49 0x48 0x47 ,
mid  :0x71 0x71 0x71 0x71 0x70 0x70 0x6e 0x70 0x70 ,0x65 0x64 0x69 0x66 0x62 0x67 0x67 0x66 0x64 ,
      0x6b 0x6b 0x6b 0x6a 0x68 0x6a 0x6a 0x69 0x6a ,0x64 0x60 0x61 0x61 0x60 0x62 0x65 0x61 0x61 ,
max  :0x8d 0x8c 0x8d 0x8d 0x8b 0x8c 0x8a 0x8a 0x8b ,0x81 0x7d 0x84 0x82 0x7b 0x81 0x81 0x81 0x7d ,
      0x88 0x87 0x87 0x87 0x84 0x86 0x85 0x84 0x87 ,0x80 0x7a 0x7b 0x7b 0x7a 0x7c 0x81 0x7a 0x7b ,
range:0x37 0x36 0x37 0x37 0x36 0x38 0x37 0x34 0x35 ,0x38 0x32 0x36 0x37 0x31 0x34 0x34 0x36 0x32 ,
      0x39 0x38 0x38 0x39 0x37 0x38 0x36 0x35 0x39 ,0x38 0x33 0x34 0x34 0x33 0x34 0x38 0x32 0x34 ,
cs 1:
the read training result:
DQS0:0x41, DQS1:0x43, DQS2:0x41, DQS3:0x43, 
min  : 0x7  0x5  0x5  0x5  0x6  0x5  0x4  0x2 , 0x2  0x5  0xb  0x5  0x2  0x6  0x8  0x5 ,
       0x4  0x4  0x3  0x2  0x2  0x3  0x4  0x2 , 0x7  0x4  0x5  0x2  0x3  0x4  0x7  0x1 ,
mid  :0x28 0x26 0x26 0x26 0x26 0x26 0x25 0x24 ,0x24 0x27 0x2a 0x26 0x24 0x28 0x2a 0x26 ,
      0x26 0x26 0x25 0x23 0x24 0x25 0x26 0x24 ,0x2a 0x26 0x28 0x25 0x26 0x27 0x2a 0x23 ,
max  :0x49 0x47 0x48 0x47 0x47 0x47 0x46 0x46 ,0x47 0x4a 0x49 0x47 0x46 0x4b 0x4c 0x47 ,
      0x49 0x49 0x48 0x45 0x46 0x48 0x49 0x46 ,0x4d 0x48 0x4b 0x48 0x4a 0x4a 0x4e 0x46 ,
range:0x42 0x42 0x43 0x42 0x41 0x42 0x42 0x44 ,0x45 0x45 0x3e 0x42 0x44 0x45 0x44 0x42 ,
      0x45 0x45 0x45 0x43 0x44 0x45 0x45 0x44 ,0x46 0x44 0x46 0x46 0x47 0x46 0x47 0x45 ,
the write training result:
DQS0:0x2e, DQS1:0x22, DQS2:0x28, DQS3:0x1f, 
min  :0x55 0x56 0x56 0x56 0x54 0x54 0x52 0x55 0x55 ,0x48 0x4a 0x4d 0x4a 0x48 0x4c 0x4d 0x4b 0x4b ,
      0x4e 0x4e 0x4e 0x4e 0x4d 0x4e 0x4e 0x4e 0x4e ,0x47 0x45 0x45 0x45 0x45 0x46 0x48 0x46 0x46 ,
mid  :0x71 0x71 0x71 0x72 0x6f 0x70 0x6d 0x6f 0x70 ,0x65 0x64 0x69 0x66 0x61 0x66 0x66 0x66 0x65 ,
      0x6b 0x6a 0x6a 0x6a 0x69 0x6a 0x69 0x69 0x6a ,0x63 0x5f 0x5f 0x5f 0x5f 0x61 0x64 0x60 0x60 ,
max  :0x8e 0x8c 0x8d 0x8e 0x8b 0x8c 0x89 0x8a 0x8b ,0x82 0x7e 0x85 0x82 0x7b 0x81 0x80 0x81 0x80 ,
      0x89 0x87 0x87 0x87 0x85 0x86 0x85 0x85 0x87 ,0x80 0x7a 0x7a 0x7a 0x7a 0x7c 0x80 0x7a 0x7a ,
range:0x39 0x36 0x37 0x38 0x37 0x38 0x37 0x35 0x36 ,0x3a 0x34 0x38 0x38 0x33 0x35 0x33 0x36 0x35 ,
      0x3b 0x39 0x39 0x39 0x38 0x38 0x37 0x37 0x39 ,0x39 0x35 0x35 0x35 0x35 0x36 0x38 0x34 0x34 ,
CA Training result:
cs:0 min  :0x4e 0x4f 0x45 0x42 0x44 0x43 0x4a ,0x4d 0x4a 0x42 0x40 0x42 0x40 0x45 ,
cs:0 mid  :0x8e 0x8e 0x84 0x81 0x84 0x82 0x7a ,0x8c 0x88 0x81 0x7f 0x81 0x7f 0x73 ,
cs:0 max  :0xce 0xcd 0xc4 0xc1 0xc4 0xc1 0xaa ,0xcc 0xc7 0xc1 0xbf 0xc0 0xbe 0xa2 ,
cs:0 range:0x80 0x7e 0x7f 0x7f 0x80 0x7e 0x60 ,0x7f 0x7d 0x7f 0x7f 0x7e 0x7e 0x5d ,
cs:1 min  :0x4e 0x4f 0x45 0x43 0x46 0x41 0x48 ,0x4f 0x4c 0x43 0x42 0x42 0x40 0x42 ,
cs:1 mid  :0x8d 0x8e 0x84 0x82 0x85 0x81 0x7a ,0x8e 0x8a 0x83 0x81 0x81 0x7f 0x74 ,
cs:1 max  :0xcd 0xce 0xc4 0xc2 0xc5 0xc1 0xad ,0xce 0xc9 0xc3 0xc0 0xc1 0xbf 0xa6 ,
cs:1 range:0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x65 ,0x7f 0x7d 0x80 0x7e 0x7f 0x7f 0x64 ,
out
U-Boot SPL board init
U-Boot SPL 2017.09-gaaca6ffec1-211203 #zzz (Dec 03 2021 - 18:42:16)
unknown raw ID phN
unrecognized JEDEC id bytes: 00, 00, 00
Trying to boot from MMC2
MMC error: The cmd index is 1, ret is -110
Card did not respond to voltage select!
mmc_init: -95, time 16
spl: mmc init failed with error: -95
Trying to boot from MMC1
SPL: A/B-slot: _a, successful: 0, tries-remain: 7
Trying fit image at 0x4000 sector
## Verified-boot: 0
## Checking atf-1 0x00040000 ... sha256(0d5225a4ab...) + OK
## Checking uboot 0x00a00000 ... sha256(50848881a3...) + OK
## Checking fdt 0x00b457c0 ... sha256(036cca5880...) + OK
## Checking atf-2 0xfdcc1000 ... sha256(3e94d16e6a...) + OK
## Checking atf-3 0x0006b000 ... sha256(fde0ef262b...) + OK
## Checking atf-4 0xfdcce000 ... sha256(c9eb312bf2...) + OK
## Checking atf-5 0xfdcd0000 ... sha256(befba422b8...) + OK
## Checking atf-6 0x00069000 ... sha256(6ede7a3b44...) + OK
## Checking optee 0x08400000 ... sha256(6c92ef6a0e...) + OK
Jumping to U-Boot(0x00a00000) via ARM Trusted Firmware(0x00040000)
Total: 321.22 ms

INFO:    Preloader serial: 2
NOTICE:  BL31: v2.3():v2.3-607-gbf602aff1:cl
NOTICE:  BL31: Built : 10:16:03, Jun  5 2023
INFO:    GICv3 without legacy support detected.
INFO:    ARM GICv3 driver initialized in EL3
INFO:    pmu v1 is valid 220114
INFO:    dfs DDR fsp_param[0].freq_mhz= 1056MHz
INFO:    dfs DDR fsp_param[1].freq_mhz= 324MHz
INFO:    dfs DDR fsp_param[2].freq_mhz= 528MHz
INFO:    dfs DDR fsp_param[3].freq_mhz= 780MHz
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    BL31: Initializing runtime services
INFO:    BL31: Initializing BL32
I/TC: 
I/TC: OP-TEE version: 3.13.0-743-gb5340fd65 #hisping.lin (gcc version 10.2.1 20201103 (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16))) #5 Mon Aug 28 15:15:17 CST 2023 aarch64
I/TC: Primary CPU initializing
E/TC:0 0 hal_algo_version_init:296 CRYPTO_CRYPTO_VERSION_NEW no support. Skip all algo mode check.
I/TC: Primary CPU switching to normal world boot
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0xa00000
INFO:    SPSR = 0x3c9


U-Boot 2017.09 (Feb 11 2025 - 09:44:41 +0800)

Model: Rockchip RK3568 Evaluation Board
MPIDR: 0x81000000
PreSerial: 2, raw, 0xfe660000
DRAM:  4 GiB
Sysmem: init
Relocation Offset: ed21a000
Relocation fdt: eb9f94a8 - eb9fece8
CR: M/C/I
Using default environment

optee api revision: 2.0
dwmmc@fe2b0000: 1, dwmmc@fe2c0000: 2, sdhci@fe310000: 0
Bootdev(atags): mmc 0
MMC0: HS200, 200Mhz
PartType: EFI
DM: v1
Android 13.0, Build 2023.8, v2
boot mode: loader
RESC: 'boot', blk@0x0001da70
Device is: UNLOCKED
DTB: rk-kernel.dtb
HASH(c): OK
ANDROID: fdt overlay OK
I2c0 speed: 100000Hz
PMIC:  RK8090 (on=0x40, off=0x00)
vdd_logic init 950000 uV
vdd_gpu init 900000 uV
vdd_npu init 900000 uV
vsel-gpios- not found! Error: -2
vdd_cpu init 1000000 uV
io-domain: OK
INFO:    ddr dmc_fsp already initialized in loader.
Model: pro-rk3566
MPIDR: 0x81000000
ethaddr = 02:2a:b6:1b:a5:37
eth1addr = 66:f8:d5:b6:ac:cc
eth2addr = 6a:ac:db:99:cd:b2
eth3addr = 52:b5:6a:b3:65:a0
Rockchip UBOOT DRM driver version: v1.0.1
VOP have 1 active VP
vp0 have layer nr:0[], primary plane: 0
vp1 have layer nr:6[0 2 4 1 3 5 ], primary plane: 4
vp2 have layer nr:0[], primary plane: 0
disp info 2, type:16, id:0
base2_disp_info couldn't be found, screen_info type[0] or id[0] mismatched
Using display timing dts
dsi@fe060000:  detailed mode clock 161000 kHz, flags[a]
    H: 1200 1231 1251 1265
    V: 1920 2135 2141 2341
bus_format: 100e
VOP update mode to: 1200x1920p54, type: MIPI0 for VP1
VP1 set crtc_clock to 161000KHz
VOP VP1 enable Smart0[270x654->270x654@465x633] fmt[1] addr[0xedf82000]
final DSI-Link bandwidth: 996 Mbps x 4
unsupport command data type: 48
failed to send on cmds: -22
enter Rockusb!
RKUSB: LUN 0, dev 0, hwpart 0, sector 0x0, count 0x39ef6c0
|DDR V1.18 f366f69a7d typ 23/07/17-15:48:58
ln
LP4/4x derate en, other dram:1x trefi
SRX
ddrconfig:7
LP4 MR14:0x4d
LPDDR4, 324MHz
BW=32 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=4096MB
tdqss: cs0 dqs0: 72ps, dqs1: -24ps, dqs2: 24ps, dqs3: -48ps, 
tdqss: cs1 dqs0: 72ps, dqs1: -24ps, dqs2: 24ps, dqs3: -48ps, 

change to: 324MHz
clk skew:0x60

change to: 528MHz
clk skew:0x58

change to: 780MHz
clk skew:0x58

change to: 1056MHz(final freq)
PHY drv:clk:38,ca:38,DQ:30,odt:60
vrefinner:16%, vrefout:29%
dram drv:40,odt:80
vref_ca:00000068
clk skew:0x25
cs 0:
the read training result:
DQS0:0x40, DQS1:0x41, DQS2:0x40, DQS3:0x42, 
min  : 0x8  0x5  0x4  0x5  0x5  0x4  0x3  0x2 , 0x1  0x5  0xa  0x5  0x1  0x5  0x7  0x3 ,
       0x4  0x4  0x4  0x2  0x1  0x3  0x5  0x1 , 0x8  0x3  0x5  0x3  0x4  0x6  0x9  0x1 ,
mid  :0x28 0x25 0x25 0x25 0x25 0x25 0x23 0x23 ,0x24 0x27 0x29 0x26 0x22 0x27 0x29 0x25 ,
      0x26 0x25 0x25 0x24 0x23 0x25 0x26 0x23 ,0x29 0x26 0x27 0x25 0x26 0x27 0x2b 0x24 ,
max  :0x48 0x46 0x46 0x46 0x46 0x46 0x44 0x45 ,0x47 0x49 0x48 0x47 0x44 0x4a 0x4c 0x47 ,
      0x48 0x47 0x46 0x46 0x46 0x47 0x47 0x46 ,0x4b 0x49 0x4a 0x47 0x49 0x48 0x4d 0x47 ,
range:0x40 0x41 0x42 0x41 0x41 0x42 0x41 0x43 ,0x46 0x44 0x3e 0x42 0x43 0x45 0x45 0x44 ,
      0x44 0x43 0x42 0x44 0x45 0x44 0x42 0x45 ,0x43 0x46 0x45 0x44 0x45 0x42 0x44 0x46 ,
the write training result:
DQS0:0x2e, DQS1:0x22, DQS2:0x28, DQS3:0x1f, 
min  :0x56 0x56 0x56 0x56 0x55 0x54 0x53 0x56 0x56 ,0x49 0x4b 0x4e 0x4b 0x4a 0x4d 0x4d 0x4b 0x4b ,
      0x4f 0x4f 0x4f 0x4e 0x4d 0x4e 0x4f 0x4f 0x4e ,0x48 0x47 0x47 0x47 0x47 0x48 0x49 0x47 0x47 ,
mid  :0x71 0x71 0x71 0x71 0x70 0x70 0x6e 0x70 0x70 ,0x65 0x64 0x69 0x66 0x63 0x67 0x67 0x66 0x64 ,
      0x6b 0x6b 0x6b 0x6a 0x68 0x6a 0x6a 0x69 0x6a ,0x64 0x60 0x61 0x61 0x61 0x62 0x65 0x60 0x61 ,
max  :0x8d 0x8c 0x8d 0x8d 0x8b 0x8c 0x8a 0x8a 0x8b ,0x81 0x7d 0x84 0x82 0x7c 0x81 0x81 0x82 0x7d ,
      0x88 0x87 0x87 0x87 0x84 0x86 0x85 0x84 0x87 ,0x81 0x7a 0x7b 0x7b 0x7b 0x7c 0x81 0x7a 0x7b ,
range:0x37 0x36 0x37 0x37 0x36 0x38 0x37 0x34 0x35 ,0x38 0x32 0x36 0x37 0x32 0x34 0x34 0x37 0x32 ,
      0x39 0x38 0x38 0x39 0x37 0x38 0x36 0x35 0x39 ,0x39 0x33 0x34 0x34 0x34 0x34 0x38 0x33 0x34 ,
cs 1:
the read training result:
DQS0:0x41, DQS1:0x43, DQS2:0x41, DQS3:0x43, 
min  : 0x7  0x5  0x4  0x5  0x6  0x5  0x4  0x2 , 0x3  0x6  0xa  0x5  0x2  0x6  0x8  0x5 ,
       0x4  0x3  0x3  0x2  0x2  0x3  0x4  0x2 , 0x7  0x4  0x4  0x1  0x3  0x4  0x7  0x1 ,
mid  :0x27 0x26 0x26 0x26 0x26 0x26 0x25 0x24 ,0x25 0x28 0x29 0x26 0x24 0x28 0x2a 0x26 ,
      0x27 0x26 0x25 0x23 0x24 0x25 0x26 0x24 ,0x2a 0x26 0x28 0x24 0x26 0x27 0x2a 0x23 ,
max  :0x48 0x47 0x48 0x47 0x47 0x47 0x46 0x46 ,0x47 0x4a 0x48 0x47 0x46 0x4b 0x4c 0x48 ,
      0x4a 0x49 0x48 0x45 0x46 0x48 0x49 0x46 ,0x4d 0x48 0x4c 0x48 0x49 0x4a 0x4e 0x46 ,
range:0x41 0x42 0x44 0x42 0x41 0x42 0x42 0x44 ,0x44 0x44 0x3e 0x42 0x44 0x45 0x44 0x43 ,
      0x46 0x46 0x45 0x43 0x44 0x45 0x45 0x44 ,0x46 0x44 0x48 0x47 0x46 0x46 0x47 0x45 ,
the write training result:
DQS0:0x2e, DQS1:0x22, DQS2:0x28, DQS3:0x1f, 
min  :0x55 0x56 0x56 0x56 0x55 0x54 0x52 0x56 0x55 ,0x48 0x4a 0x4d 0x4a 0x48 0x4c 0x4d 0x4b 0x4b ,
      0x4e 0x4e 0x4e 0x4e 0x4d 0x4e 0x4e 0x4e 0x4e ,0x47 0x45 0x45 0x45 0x45 0x46 0x48 0x46 0x46 ,
mid  :0x71 0x71 0x72 0x72 0x70 0x70 0x6e 0x70 0x70 ,0x65 0x64 0x69 0x66 0x61 0x66 0x67 0x66 0x64 ,
      0x6b 0x6a 0x6a 0x6a 0x69 0x6a 0x69 0x69 0x6a ,0x63 0x5f 0x5f 0x5f 0x5f 0x61 0x64 0x60 0x60 ,
max  :0x8e 0x8d 0x8e 0x8e 0x8b 0x8c 0x8a 0x8a 0x8b ,0x82 0x7e 0x85 0x82 0x7b 0x81 0x81 0x81 0x7e ,
      0x89 0x87 0x87 0x87 0x85 0x86 0x85 0x85 0x87 ,0x80 0x7a 0x7a 0x7a 0x7a 0x7c 0x80 0x7a 0x7a ,
range:0x39 0x37 0x38 0x38 0x36 0x38 0x38 0x34 0x36 ,0x3a 0x34 0x38 0x38 0x33 0x35 0x34 0x36 0x33 ,
      0x3b 0x39 0x39 0x39 0x38 0x38 0x37 0x37 0x39 ,0x39 0x35 0x35 0x35 0x35 0x36 0x38 0x34 0x34 ,
CA Training result:
cs:0 min  :0x4e 0x4f 0x45 0x42 0x44 0x43 0x49 ,0x4d 0x49 0x42 0x40 0x42 0x40 0x45 ,
cs:0 mid  :0x8e 0x8e 0x84 0x81 0x84 0x82 0x79 ,0x8c 0x88 0x81 0x7f 0x81 0x7f 0x73 ,
cs:0 max  :0xce 0xcd 0xc4 0xc1 0xc4 0xc1 0xaa ,0xcc 0xc7 0xc1 0xbf 0xc0 0xbe 0xa2 ,
cs:0 range:0x80 0x7e 0x7f 0x7f 0x80 0x7e 0x61 ,0x7f 0x7e 0x7f 0x7f 0x7e 0x7e 0x5d ,
cs:1 min  :0x4e 0x4f 0x45 0x43 0x46 0x41 0x48 ,0x4f 0x4c 0x43 0x41 0x42 0x40 0x42 ,
cs:1 mid  :0x8d 0x8e 0x84 0x82 0x85 0x81 0x7a ,0x8e 0x8a 0x83 0x80 0x81 0x7f 0x74 ,
cs:1 max  :0xcd 0xce 0xc4 0xc2 0xc4 0xc1 0xad ,0xce 0xc9 0xc3 0xc0 0xc1 0xbf 0xa6 ,
cs:1 range:0x7f 0x7f 0x7f 0x7f 0x7e 0x80 0x65 ,0x7f 0x7d 0x80 0x7f 0x7f 0x7f 0x64 ,
out
U-Boot SPL board init
U-Boot SPL 2017.09-gaaca6ffec1-211203 #zzz (Dec 03 2021 - 18:42:16)
unknown raw ID phN
unrecognized JEDEC id bytes: 00, 00, 00
Trying to boot from MMC2
MMC error: The cmd index is 1, ret is -110
Card did not respond to voltage select!
mmc_init: -95, time 16
spl: mmc init failed with error: -95
Trying to boot from MMC1
Magic is incorrect.
Error validating A/B metadata from disk. Resetting and writing new A/B metadata to disk.
SPL: A/B-slot: _a, successful: 0, tries-remain: 7
Trying fit image at 0x4000 sector
## Verified-boot: 0
## Checking atf-1 0x00040000 ... sha256(0d5225a4ab...) + OK
## Checking uboot 0x00a00000 ... sha256(47884d3aa3...) + OK
## Checking fdt 0x00b457c0 ... sha256(036cca5880...) + OK
## Checking atf-2 0xfdcc1000 ... sha256(3e94d16e6a...) + OK
## Checking atf-3 0x0006b000 ... sha256(fde0ef262b...) + OK
## Checking atf-4 0xfdcce000 ... sha256(c9eb312bf2...) + OK
## Checking atf-5 0xfdcd0000 ... sha256(befba422b8...) + OK
## Checking atf-6 0x00069000 ... sha256(6ede7a3b44...) + OK
## Checking optee 0x08400000 ... sha256(6c92ef6a0e...) + OK
Jumping to U-Boot(0x00a00000) via ARM Trusted Firmware(0x00040000)
Total: 337.528 ms

INFO:    Preloader serial: 2
NOTICE:  BL31: v2.3():v2.3-607-gbf602aff1:cl
NOTICE:  BL31: Built : 10:16:03, Jun  5 2023
INFO:    GICv3 without legacy support detected.
INFO:    ARM GICv3 driver initialized in EL3
INFO:    pmu v1 is valid 220114
INFO:    dfs DDR fsp_param[0].freq_mhz= 1056MHz
INFO:    dfs DDR fsp_param[1].freq_mhz= 324MHz
INFO:    dfs DDR fsp_param[2].freq_mhz= 528MHz
INFO:    dfs DDR fsp_param[3].freq_mhz= 780MHz
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    BL31: Initializing runtime services
INFO:    BL31: Initializing BL32
I/TC: 
I/TC: OP-TEE version: 3.13.0-743-gb5340fd65 #hisping.lin (gcc version 10.2.1 20201103 (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16))) #5 Mon Aug 28 15:15:17 CST 2023 aarch64
I/TC: Primary CPU initializing
E/TC:0 0 hal_algo_version_init:296 CRYPTO_CRYPTO_VERSION_NEW no support. Skip all algo mode check.
I/TC: Primary CPU switching to normal world boot
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0xa00000
INFO:    SPSR = 0x3c9


U-Boot 2017.09 (Feb 11 2025 - 15:32:32 +0800)

Model: Rockchip RK3568 Evaluation Board
MPIDR: 0x81000000
PreSerial: 2, raw, 0xfe660000
DRAM:  4 GiB
Sysmem: init
Relocation Offset: ed21a000
Relocation fdt: eb9f94a8 - eb9fece8
CR: M/C/I
Using default environment

optee api revision: 2.0
dwmmc@fe2b0000: 1, dwmmc@fe2c0000: 2, sdhci@fe310000: 0
Bootdev(atags): mmc 0
MMC0: HS200, 200Mhz
PartType: EFI
DM: v1
Android 13.0, Build 2023.8, v2
boot mode: recovery (misc)
RESC: 'recovery', blk@0x000374cc
Device is: UNLOCKED
DTB: rk-kernel.dtb
HASH(c): OK
ANDROID: fdt overlay OK
I2c0 speed: 100000Hz
PMIC:  RK8090 (on=0x40, off=0x00)
vdd_logic init 950000 uV
vdd_gpu init 900000 uV
vdd_npu init 900000 uV
vsel-gpios- not found! Error: -2
vdd_cpu init 1000000 uV
io-domain: OK
INFO:    ddr dmc_fsp already initialized in loader.
Model: pro-rk3566
MPIDR: 0x81000000
ethaddr = 02:2a:b6:1b:a5:37
eth1addr = 66:f8:d5:b6:ac:cc
eth2addr = 6a:ac:db:99:cd:b2
eth3addr = 52:b5:6a:b3:65:a0
OCV Value:6000  6319  6466  6556  6621  6675  6722  6766  6809  6854  6903  6960  7026  7104  7195  7297  7404  7521  7641  7771  8051  ocvsize: 21
battery->design_cap: 5000
battery->qmax: 5100
battery->bat_res_up: 140
battery->bat_res_down: 20
reg read version:0 dts read version:0
battery = 160
rk817_bat_rsoc_init: is_first_power_on = 1, pwroff_min = 0, pwron_voltage = 168
rk817_bat_first_pwron, rsoc = 0, dsoc = 0, fcc = 5000, nac = 0
<rk817_bat_calc_linek>. meet=0, diff=0, link=1000, calc: dsoc=0, rsoc=0
voltage_k = 18, voltage_b = 20
voltage_sys = 208
voltage usb: 160
battery: 160
current_avg = -2
current_pwron = -7
remain_cap = 0
fcc = 5000
qmax = 5100
dsoc = 0
rsoc = 0
charge type: 0
debug info:
CAL_OFFSET = 0x8014
current_avg = -2
k = 18, b = 20
battery: 160
voltage_sys = 208
voltage_usb = 208
current_avg = -2
dsoc = 0
rsoc = 0
remain_cap = 0
fcc = 5000
qmax = 5100
NO_CHARGER
Enable charge animation display
charge_extrem_low_power: Not charging, online=0. Shutdown...
debug info:
CAL_OFFSET = 0x8014
current_avg = -2
k = 18, b = 20
battery: 160
voltage_sys = 208
voltage_usb = 208
current_avg = -2
dsoc = 0
rsoc = 0
remain_cap = 0
fcc = 5000
qmax = 5100


 

相关文章:

20250211解决荣品的RK3566核心板在Android13下出现charge_extrem_low_power的问题

20250211解决荣品的RK3566核心板在Android13下出现charge_extrem_low_power的问题 2025/2/11 17:45 缘起&#xff1a;荣品的RK3566核心板在Android13下&#xff0c;出现charge_extrem_low_power之后就直接挂住了。 由于我司使用了CW2217这个电量计&#xff0c;没有使用核心板自…...

MapReduce到底是个啥?

在聊 MapReduce 之前不妨先看个例子&#xff1a;假设某短视频平台日活用户大约在7000万左右&#xff0c;若平均每一个用户产生3条行为日志&#xff1a;点赞、转发、收藏&#xff1b;这样就是两亿条行为日志&#xff0c;再假设每条日志大小为100个字节&#xff0c;那么一天就会产…...

算法02-各种排序算法

各种常见排序算法总结 一. 冒泡排序 (Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地遍历要排序的列表&#xff0c;比较相邻的元素&#xff0c;并交换它们的位置&#xff0c;直到整个列表排序完成。 A、说明&#xff1a; 特点&#xff1a; 通过不断交换相邻元素&am…...

python基础入门:8.1项目1:爬虫与数据分析

Python爬虫与数据分析全流程实战&#xff1a;从数据采集到可视化呈现 # 综合案例&#xff1a;电商价格监控分析系统 import requests from bs4 import BeautifulSoup import pandas as pd import matplotlib.pyplot as plt# 配置参数 HEADERS {User-Agent: Mozilla/5.0 (Wind…...

git 克隆指定 tag 的项目

git 克隆指定 tag 的项目 一、克隆指定tag的项目二、验证克隆结果 一、克隆指定tag的项目 以 tinyxml2项目 为例说明&#xff1a; git clone --branch V10.0.0 https://github.com/leethomason/tinyxml2.git解释&#xff1a; git clone&#xff1a;这是克隆一个远程仓库的命…...

DeepSeek学习笔记之——初识DeepSeek

春节假期回来已经有一周时间了&#xff0c;这假期综合症的症状是一点没减~~~ 假期期间除了这个欢乐详和的节日气氛&#xff0c;就数DeepSeek最火热了&#xff01;&#xff01;&#xff01; 什么是DeepSeek? DeepSeek是一款由国内人工智能公司研发的大型语言模型&#xff0c;…...

Linux 调用可执行程序

Linux 调用可执行程序 1. system() 函数1.1 system() 函数的声明1.2 system() 函数的不同场景返回值1.3 system() 函数的代码示例 2. exec() 函数族2.1 exec() 函数族的声明2.2 exec() 函数族执行失败的情况2.3 exec() 函数族的代码示例 3. exec() 与 system() 的区别以及使用注…...

MVCC面试怎么答

说到mvcc这个比较抽象的概念&#xff0c;很多人都有点束手无策。因为它实际上偏理论&#xff0c;实际应用中很难用到。但在面试中出现频率又很高&#xff0c;一问大部分都G。所以怎么精简回答并且能抓住重点就很关键了。往上详细解说MVCC的太多了&#xff0c;我这里没那么多废话…...

用Go实现 SSE 实时推送消息(消息通知)——思悟项目技术4

目录 简介 工作原理 例子 使用场景 简介 SSE&#xff08;Server - Sent Events&#xff09;是一种允许服务器向客户端实时推送更新的 Web 技术。是一种基于 HTTP 协议的单向通信机制&#xff0c;服务器可以在客户端建立连接后&#xff0c;持续不断地向客户端发送事件流。客…...

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 0基础…...

vue3:动态渲染后端返回的图片

问&#xff1a; div classleft-png 这里我用css设置了他的背景图片&#xff0c;但是现在我希望改为后端返回的图片&#xff0c;怎么写&#xff1f; 后端返回数据&#xff1a; const centerdata {img:;xxxx,title,xxxx,num:xxxx}&#xff1f; 回答&#xff1a; 好的&#xff…...

DeepSeek小白初识指南

1.什么是DeepSeek&#xff1f; DeepSeek是一个基于大语言模型&#xff08;LLM&#xff09;的智能助手&#xff0c;能够处理自然语言理解、生成、对话等任务。它广泛应用于聊天机器人、内容生成、数据分析等领域。 2.DeepSeek和OpenAI等大模型差异&#xff1f; 虽然DeepSeek和Op…...

图像锐化(QT)

如果不使用OpenCV&#xff0c;我们可以直接使用Qt的QImage类对图像进行像素级操作来实现锐化。锐化算法的核心是通过卷积核&#xff08;如拉普拉斯核&#xff09;对图像进行处理&#xff0c;增强图像的边缘和细节。 以下是一个完整的Qt应用程序示例&#xff0c;展示如何使用Qt…...

38.社区信息管理系统(基于springboothtml)

目录 1.系统的受众说明 2.需求分析及相关技术 2.1设计目的 2.2社区信息管理系统的特点 2.3可行性分析 2.3.1技术可行性 2.3.2运行可行性 2.4系统设计 2.4.1系统功能分析 2.4.2管理员权限功能设计 2.4.3业主权限功能设计 2.5系统的技术介绍 2.5.1 Html 2.5.2 Aja…...

游戏引擎学习第98天

仓库:https://gitee.com/mrxiao_com/2d_game_2 开始进行一点回顾 今天的目标是继续实现正常贴图的操作&#xff0c;尽管目前我们还没有足够的光照信息来使其完全有用。昨日完成了正常贴图相关的基础工作&#xff0c;接下来将集中精力实现正常贴图的基本操作&#xff0c;并准备…...

音频知识基础

音频知识基础 声音属性声音度量人耳特性通道数音频数字化传输接口 声音属性 响度 响度是人耳对声音强弱的主观感受&#xff1b; 主要和声波的振幅相关&#xff0c;同时也和频率有一定关系&#xff1b; 音调 音调是人耳对声音高低的主观感受&#xff1b; 主要与频率相关&#…...

【AI赋能】蓝耘智算平台实战指南:3步构建企业级DeepSeek智能助手

蓝耘智算平台实战指南&#xff1a;3步构建企业级DeepSeek智能助手 引言&#xff1a;AI大模型时代的算力革命 在2025年全球AI技术峰会上&#xff0c;DeepSeek-R1凭借其开源架构与实时推理能力&#xff0c;成为首个通过图灵测试的中文大模型。该模型在语言理解、跨模态交互等维…...

LabVIEW无人机飞行状态监测系统

近年来&#xff0c;无人机在农业植保、电力巡检、应急救灾等多个领域得到了广泛应用。然而&#xff0c;传统的目视操控方式仍然存在以下三大问题&#xff1a; 飞行姿态的感知主要依赖操作者的经验&#xff1b; 飞行中突发的姿态异常难以及时发现&#xff1b; 飞行数据缺乏系统…...

DeepSeek模型架构及优化内容

DeepSeek v1版本 模型结构 DeepSeek LLM基本上遵循LLaMA的设计&#xff1a; 采⽤Pre-Norm结构&#xff0c;并使⽤RMSNorm函数. 利⽤SwiGLU作为Feed-Forward Network&#xff08;FFN&#xff09;的激活函数&#xff0c;中间层维度为8/3. 去除绝对位置编码&#xff0c;采⽤了…...

html语义化

常见语义化标签有&#xff1a; &#xff08;1&#xff09;页面结构标签&#xff1a;<header>、<nav>、<main>、<article>、<section>、<aside>、<footer> &#xff08;2&#xff09;文本语义标签&#xff1a;<h1>-<h6>…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...