当前位置: 首页 > 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>…...

python学习第十四天之机器学习名词介绍

名词介绍 1. 常用术语解释2.常见机器学习任务3. 机器学习常见算法1. 监督学习&#xff08;Supervised Learning&#xff09;2. 非监督学习&#xff08;Unsupervised Learning&#xff09;3.深度学习4.**对比总结** 1. 常用术语解释 拟合&#xff08;Fit&#xff09;&#xff1…...

天津三石峰科技——汽车生产厂的设备振动检测项目案例

汽车产线有很多传动设备需要长期在线运行&#xff0c;会出现老化、疲劳、磨损等 问题&#xff0c;为了避免意外停机造成损失&#xff0c;需要加装一些健康监测设备&#xff0c;监测设备运 行状态。天津三石峰科技采用 12 通道振动信号采集卡&#xff08;下图 1&#xff09;对…...

汽车与AI深度融合:CES Asia 2025前瞻

在科技飞速发展的当下&#xff0c;汽车与AI的融合正成为行业变革的关键驱动力。近日&#xff0c;吉利、极氪、岚图、智己等多家车企纷纷官宣与DeepSeek模型深度融合&#xff0c;其中岚图知音更是将成为首个搭载该模型的量产车型&#xff0c;这无疑是汽车智能化进程中的重要里程…...

前端实现 GIF 图片循环播放

前言 使用 img 加载 GIF 图片&#xff0c;内容只会播放一次&#xff0c;之后就会自动暂停&#xff1b; 通过定时器在一段时间后重新加载图片的方式&#xff0c;会导致浏览器内存不断增大&#xff0c;并且可能会有闪烁、卡顿的问题&#xff1b; ImageDecoder WebCodecs API 的…...

React - 事件绑定this

在 React 中&#xff0c;this 的绑定是一个常见问题&#xff0c;尤其在类组件中使用事件处理函数时。JavaScript 中的 bind 函数用于设置函数调用时 this 的值。 bind 函数的作用 bind() 方法创建一个新的函数&#xff0c;当被调用时&#xff0c;其 this 关键字被设置为提供的…...

STM32系统架构介绍

STM32系统架构 1. CM3/4系统架构2. CM3/4系统架构-----存储器组织结构2.1 寄存器地址映射&#xff08;特殊的存储器&#xff09;2.2 寄存器地址计算2.3 寄存器的封装 3. CM3/4系统架构-----时钟系统 STM32 和 ARM 以及 ARM7是什么关系? ARM 是一个做芯片标准的公司&#xff0c…...

Macbook Pro快速搭建Easysearch学习环境

在学习过程中&#xff0c;我们有时身边没有可用的服务器&#xff0c;这时就需要借助自己的 Mac 来安装和学习 Easysearch。然而&#xff0c;Easysearch 官网并未提供 Mac 版本的安装教程&#xff0c;下面我将详细整理我在 Mac 上安装和使用 Easysearch 的折腾经历。 Easysearc…...

老游戏回顾:SWRacer

竞速类游戏里&#xff0c;我很怀念它。 虽然已经25年过去了。 相比之下&#xff0c;别的游戏真的没法形容。 ---- 是LucasArts制作的一款赛车竞速游戏&#xff1b; 玩家要扮演一名银河旅行者参加各种赛车比赛&#xff0c;赢得奖金&#xff0c;在经历了八个不同星球上的24场…...

Firefox无法隐藏标题栏

Openbox 窗管 Firefox 无法隐藏标题栏。 深度Linux安装火狐,Linux(deepin) 下隐藏 Firefox 标题栏-CSDN博客 需要在 desktop 的 exec 中增加环境变量&#xff1a; Execenv MOZ_GTK_TITLEBAR_DECORATIONclient firefox...

vue基础(五)

Vue 实例在创建、挂载、更新、销毁的过程中会触发一系列的生命周期钩子&#xff08;Lifecycle Hooks&#xff09;&#xff0c;让开发者可以在不同阶段执行逻辑。 1. Vue 2 生命周期完整流程 生命周期的四个主要阶段 创建阶段&#xff08;Creation&#xff09;挂载阶段&#…...