MTK 相机功耗拆解方法

news2024/11/25 4:51:02

704106c9b0cf03039ba938fb898107e0.gif

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:


一、硬件功耗
二、相机软件功耗
三、参考文档

一、硬件功耗

1.1 硬件信息

以下硬件信息最好提前获取到

模块备注
平台MTK or Qcom or sprd
CPU频率大中小核
L2 Cache sizeCPU缓存
DDRDRAM 类型,品牌
屏幕类型,品牌
相机Sensor型号,出图size,帧率,几M

1.2 硬件功耗拆解

硬件电流一般需要使用功耗拆解板测试,使用功耗拆解版软件+工具 可以拆解详细硬件模块的功耗,数据格式如下:

模块备注
0_BAT
1_BBCPU 功耗
2_MEMORY内存
3_LCM
4_AUDIO多媒体
5_CAMERA相机
6_RF射频
7_WIFIwifi
8_SENSOR传感器
9_SIMSIM 卡
10_USBUSB
11_PMU电源管理单元
12_FLASH_LED闪光灯

二、相机软件功耗

2.1 影响相机功耗的点

1.CPU 差异(MIPS百万指令每秒:可以准确的表现当时CPU的运算量)
2.Camera 模组差异
3.Camera APP 差异
4.Camera HAL 差异
5.Camera算法差异
6.PDAF差异
7.Camera Feature、SensorSize、RRZO Size、Camera FPS、P2 display size 、p2 preview callback size ,预览拍照 size 等差异

2.2 MTK 相机功耗拆解模板

f16c81a1ed62c19544f25b3063833229.jpeg

2.3 功耗log关键字总结

Log 关键字

connect call|select size|MtkCam/StreamingPipe/Timer.*Frame timer|imgoDefaultRequest|prepareIORequest.*Outs|control.enableZsl|ZSL mode enable|feature=

log举例

//1. com.android.camera  camera APP 调用的 API 2
 08-09 02:19:08.699   991  4433 I CameraService: CameraService::connect call (PID 4733 "com.android.camera", camera ID 0) and Camera API version 2
 //2. 模组setting size与fps:(4080x3072)@30
 //3. 模组Setting mode     :sensorMode:1 
 08-09 02:19:08.837  1056  2832 I mtkcam-SensorSettingPolicy4cell: select size(4080x3072)@30  sensorMode:1 hdrSensorMode:0 hdrHalMode:0 HfpsMode:0
 //4. IMGO :imgoDefaultRequest={ format:0x2201 4080x3072 }
 //5. RRZO :rrzoDefaultRequest={ format:0x2205 1440x1088 }
 08-09 02:19:08.838  1056  2832 I mtkcam-P1HwSettingPolicy: { .imgoAlloc={ format:0x2201 4080x3072 } .imgoDefaultRequest={ format:0x2201 4080x3072 } .imgoSeamlessRequest={ format:0 0x0 } .rrzoDefaultRequest={ format:0x2205 1440x1088 } .rssoSize=288x512 .pixelMode=2 .usingCamSV=0 }
 //6. ZSL mode : ZSL mode enable = 0 control.enableZsl:0 
 08-09 02:19:08.839  1056  2832 I mtkcam-PipelineModelSession4Cell: [configure] ZSL mode enable = 0
 08-09 02:19:08.893  1056  3615 I mtkcam-PipelineModelSession: [submitRequest] <4Cell/0> requestNo:0 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:1 control.enableZsl:0 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:1 }
 08-09 02:19:08.900  1056  2835 I mtkcam-PipelineModelSession: [submitRequest] <4Cell/0> requestNo:1 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:1 control.enableZsl:0 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:1 }
 //7. StreamFeature : feature=0x1008(TPI_YUV+3DNR)
 //8. Preview&&Display Callback: buf(0xb400007a589920d0/1)(1440x1080),tran(0),type(1), tar(disp)
 08-09 02:19:09.064  1056  5261 D MtkCam/StreamingPipe/Pipe: [prepareIORequest]P2S cam 0 MWFrame:#0 MWReq:#0, frame 1-1  master/slave/fd(0/-1/0) ReqNo(1), feature=0x1008(TPI_YUV+3DNR), cycle(33), fps(n/a)=(30/30), ZoomROI((1440.000000x1082.000000)@(0.000000,2.000000)) SFPIOMgr:[sID(0)--IMG(0x0/0),RRZ(0xb400007a589b6670/1),LCS(0xb400007a5898cc70/1),LCSH(0xb400007a589b4810/1),pRSS(0x0/0),cRSS(0x0/0),RSSR2(0x0/0),FYuv(0x0/0),RYuv1(0x0/0),RYuv2(0x0/0),mAIYuv(0x0/0),HalI(0xb4000079a8996c10),AppI(0xb4000079889a5ab8),AppDI(0xb4000079a898ff90),AppOver(0x0)]{path(GEN),halO(0xb40000798898d830),appO(0xb4000079889a7370),Outs--[buf(0xb400007a58994cb0/1)(640x480),tran(0),type(4), tar(fd), prof(0), crop(0.000000,2.000000,1440.000000x1082.000000), flag(0x3)][buf(0xb400007a589920d0/1)(1440x1080),tran(0),type(1), tar(disp), prof(0), crop(0.000000,2.000000,1440.000000x1082.000000), flag(0x3)][buf(0xb400007a58999930/1)(1440x1080),tran(0),type(3), tar(unknown), prof(0), crop(0.000000,2
 //9. HAL  FPS: [fps24.39/24.39/  5/ 30]
 08-09 02:19:09.090  1056  5256 D MtkCam/StreamingPipe/Timer: [print]Frame timer [#    1/   0][t  25][io   0][tof  0/  0][d  0/  0][mss  0/  0/  0/  0][a 14/  3/  9][tun  0/  0][msf  0/  0][vnr  0/  0/  0][am  0][b  0/  0][tpi(  3/  3)/(  0/  0)/(  0/  0)][vmdp_A  5/  0 vmdp_B  0/  0][h  0/  0/  0][e  0][r  0/  0][w_A  0/  0/  0/  0 w_B  0/  0/  0/  0][x  0][disp  0/  0][async  0/  0][p2sm  0/  0/  0][fps0.00/0.00/  5/ 30]
 08-09 02:19:09.131  1056  5256 D MtkCam/StreamingPipe/Timer: [print]Frame timer [#    2/   0][t  28][io   0][tof  0/  0][d  0/  0][mss  0/  0/  0/  0][a  9/  0/  8][tun  0/  0][msf  0/  0][vnr  0/  0/  0][am  0][b  0/  0][tpi(  7/  6)/(  0/  0)/(  0/  0)][vmdp_A  6/  0 vmdp_B  0/  0][h  0/  0/  0][e  0][r  0/  0][w_A  0/  0/  0/  0 w_B  0/  0/  0/  0][x  0][disp  0/  0][async  0/  0][p2sm  0/  0/  0][fps24.39/24.39/  5/ 30]

2.4 MTK Log 关键字详细拆解

2.4.1 开启MTK 更多log的方法

C:\Users\platform-tools>adb shell setprop persist.vendor.debug.camera.log 3

C:\Users\platform-tools>adb shell pkill camera*

C:\Users\platform-tools>adb logcat -c

2.4.2 SensorSize、SensorMode、FPS、RRZO、IMGO、相机API

log 关键字:

P1NodeImp.*check_config|select size|connect call|imgoDefaultRequest |P1::ENQ

Log 举例
//1. com.android.camera  camera APP 调用的 API 2
 08-09 02:19:08.699   991  4433 I CameraService: CameraService::connect call (PID 4733 "com.android.camera", camera ID 0) and Camera API version 2
 //2. 模组setting size与fps:(4080x3072)@30
 //3. 模组Setting mode     :sensorMode:1 
 08-09 02:19:08.837  1056  2832 I mtkcam-SensorSettingPolicy4cell: select size(4080x3072)@30  sensorMode:1 hdrSensorMode:0 hdrHalMode:0 HfpsMode:0
 //4. IMGO :imgoDefaultRequest={ format:0x2201 4080x3072 }
 //5. RRZO :rrzoDefaultRequest={ format:0x2205 1440x1088 }
 08-09 02:19:08.838  1056  2832 I mtkcam-P1HwSettingPolicy: { .imgoAlloc={ format:0x2201 4080x3072 } .imgoDefaultRequest={ format:0x2201 4080x3072 } .imgoSeamlessRequest={ format:0 0x0 } .rrzoDefaultRequest={ format:0x2205 1440x1088 } .rssoSize=288x512 .pixelMode=2 .usingCamSV=0 }

2.4.3 ZSL 是否支持

log 关键字:

control.enableZsl|ZSL mode enable|connect call

log 举例
行   468: 08-09 02:19:08.699   991  4433 I CameraService: CameraService::connect call (PID 4733 "com.android.camera", camera ID 0) and Camera API version 2
    行  1755: 08-09 02:19:08.839  1056  2832 I mtkcam-PipelineModelSession4Cell: [configure] ZSL mode enable = 0
    行  2580: 08-09 02:19:08.893  1056  3615 I mtkcam-PipelineModelSession: [submitRequest] <4Cell/0> requestNo:0 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:1 control.enableZsl:0 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:1 }
    行  2657: 08-09 02:19:08.900  1056  2835 I mtkcam-PipelineModelSession: [submitRequest] <4Cell/0> requestNo:1 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:1 control.enableZsl:0 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:1 }
    行  5566: 08-09 02:19:09.119  1056  3615 I mtkcam-PipelineModelSession: [submitRequest] <4Cell/0> requestNo:6 { repeating:0 control.aeTargetFpsRange:5,30 control.captureIntent:1 control.enableZsl:0 control.processRawEn:0 control.mode:1 control.sceneMode:0 control.videoStabilizationMode:0 edge.mode:1 }
MTK 备用 log 关键字:

MtkCam/ppl_context.*dump|ZslProc

能搜索到 ZslProc,或者image stream中看到provide 就标准支持zsl

Log 举例
01-01 08:29:27.268390 12029 12029 I MtkCam/ZslProc: [ZslProcessor] mTimeSource(1) mFakeShutterNs(1522451160782)
 01-01 08:29:27.268910 12029 12029 I MtkCam/ZslProc: [configure] mCustomLibHandle(0x0) mpCustomSelector(0x0)
 01-01 08:29:27.275592 12029 12029 I MtkCam/ppl_context: [dump] <image streams>
 01-01 08:29:27.275647 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-APP-PROVIDER]0  960x720  OUT ImgFormat:0x1000(NV12) BufPlanes(strides/sizeInBytes):[ 960/691200 960/345600 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s0:d0:App:NV12:0|SW_READ_OFTEN|HW_TEXTURE AllocImgFormat:0x1000(NV12) AllocBufPlanes(strides/sizeInBytes):[ 960/691200 960/345600 ] Real:0x1000(NV12) Request:0x23(YCbCr_420_888) Override:0x23(YCbCr_420_888) Hal-Client-usage:0x103(0|SW_READ_OFTEN|HW_TEXTURE) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb40000705fc4f480 phy:-1
 01-01 08:29:27.275684 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-APP-PROVIDER]0x1 4080x3072 OUT ImgFormat:0x11(NV21) BufPlanes(strides/sizeInBytes):[ 4096/12582912 4096/6297600 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s1:d0:App:YCrCb_420_SP:0|SW_READ_OFTEN AllocImgFormat:0x11(NV21) AllocBufPlanes(strides/sizeInBytes):[ 4096/12582912 4096/6297600 ] Real:0x11(YCrCb_420_SP) Request:0x23(YCbCr_420_888) Override:0x23(YCbCr_420_888) Hal-Client-usage:0x3(0|SW_READ_OFTEN) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb40000705fc4f2c0 phy:-1
 01-01 08:29:27.275719 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-APP-PROVIDER]0x2 4080x3072 OUT ImgFormat:0x2201(BAYER10) BufPlanes(strides/sizeInBytes):[ 5120/15728640 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:8 d/s:0x00000001(ARBITRARY) s2:d0:App:RAW10:0|SW_READ_OFTEN AllocImgFormat:0x21(BLOB) AllocBufPlanes(strides/sizeInBytes):[ 15728640/15728640 ] Real:0x25(RAW10) Request:0x25(RAW10) Override:0x25(RAW10) Hal-Client-usage:0x3(0|SW_READ_OFTEN) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb40000705fc4f100 phy:-1
 01-01 08:29:27.275759 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-APP-PROVIDER]0x3 1280x720  OUT ImgFormat:0x32315659(YV12) BufPlanes(strides/sizeInBytes):[ 1280/921600 640/230400 640/263040 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s3:d0:App:YV12:0|SW_READ_OFTEN AllocImgFormat:0x32315659(YV12) AllocBufPlanes(strides/sizeInBytes):[ 1280/921600 640/230400 640/263040 ] Real:0x32315659(YV12) Request:0x32315659(YV12) Override:0x32315659(YV12) Hal-Client-usage:0x3(0|SW_READ_OFTEN) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb40000705fc4ca80 phy:-1
 01-01 08:29:27.275797 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-APP-PROVIDER]0x4 2560x1920 OUT ImgFormat:0x32315659(YV12) BufPlanes(strides/sizeInBytes):[ 2560/4915200 1280/1228800 1280/1232640 ] startOffset:0 bufStep:0 t:0/r:0 maxBuffers:12 d/s:0x08c20000(V0_JFIF|STANDARD_BT601_625|TRANSFER_SMPTE_170M|RANGE_FULL) s4:d0:App:YV12:0|SW_READ_OFTEN AllocImgFormat:0x32315659(YV12) AllocBufPlanes(strides/sizeInBytes):[ 2560/4915200 1280/1228800 1280/1232640 ] Real:0x32315659(YV12) Request:0x32315659(YV12) Override:0x32315659(YV12) Hal-Client-usage:0x3(0|SW_READ_OFTEN) Hal-usage:0x20033(0|SW_READ_OFTEN|SW_WRITE_OFTEN|HW_CAMERA_WRITE) HalStream::(consumer/producer)Usage:0/0x20033 0xb40000705fc4c700 phy:-1
 01-01 08:29:27.275831 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-HAL-POOL    ]0x100000001 4080x3072 ImgFormat:0x2201(BAYER10) BufPlanes(strides/sizeInBytes):[ 5104/15679488 ] startOffset:0 bufStep:0 t:0 maxBufNum:10 minInitBufNum:0 Hal:Image:P1:Fullraw_main1 AllocImgFormat:0x21(BLOB) AllocBufPlanes(strides/sizeInBytes):[ 15679488/15679488 ] Private{exist?0 id:0}
 01-01 08:29:27.275855 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-HAL-POOL    ]0x100000003 1280x976  ImgFormat:0x2205(FG_BAYER10) BufPlanes(strides/sizeInBytes):[ 2400/2342400 ] startOffset:0 bufStep:0 t:0 maxBufNum:12 minInitBufNum:0 Hal:Image:P1:Resizeraw_main1 AllocImgFormat:0x2205(FG_BAYER10) AllocBufPlanes(strides/sizeInBytes):[ 2400/2342400 ] Private{exist?0 id:0}
 01-01 08:29:27.275879 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-HAL-POOL    ]0x100000004 696696x1    ImgFormat:0x21(BLOB) BufPlanes(strides/sizeInBytes):[ 696696/696696 ] startOffset:0 bufStep:0 t:0 maxBufNum:12 minInitBufNum:1 Hal:Image:STT_main1 AllocImgFormat:0x21(BLOB) AllocBufPlanes(strides/sizeInBytes):[ 696696/696696 ] Private{exist?1 id:2}
 01-01 08:29:27.275903 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-HAL-POOL    ]0x100000005  288x512  ImgFormat:0x2400(STA_BYTE) BufPlanes(strides/sizeInBytes):[ 288/147456 ] startOffset:0 bufStep:0 t:0 maxBufNum:7 minInitBufNum:1 Hal:Image:RSSO_main1 AllocImgFormat:0x2400(STA_BYTE) AllocBufPlanes(strides/sizeInBytes):[ 288/147456 ] Private{exist?0 id:0}
 01-01 08:29:27.275927 12029 12029 I MtkCam/ppl_context: [dump]     [IMAGE-HAL-POOL    ]0x100000014  640x488  ImgFormat:0x14(YUY2) BufPlanes(strides/sizeInBytes):[ 1280/624640 ] startOffset:0 bufStep:0 t:0 maxBufNum:5 minInitBufNum:1 Hal:Image:P1FDYuv_main1 AllocImgFormat:0x14(YUY2) AllocBufPlanes(strides/sizeInBytes):[ 1280/624640 ] Private{exist?0 id:0}

2.4.4 Feature && Display Callback size

log 关键字:

prepareIORequest

Log 举例
//7. StreamFeature : feature=0x1008(TPI_YUV+3DNR)
 //8. Preview&&Display Callback: buf(0xb400007a589920d0/1)(1440x1080),tran(0),type(1), tar(disp)
 08-09 02:19:09.064  1056  5261 D MtkCam/StreamingPipe/Pipe: [prepareIORequest]P2S cam 0 MWFrame:#0 MWReq:#0, frame 1-1  master/slave/fd(0/-1/0) ReqNo(1), 
 feature=0x1008(TPI_YUV+3DNR), 
 cycle(33), fps(n/a)=(30/30), ZoomROI((1440.000000x1082.000000)@(0.000000,2.000000)) SFPIOMgr:[sID(0)--IMG(0x0/0),RRZ(0xb400007a589b6670/1),LCS(0xb400007a5898cc70/1),LCSH(0xb400007a589b4810/1),pRSS(0x0/0),cRSS(0x0/0),RSSR2(0x0/0),FYuv(0x0/0),RYuv1(0x0/0),RYuv2(0x0/0),mAIYuv(0x0/0),HalI(0xb4000079a8996c10),AppI(0xb4000079889a5ab8),AppDI(0xb4000079a898ff90),AppOver(0x0)]{path(GEN),halO(0xb40000798898d830),appO(0xb4000079889a7370),Outs--[buf(0xb400007a58994cb0/1)(640x480),tran(0),type(4), tar(fd), prof(0), crop(0.000000,2.000000,1440.000000x1082.000000), flag(0x3)]
 [buf(0xb400007a589920d0/1)(1440x1080),tran(0),type(1), tar(disp), prof(0), crop(0.000000,2.000000,1440.000000x1082.000000), flag(0x3)]
 [buf(0xb400007a58999930/1)(1440x1080),tran(0),type(3), tar(unknown), prof(0),

2.4.5 Camera HAL 出图帧率

log关键字

MtkCam/StreamingPipe/Timer.*Frame timer|connect call

//9. HAL  FPS: [fps24.39/24.39/  5/ 30]
 08-09 02:19:09.090  1056  5256 D MtkCam/StreamingPipe/Timer: [print]Frame timer [#    1/   0][t  25][io   0][tof  0/  0][d  0/  0][mss  0/  0/  0/  0][a 14/  3/  9][tun  0/  0][msf  0/  0][vnr  0/  0/  0][am  0][b  0/  0][tpi(  3/  3)/(  0/  0)/(  0/  0)][vmdp_A  5/  0 vmdp_B  0/  0][h  0/  0/  0][e  0][r  0/  0][w_A  0/  0/  0/  0 w_B  0/  0/  0/  0][x  0][disp  0/  0][async  0/  0][p2sm  0/  0/  0][fps0.00/0.00/  5/ 30]
 08-09 02:19:09.131  1056  5256 D MtkCam/StreamingPipe/Timer: [print]Frame timer [#    2/   0][t  28][io   0][tof  0/  0][d  0/  0][mss  0/  0/  0/  0][a  9/  0/  8][tun  0/  0][msf  0/  0][vnr  0/  0/  0][am  0][b  0/  0][tpi(  7/  6)/(  0/  0)/(  0/  0)][vmdp_A  6/  0 vmdp_B  0/  0][h  0/  0/  0][e  0][r  0/  0][w_A  0/  0/  0/  0 w_B  0/  0/  0/  0][x  0][disp  0/  0][async  0/  0][p2sm  0/  0/  0]
[fps24.39/24.39/  5/ 30]

2.5 Callback AP Path

这个一般需要通过抓取 trace 来分析

1a77c70c6fcfd6bc5d42edfe282534fc.jpeg

拆解表格举例

后置照片预览Sensor size/FPSsensor modeHAL FPSP1 RRZOP1 IMGOP2-MDP Display CallbackP2-MDP Preivew CallbackZSD ON/OFFStreaming FeatureCallback AP Path备注
测试机(4080x3072)@301251440x10884080x30721440x10801440x1080OFFTPI_YUV+3DNRSurfaceTexture-
对比机

三、参考文档

MTK相机功耗优化
【腾讯文档】Camera学习知识库
https://docs.qq.com/doc/DSWZ6dUlNemtUWndv
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

ebe753a388dd14fd271bb72397ccf175.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2045733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt开发】事件与信号/事件过滤器

事件与信号/事件过滤器 事件一、事件的产生二、事件的派发三、事件类和事件类型四、事件的处理 事件与信号事件过滤器 事件 Qt系统的图形化窗口是由事件驱动的。&#xff0c;点击鼠标、按键&#xff0c;改变窗口大小、最小化窗口、关闭窗口等都会产生相应的事件。 QWidget类的所…

shuashuashua

CVE-2023-2130 靶标介绍&#xff1a; 在SourceCodester采购订单管理系统1.0中发现了一项被分类为关键的漏洞。受影响的是组件GET参数处理器的文件/admin/suppliers/view_details.php中的一个未知函数。对参数id的操纵导致了SQL注入。可以远程发起攻击。 通过标靶介绍可以知道…

通过域名和HTTPS上线MSF

使用受信任证书的Meterpreter载荷 现在大多数安全解决方案还会通过分析进出目标机器的流量来进行网络入侵检测。在这种情况下&#xff0c;很可能即使使用编码器绕过了防病毒软件&#xff0c;但有效载荷也会在尝试连接到我们的侦听器时被捕获和拦截。 # 准备工作 首先需要准备…

FPGA开发——UART回环实现之接收模块的设计

一、简介 因为我们本次进行串口回环的实验的对象是FPGA开发板和PC端&#xff0c;所以在接收和发送模块中先编写接收模块&#xff0c;这样可以在后面更好的进行发送模块的验证。&#xff08;其实这里先编写哪个模块&#xff09;都不影响&#xff0c;这里看自己心情&#xff0c;反…

大语言模型微调框架Unsloth:简化模型微调流程,提升模型性能

Unsloth 将 Llama-3、Mistral、Phi-3 和 Gemma 等大型语言模型的微调速度提高了 2 倍&#xff0c;内存使用量减少了 70%&#xff0c;而且准确性不会降低&#xff01; 特点 通过手动派生所有计算繁重的数学步骤和手写 GPU 内核&#xff0c;unsloth 可以在不更改任何硬件的情况…

IMU助力跑步参数评估

近期&#xff0c;中国研究团队开发了一种创新的跑步参数评估方法&#xff0c;巧妙结合了IMU和多模态神经网络技术&#xff0c;旨在深入研究并有效评估跑步时的步态参数。 科研团队采用IMU传感器&#xff0c;将其固定在跑者的脚踝处&#xff0c;以实时监测并记录跑步时脚踝的加速…

如何利用RPA自动化流程机器人优化企业财务流程

随着企业规模的扩大和业务的复杂性增加&#xff0c;财务流程管理成了一个关键而复杂的任务。传统的财务流程往往涉及大量的重复性、繁琐的工作&#xff0c;不仅效率低下&#xff0c;而且容易出错。为了解决这些问题&#xff0c;越来越多的企业开始引入RPA机器人流程自动化来优化…

JAVA集中学习第五周学习记录(二)

系列文章目录 第一章 JAVA集中学习第一周学习记录(一) 第二章 JAVA集中学习第一周项目实践 第三章 JAVA集中学习第一周学习记录(二) 第四章 JAVA集中学习第一周课后习题 第五章 JAVA集中学习第二周学习记录(一) 第六章 JAVA集中学习第二周项目实践 第七章 JAVA集中学习第二周学…

打开Office(word、excel、ppt)显示操作系统当前的配置不能运行此应用程序最全解决方案!

我以前用过分区助手把office从c盘挪到d盘了&#xff0c;从那以后office就用不了了&#xff0c;然后我就删了&#xff08;貌似没删干净&#xff09;。 最近由于有使用word的需求&#xff0c;所以我从学校官网找到正版软件的安装包&#xff0c;按照步骤重新卸载电脑中office残留…

基于Java的民宿管理系统

TOC springboot306基于Java的民宿管理系统 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔记本的广泛…

【Mac】Downie 打开提示试用的解决办法?

前情 我们在使用 Downie 的时候&#xff0c;可能遇到提示试用的问题&#xff0c;如下图所示。 原因 旧版本的 Downie 没有卸载干净导致的。 解决办法 先使用 AppCleaner 卸载掉电脑上的 Downie 旧版本软件&#xff0c;必须使用 AppCleaner 卸载。重新安装 Downie 即可。

DNN代码实战

DNN的原理 神经网络通过学习大量样本的输入与输出特征之间的关系&#xff0c;以拟合出输入与输出之间的方程&#xff0c;学习完成后&#xff0c;只给它输入特征&#xff0c;它便会可以给出输出特征。神经网络可以分为这么几步&#xff1a;划分数据集、训练网络、测试网络、使用…

C++_2_nullptr关键字(3/3)

本节内容有C的NULL在前面打头阵&#xff0c;学起来犹如探囊取物。 先来分析一段代码&#xff0c;本段代码恰好也结合了上节的宏。 #include<iostream> using namespace std; void f(int x) { cout << "f(int x)" << endl; } void f(int* ptr) { …

Android Settings 跳转流程

我们知道在Settings中&#xff0c;各模块之间的Fragment基本都继承了DashboardFragment&#xff0c;当有点击事件时&#xff0c;就会回调DashboardFragment中的onPerferenceTreeClick()方法。 在onPreferenceTreeClick()方法中可以根据preference的key做事件拦截&#xff0c;如…

Linux线程实用场景

文章目录 前言生产者消费者模型1.基于阻塞队列特点实现使用 2.基于环形队列和信号量实现使用 读者写者模型实现思想 线程池实现 前言 生产者消费者模型和读者写者模型这些模型是用于在线程间协调和管理资源访问的模式, 我们在之前已经理解了线程的概念以及同步与互斥, 现在我们…

无人机之消费级和工业级,两者区别分析

消费级无人机和工业级无人机在多个方面存在显著差异&#xff0c;这些差异主要体现在搭载设备、应用领域、针对用户、使用条件、性能要求、营销模式以及价格等方面。以下是对两者区别的详细分析&#xff1a; 1. 搭载设备 消费级无人机&#xff1a;主要搭载相机&#xff0c;并配…

C++ | Leetcode C++题解之第337题打家劫舍III

题目&#xff1a; 题解&#xff1a; struct SubtreeStatus {int selected;int notSelected; };class Solution { public:SubtreeStatus dfs(TreeNode* node) {if (!node) {return {0, 0};}auto l dfs(node->left);auto r dfs(node->right);int selected node->val…

Windows禁止应用联网

转自两种方法阻止电脑上的软件彻底联网&#xff01; - 知乎 (zhihu.com) 但为了稳妥&#xff0c;自己还是稍微记录一下 1、创建bat脚本文件 创建文本-将下面的代码填入-保存为.bat文件 Echo Off SetLocal:beginecho: echo ****** 禁止文件夹联网 ****** echo:set /p folder…

Qt报“libpng warning: iCCP: known incorrect sRGB profile”问题解决方法

Qt开发应用程序&#xff0c;界面加载图片或按钮加载图标时&#xff0c;会遇到编译器报“libpng warning: iCCP: known incorrect sRGB profile”问题&#xff0c;原因为色彩配置问题&#xff0c;需要修正图像的ICC配置文件&#xff0c;将其转换成sRGB类型。不同操作系统解决方法…

停车场拓扑(parking lot topology)中的 bbr 与 aimd

bbr 讨论组有个有趣的问题&#xff1a;[bbr-dev] Parking lot topology 我此前也意识到这个问题(参见 pacing 之对错)&#xff0c;但几乎所有 cc 的建模都基于 dumbbell topology&#xff0c;parking lot topology 因其太 “不理想”&#xff0c;“不规则” 而无人讨论&#x…