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 缘起:荣品的RK3566核心板在Android13下,出现charge_extrem_low_power之后就直接挂住了。 由于我司使用了CW2217这个电量计,没有使用核心板自…...

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

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

python基础入门:8.1项目1:爬虫与数据分析
Python爬虫与数据分析全流程实战:从数据采集到可视化呈现 # 综合案例:电商价格监控分析系统 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项目 为例说明: git clone --branch V10.0.0 https://github.com/leethomason/tinyxml2.git解释: git clone:这是克隆一个远程仓库的命…...

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

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

用Go实现 SSE 实时推送消息(消息通知)——思悟项目技术4
目录 简介 工作原理 例子 使用场景 简介 SSE(Server - Sent Events)是一种允许服务器向客户端实时推送更新的 Web 技术。是一种基于 HTTP 协议的单向通信机制,服务器可以在客户端建立连接后,持续不断地向客户端发送事件流。客…...

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 0基础…...

vue3:动态渲染后端返回的图片
问: div classleft-png 这里我用css设置了他的背景图片,但是现在我希望改为后端返回的图片,怎么写? 后端返回数据: const centerdata {img:;xxxx,title,xxxx,num:xxxx}? 回答: 好的ÿ…...

DeepSeek小白初识指南
1.什么是DeepSeek? DeepSeek是一个基于大语言模型(LLM)的智能助手,能够处理自然语言理解、生成、对话等任务。它广泛应用于聊天机器人、内容生成、数据分析等领域。 2.DeepSeek和OpenAI等大模型差异? 虽然DeepSeek和Op…...

图像锐化(QT)
如果不使用OpenCV,我们可以直接使用Qt的QImage类对图像进行像素级操作来实现锐化。锐化算法的核心是通过卷积核(如拉普拉斯核)对图像进行处理,增强图像的边缘和细节。 以下是一个完整的Qt应用程序示例,展示如何使用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 开始进行一点回顾 今天的目标是继续实现正常贴图的操作,尽管目前我们还没有足够的光照信息来使其完全有用。昨日完成了正常贴图相关的基础工作,接下来将集中精力实现正常贴图的基本操作,并准备…...

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

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

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

DeepSeek模型架构及优化内容
DeepSeek v1版本 模型结构 DeepSeek LLM基本上遵循LLaMA的设计: 采⽤Pre-Norm结构,并使⽤RMSNorm函数. 利⽤SwiGLU作为Feed-Forward Network(FFN)的激活函数,中间层维度为8/3. 去除绝对位置编码,采⽤了…...

html语义化
常见语义化标签有: (1)页面结构标签:<header>、<nav>、<main>、<article>、<section>、<aside>、<footer> (2)文本语义标签:<h1>-<h6>…...

python学习第十四天之机器学习名词介绍
名词介绍 1. 常用术语解释2.常见机器学习任务3. 机器学习常见算法1. 监督学习(Supervised Learning)2. 非监督学习(Unsupervised Learning)3.深度学习4.**对比总结** 1. 常用术语解释 拟合(Fit)࿱…...

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

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

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

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

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

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

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

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

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