138***735
初始化开始,到中断执行的日志如下:
0000019 03-27#11:29:25.619 087 00010 Gh3x2xDemoInit : Democode Version : GH(M)3X2X_DEMO_v1.6_AC_v0.5(build:Mar 27 2026_11:27:16)
0000020 03-27#11:29:25.619 088 00010 Gh3x2xDemoInit : DrvLib Version : v4.3.0.0 (build:Mar 26 2026_17:30:43)
0000021 03-27#11:29:25.619 089 00010 Gh3x2xDemoInit : Protocol Version : Health_Uprotocol_v0.4
0000022 03-27#11:29:25.619 090 00010 Gh3x2xDemoInit : Config Version : Gh3x2x_Vir~S: ! =app_ma
0000023 03-27#11:29:25.619 095 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000024 03-27#11:29:25.619 096 00020 Gh3x2xDemoInit : Algo Version : GH_HR_bas_pv_v1.0.2.0_nc_fe7a5e84_baf7fe75
dsp_pv_v1.3.0_30234f22
dlCom_bas2med_pv_v1.0
0000025 03-27#11:29:25.619 097 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000026 03-27#11:29:25.619 098 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000027 03-27#11:29:25.619 099 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000028 03-27#11:29:25.619 100 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000029 03-27#11:29:25.619 101 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000030 03-27#11:29:25.619 102 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000031 03-27#11:29:25.619 103 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000032 03-27#11:29:25.619 104 00020 Gh3x2xDemoInit : Algo Version : GH_NADT_pre_pv_v1.0.2.0_nc_548d894d
dsp_pv_v1.3.0_30234f22
0000033 03-27#11:29:25.619 105 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000034 03-27#11:29:25.619 106 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000035 03-27#11:29:25.619 107 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000036 03-27#11:29:25.619 108 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000037 03-27#11:29:25.619 109 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000038 03-27#11:29:25.619 110 00020 Gh3x2xDemoInit : Algo Version : GH_NADT_pre_pv_v1.0.2.0_nc_548d894d
dsp_pv_v1.3.0_30234f22
0000039 03-27#11:29:25.619 111 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000040 03-27#11:29:25.619 112 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000041 03-27#11:29:25.619 113 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000042 03-27#11:29:25.619 114 00020 Gh3x2xDemoInit : Algo Version : no_ver
0000043 03-27#11:29:25.619 115 00020 [LOG](104)[40013400]clk=7, miso=33, mosi=32,cs=34
0000044 03-27#11:29:25.619 116 00020 GH3X2X_RegisterSpiOperationFunc
0000045 03-27#11:29:25.619 117 00020 GH3X2X_RegisterHookFunc
0000046 03-27#11:29:25.619 118 00020 GH3X2X_RegisterDelayUsCallback
0000047 03-27#11:29:25.632 119 00020 GH3X2X_SoftReset
0000048 03-27#11:29:25.632 120 00020 GH3X2X_Init : Lib Version : v4.3.0.0 (build:Mar 26 2026_17:30:43)
0000049 CheckSum Error: 0x7e^0x23^0x79 != 0x7e
0000050 03-27#11:29:25.632 130 00030 GH3X2X_ExitLowPowerMode
0000051 03-27#11:29:25.632 131 00030 [GH3X2X_WakeUpConfirm] Chip wake up fail!!! Try wake up again.
~
0000052 03-27#11:29:25.632 133 00030 slot_time0 reg = 2048
0000053 03-27#11:29:25.632 134 00030 slot_time0 reg = 63487
0000054 03-27#11:29:25.632 135 00030 [LOG](538)----------GH3X2X_CommunicateConfirm test finished
0000055 03-27#11:29:25.632 136 00030 GH3X2X_LoadNewRegConfigArr
0000056 03-27#11:29:25.660 140 00040 [SetFunctionChnlNum] function id: 0x2, ChnlNum: 0
0000057 03-27#11:29:25.660 141 00040 [SetFunctionChnlNum] function id: 0x4, ChnlNum: 0
0000058 03-27#11:29:25.660 142 00040 [SetFunctionChnlNum] function id: 0x40, ChnlNum: 0
0000059 03-27#11:29:25.660 143 00040 [SetFunctionChnlNum] function id: 0x200, ChnlNum: 0
0000060 03-27#11:29:25.660 144 00040 [SetFunctionChnlNum] function id: 0x8000, ChnlNum: 0
0000061 03-27#11:29:25.660 145 00040 [SetFunctionChnlNum] function id: 0x1, ChnlNum: 0
0000062 03-27#11:29:25.660 146 00040 [SetFunctionChnlNum] function id: 0x1, ChnlNum: 1
0000063 03-27#11:29:25.660 147 00040 [GhGetFunctionIdViaVirReg]:Got valid function, ID = 0x1
0000064 03-27#11:29:25.660 148 00040 [SetFunctionChnlMap] function id: 0x1, SlotAdc: 0
0000065 03-27#11:29:25.660 149 00040 [SetFunctionChnlMap] function id: 0x1, SlotAdc: 20
0000066 03-27#11:29:25.660 150 00040 [SetFunctionChnlNum] function id: 0x2, ChnlNum: 4
0000067 03-27#11:29:25.660 151 00040 [GhGetFunctionIdViaVirReg]:Got valid function, ID = 0x2
0000068 03-27#11:29:25.660 152 00040 [SetFunctionChnlMap] function id: 0x2, SlotAdc: 1
0000069 03-27#11:29:25.660 153 00040 [SetFunctionChnlMap] function id: 0x2, SlotAdc: 0
0000070 03-27#11:29:25.660 154 00040 [SetFunctionChnlMap] function id: 0x2, SlotAdc: 3
0000071 03-27#11:29:25.660 155 00040 [SetFunctionChnlMap] function id: 0x2, SlotAdc: 2
0000072 03-27#11:29:25.660 156 00040 [SetFunctionChnlNum] function id: 0x40, ChnlNum: 2
0000073 03-27#11:29:25.660 157 00040 [GhGetFunctionIdViaVirReg]:Got valid function, ID = 0x40
0000074 03-27#11:29:25.660 164 00040 [SetFunctionChnlMap] function id: 0x40, SlotAdc: 8
0000075 03-27#11:29:25.660 165 00050 [SetFunctionChnlMap] function id: 0x40, SlotAdc: 4
0000076 03-27#11:29:25.660 166 00050 [SetFunctionChnlNum] function id: 0x200, ChnlNum: 3
0000077 03-27#11:29:25.660 167 00050 [GhGetFunctionIdViaVirReg]:Got valid function, ID = 0x200
0000078 03-27#11:29:25.660 168 00050 [SetFunctionChnlMap] function id: 0x200, SlotAdc: 12
0000079 03-27#11:29:25.660 169 00050 [SetFunctionChnlMap] function id: 0x200, SlotAdc: 0
0000080 03-27#11:29:25.660 170 00050 [SetFunctionChnlMap] function id: 0x200, SlotAdc: 0
0000081 03-27#11:29:25.660 171 00050 [SetFunctionChnlMap] function id: 0x200, SlotAdc: 16
0000082 03-27#11:29:25.660 172 00050 GH3X2X_WriteFunctionConfigWithVirtualReg
0000083 03-27#11:29:25.660 173 00050 GH3X2X_WriteFunctionConfigWithVirtualReg
0000084 03-27#11:29:25.660 174 00050 GH3X2X_WriteFunctionConfigWithVirtualReg
0000085 03-27#11:29:25.660 175 00050 GH3X2X_WriteFunctionConfigWithVirtualReg
0000086 03-27#11:29:25.660 176 00050 [GH3X2X_WriteVirtualReg]: unGhFuncSupportedAtCurCfg = 0x243.
0000087 03-27#11:29:25.660 177 00050 [GH3x2xSlotTimeInfo]:CfgIndex[0]:Slot time = 370
0000088 03-27#11:29:25.660 178 00050 [GH3x2xSlotTimeInfo]:CfgIndex[1]:Slot time = 842
0000089 03-27#11:29:25.660 179 00050 [GH3x2xSlotTimeInfo]:CfgIndex[2]:Slot time = 842
0000090 03-27#11:29:25.660 180 00050 [GH3x2xSlotTimeInfo]:CfgIndex[3]:Slot time = 232
0000091 03-27#11:29:25.660 181 00050 [GH3x2xSlotTimeInfo]:CfgIndex[4]:Slot time = 106
0000092 03-27#11:29:25.660 182 00050 [GH3x2xSlotTimeInfo]:CfgIndex[5]:Slot time = 232
0000093 03-27#11:29:25.660 183 00050 [GH3X2X_AlgoDeinit]:Function(function id = 0) didn't init!
0000094 03-27#11:29:25.660 184 00050 [GH3X2X_AlgoDeinit]:Function(function id = 1) didn't init!
0000095 03-27#11:29:25.660 193 00060 [GH3X2X_AlgoDeinit]:Function(function id = 2) didn't init!
0000096 03-27#11:29:25.660 194 00060 [GH3X2X_AlgoDeinit]:Function(function id = 3) didn't init!
0000097 03-27#11:29:25.660 195 00060 [GH3X2X_AlgoDeinit]:Function(function id = 4) didn't init!
0000098 03-27#11:29:25.660 196 00060 [GH3X2X_AlgoDeinit]:Function(function id = 5) didn't init!
0000099 03-27#11:29:25.660 197 00060 [GH3X2X_AlgoDeinit]:Function(function id = 6) didn't init!
0000100 03-27#11:29:25.660 198 00060 [GH3X2X_AlgoDeinit]:Function(function id = 7) didn't init!
0000101 03-27#11:29:25.660 199 00060 [GH3X2X_AlgoDeinit]:Function(function id = 8) didn't init!
0000102 03-27#11:29:25.660 200 00060 [GH3X2X_AlgoDeinit]:Function(function id = 9) didn't init!
0000103 03-27#11:29:25.660 201 00060 [GH3X2X_AlgoDeinit]:Function(function id = 10) didn't init!
0000104 03-27#11:29:25.660 202 00060 [GH3X2X_AlgoDeinit]:Function(function id = 11) didn't init!
0000105 03-27#11:29:25.660 203 00060 [GH3X2X_AlgoDeinit]:Function(function id = 12) didn't init!
0000106 03-27#11:29:25.660 204 00060 [GH3X2X_AlgoDeinit]:Function(function id = 13) didn't init!
0000107 03-27#11:29:25.660 205 00060 [GH3X2X_AlgoDeinit]:Function(function id = 14) didn't init!
0000108 03-27#11:29:25.660 206 00060 [GH3X2X_AlgoDeinit]:Function(function id = 15) didn't init!
0000109 03-27#11:29:25.660 207 00060 [GH3X2X_AlgoDeinit]:Function(function id = 16) didn't init!
0000110 03-27#11:29:25.660 208 00060 [GH3X2X_AlgoDeinit]:Function(function id = 17) didn't init!
0000111 03-27#11:29:25.660 209 00060 [GH3X2X_AlgoDeinit]:Function(function id = 18) didn't init!
0000112 03-27#11:29:25.660 210 00060 [GH3X2X_AlgoDeinit]:Function(function id = 19) didn't init!
0000113 03-27#11:29:25.660 211 00060 Algorithm mem Config complete!Size:4080
0000114 03-27#11:29:25.660 212 00060 Algorithm mem init start...
0000115 03-27#11:29:25.660 213 00060 Algorithm mem init start...
0000116 03-27#11:29:25.660 214 00060 Algorithm mem init success.Addr:0x213380,Size:408~?
0000117 03-27#11:29:25.678 220 00070 Algorithm mem size = 4080
0000118 03-27#11:29:25.678 221 00070 [Gh3x2xDemoStopSampling] unFuncMode = 0xffffffff
0000119 03-27#11:29:25.678 222 00070 [Gh3x2xDemoSamplingControl]:config has no target function!!!config function = 0x00000243,unFuncMode = 0xffffffff
0000120 03-27#11:29:25.678 223 00070 [SlotEnRegSet] set slot en: 0x0
0000121 03-27#11:29:25.678 224 00070 Current uchSlotEn= 0x0
0000122 03-27#11:29:25.678 225 00070 Current g_unDemoFuncMode= 0x0
0000123 03-27#11:29:25.678 226 00070 [Gh3x2xDemoInterruptProcess]:gh3x2x is not init!!!
0000124 03-27#11:29:25.678 227 00070 enterLP=2852
0000125 03-27#11:29:25.678 228 00070 GH3X2X_EnterLowPowerMode
0000126 03-27#11:29:25.678 229 00070 save pmu fifo module status!
0000127 03-27#11:29:25.678 230 00070 GH3X2X_EnterLowPowerMode end
0000128 03-27#11:29:25.678 231 00070 [GH3X2X_AlgoDeinit]:Function(function id = 0) didn't init!
0000129 03-27#11:29:25.678 232 00070 [GH3X2X_AlgoDeinit]:Function(function id = 1) didn't init!
0000130 03-27#11:29:25.678 233 00070 [GH3X2X_AlgoDeinit]:Function(function id = 2) didn't init!
0000131 03-27#11:29:25.678 234 00070 [GH3X2X_AlgoDeinit]:Function(function id = 3) didn't init!
0000132 03-27#11:29:25.678 235 00070 [GH3X2X_AlgoDeinit]:Function(function id = 4) didn't init!
0000133 03-27#11:29:25.678 236 00070 [GH3X2X_AlgoDeinit]:Function(function id = 5) didn't init!
0000134 03-27#11:29:25.678 237 00070 [GH3X2X_AlgoDeinit]:Function(function id = 6) didn't init!
0000135 03-27#11:29:25.678 242 00080 [GH3X2X_AlgoDeinit]:Function(function id = 7) didn't init!
0000136 03-27#11:29:25.678 243 00080 [GH3X2X_AlgoDeinit]:Function(function id = 8) didn't init!
0000137 03-27#11:29:25.678 244 00080 [GH3X2X_AlgoDeinit]:Function(function id = 9) didn't init!
0000138 03-27#11:29:25.678 245 00080 [GH3X2X_AlgoDeinit]:Function(function id = 10) didn't init!
0000139 03-27#11:29:25.678 246 00080 [GH3X2X_AlgoDeinit]:Function(function id = 11) didn't init!
0000140 03-27#11:29:25.678 247 00080 [GH3X2X_AlgoDeinit]:Function(function id = 12) didn't init!
0000141 03-27#11:29:25.678 248 00080 [GH3X2X_AlgoDeinit]:Function(function id = 13) didn't init!
0000142 03-27#11:29:25.678 249 00080 [GH3X2X_AlgoDeinit]:Function(function id = 14) didn't init!
0000143 03-27#11:29:25.678 250 00080 [GH3X2X_AlgoDeinit]:Function(function id = 15) didn't init!
0000144 03-27#11:29:25.678 251 00080 [GH3X2X_AlgoDeinit]:Function(function id = 16) didn't init!
0000145 03-27#11:29:25.678 252 00080 [GH3X2X_AlgoDeinit]:Function(function id = 17) didn't init!
0000146 03-27#11:29:25.678 253 00080 [GH3X2X_AlgoDeinit]:Function(function id = 18) didn't init!
0000147 03-27#11:29:25.678 254 00080 [GH3X2X_AlgoDeinit]:Function(function id = 19) didn't init!
0000148 03-27#11:29:25.678 255 00080 Gh3x2xGetConfigVersion : Config Version : 2d04dea0
0000149 03-27#11:29:25.678 000 00080 Gh3x2xDemoInit:init success
0000150 03-27#11:29:25.678 001 00080 enterLP=1607
0000151 03-27#11:29:25.678 002 00080 GH3X2X_EnterLowPowerMode
0000152 03-27#11:29:25.678 003 00080 GH3X2X_EnterLowPowerMode end
0000153 03-27#11:29:25.678 004 00080 [LOG](181)[IRQ]init-Pin=35
0000154 03-27#11:29:25.678 005 00080 GH3X2X_UprotocolPacketMaxLenConfig
0000155 03-27#11:29:25.678 006 00080 GH3X2X_RegisterGetFirmwareVersionFunc
0000156 03-27#11:29:25.678 007 00080 [LOG](132)Gh3x2xDemoInit=0
0000157 03-27#11:29:25.685 008 00080 GH3x2xHrAlgoInit
0000158 03-27#11:29:25.685 009 00080 hba algorithm version : GH_HR_bas_pv_v1.0.2.0_nc_fe7a5e84_baf7fe75
dsp_pv_v1.3.0_30234f22
dlCom_bas2med_pv_v1.0.0_cf960
0000159 03-27#11:29:25.685 010 00080 hba algorithm legal chnl num : 4
0000160 03-27#11:29:25.685 015 00080 [goodix_hba_init_func]:params = 0,25,4,9,20,202
0000161 03-27#11:29:25.685 016 00090 goodix_hba_config_get_version=pv_v1.1.0
0000162 03-27#11:29:25.685 017 00090 [goodix_hba_init_func]:cfg_instance = 0x2226f4, cfg_size:24, interface_ver:pv_v1.1.0
0000163 03-27#11:29:25.685 018 00090 [GH3x2xHrAlgoInit]GH3X2X_HbaInit success!!
0000164 03-27#11:29:25.685 019 00090 [GH3X2X_AlgoInit]:Function(function id = 1) init success!
0000165 03-27#11:29:25.685 020 00090 [Gh3x2xDemoStartSampling] unFuncMode = 0x2
0000166 03-27#11:29:25.685 021 00090 [GH3x2xCalFunctionSlotBit] function id: 0x1, slot bit: 0x20
0000167 03-27#11:29:25.685 022 00090 [GH3x2xCalFunctionSlotBit] function id: 0x2, slot bit: 0x1
0000168 03-27#11:29:25.685 023 00090 [GH3x2xCalFunctionSlotBit] function id: 0x4, slot bit: 0x0
0000169 03-27#11:29:25.685 024 00090 [GH3x2xCalFunctionSlotBit] function id: 0x8, slot bit: 0x0
0000170 03-27#11:29:25.685 025 00090 [GH3x2xCalFunctionSlotBit] function id: 0x40, slot bit: 0x6
0000171 03-27#11:29:25.724 026 00090 [GH3x2xCalFunctionSlotBit] function id: 0x200, slot bit: 0x19
0000172 03-27#11:29:25.724 027 00090 [GH3x2xCalFunctionSlotBit] function id: 0x400, slot bit: 0x0
0000173 03-27#11:29:25.724 028 00090 [GH3x2xCalFunctionSlotBit] function id: 0x800, slot bit: 0x0
0000174 03-27#11:29:25.724 029 00090 [GH3x2xCalFunctionSlotBit] function id: 0x1000, slot bit: 0x0
0000175 03-27#11:29:25.724 030 00090 [GH3x2xCalFunctionSlotBit] function id: 0x2000, slot bit: 0x0
0000176 03-27#11:29:25.724 031 00090 [GH3x2xCalFunctionSlotBit] function id: 0x4000, slot bit: 0x0
0000177 03-27#11:29:25.724 032 00090 [GH3x2xCalFunctionSlotBit] function id: 0x8000, slot bit: 0x0
0000178 03-27#11:29:25.724 033 00090 [GH3x2xCalFunctionSlotBit] function id: 0x2, slot bit: 0x1
0000179 03-27#11:29:25.724 034 00090 GH3X2X_StartSampling
0000180 03-27#11:29:25.724 035 00090 GH3X2X_ExitLowPowerMode
0000181 03-27#11:29:25.724 036 00090 recovery pmu fifo module status!
0000182 03-27#11:29:25.724 041 00100 [FunctionStart] function id: 0x2, start result: 0
0000183 03-27#11:29:25.724 042 00100 [SlotEnRegSet] set slot en: 0x1
0000184 03-27#11:29:25.724 043 00100 Current uchSlotEn= 0x1
0000185 03-27#11:29:25.724 044 00100 Current g_unDemoFuncMode= 0x2
0000186 03-27#11:29:25.724 045 00100 Step 1
0000187 03-27#11:29:25.724 046 00100 GH3X2X_GetIrqStatus
0000188 03-27#11:29:25.724 047 00100 Step 2
0000189 03-27#11:29:25.724 048 00100 Step 3
0000190 03-27#11:29:25.724 049 00100 usFifoByteNum = 0
0000191 03-27#11:29:25.724 050 00100 Step 3-2
0000192 03-27#11:29:25.724 051 00100 Step 3-3
0000193 03-27#11:29:25.724 052 00100 Step 5
0000194 03-27#11:29:25.724 053 00100 Step 6
0000195 03-27#11:29:25.724 054 00100 enterLP=2107
0000196 03-27#11:29:25.724 055 00100 GH3X2X_EnterLowPowerMode
0000197 03-27#11:29:25.724 056 00100 GH3X2X_EnterLowPowerMode end
0000198 03-27#11:29:25.724 057 00100 Step 7
0000199 03-27#11:29:25.724 058 00100 Step 8
0000200 03-27#11:29:25.724 059 00100 [GetFrameNum]FunctionID: 2 FrameNum: 0, GsensorStep: 0.000
0000201 03-27#11:29:25.724 060 00100 Step 9
0000202 03-27#11:29:25.724 061 00100 Gh3x2xDemoInterruptProcess end
0000203 03-27#11:29:25.724 062 00100 enterLP=2852
0000204 03-27#11:29:25.724 063 00100 GH3X2X_EnterLowPowerMode
0000205 03-27#11:29:25.724 064 00100 GH3X2X_EnterLowPowerMode end
0000206 03-27#11:29:25.724 065 00100 [LOG](146)MSG_TYPE_ECG_IRQ_EVENT
0000207 03-27#11:29:25.724 066 00100 InterruptProcess: plese check hal_gh3x2x_int_handler_call_back is called or not !!!
0000208 03-27#11:29:25.724 067 00100 InterruptProcess:invalid call, do not process.
0000209 03-27#11:29:25.724 068 00100 [LOG](148)MSG_TYPE_ECG_IRQ_EVENT_end
0000210 03-27#11:29:27.323 121 01730 [LOG](145)GPIO31_Handler
0000211 03-27#11:29:27.359 122 01730 [LOG](146)MSG_TYPE_ECG_IRQ_EVENT
0000212 03-27#11:29:27.359 123 01730 Step 1
0000213 03-27#11:29:27.359 124 01730 GH3X2X_GetIrqStatus
0000214 03-27#11:29:27.359 125 01730 GH3X2X_ExitLowPowerMode
0000215 03-27#11:29:27.359 126 01730 [LOG](145)GPIO31_Handler
0000216 03-27#11:29:27.359 127 01730 Step 2
0000217 03-27#11:29:27.359 128 01730 Step 3
0000218 03-27#11:29:27.359 129 01730 usFifoByteNum = 640
0000219 03-27#11:29:27.359 130 01730 Step 3-2
0000220 03-27#11:29:27.359 131 01730 Step 3-3
0000221 03-27#11:29:27.359 132 01730 Step 3-3 usFifoByteNum=640
0000222 03-27#11:29:27.359 133 01730 Step 3-3 readRet=0, [0020dbbc]len=640
0000223 03-27#11:29:27.359 134 01730 Step 3-4
0000224 03-27#11:29:27.359 135 01730 Step 5
0000225 03-27#11:29:27.359 136 01740 Step 6
0000226 03-27#11:29:27.359 137 01740 enterLP=2107
0000227 03-27#11:29:27.359 138 01740 GH3X2X_EnterLowPowerMode
0000228 03-27#11:29:27.359 139 01740 GH3X2X_EnterLowPowerMode end
0000229 03-27#11:29:27.359 140 01740 Step 7
0000230 03-27#11:29:27.359 141 01740 Step 8
0000231 03-27#11:29:27.359 142 01740 [GetFrameNum]FunctionID: 2 FrameNum: 2, GsensorStep: 0.000
0000232 03-27#11:29:27.359 143 01740 [GH3x2xHandleFrameData]got one frame,funcID = 2
0000233 03-27#11:29:27.359 144 01740 [GetFrameData] function id: 0x2, rawdata0 = 9509520, rawdata1 = 9594892
0000234 03-27#11:29:27.359 145 01740 [GetFrameData] TimeStamp = 0
0000235 03-27#11:29:27.359 146 01740 [GH3x2xHrAlgoExe]ppg_rawdata = 9509520, enable_flg[0] = 0x80, [1] = 0x0
0000236 03-27#11:29:27.359 147 01740 [GH3x2xHrAlgoExe]ppg_rawdata = 9594892, enable_flg[0] = 0xc0, [1] = 0x0
0000237 03-27#11:29:27.359 148 01740 [GH3x2xHrAlgoExe]ppg_rawdata = 9498310, enable_flg[0] = 0xe0, [1] = 0x0
0000238 03-27#11:29:27.359 149 01740 [GH3x2xHrAlgoExe]ppg_rawdata = 9674454, enable_flg[0] = 0xf0, [1] = 0x0
0000239 03-27#11:29:27.359 150 01740 [GH3x2xHandleFrameData]got one frame,funcID = 2
0000240 03-27#11:29:27.359 151 01740 [GetFrameData] function id: 0x2, rawdata0 = 9494668, rawdata1 = 9580586
0000241 03-27#11:29:27.359 152 01740 [GetFrameData] TimeStamp = 1
0000242 03-27#11:29:27.359 153 01740 [GH3x2xHrAlgoExe]ppg_rawdata = 9494668, enable_flg[0] = 0x80, [1] = 0x0
0000243 03-27#11:29:27.359 154 01740 [GH3x2xHrAlgoExe]ppg_rawdata = 9580586, enable_flg[0] = 0xc0, [1] = 0x0
0000244 03-27#11:29:27.359 155 01740 [GH3x2xHrAlgoExe]ppg_rawdata = 9483534, enable_flg[0] = 0xe0, [1] = 0x0
0000245 03-27#11:29:27.359 156 01740 [GH3x2xHrAlgoExe]ppg_rawdata = 9662034, enable_flg[0] = 0xf0, [1] = 0x0
0000246 03-27#11:29:27.359 157 01740 Step 9
0000247 03-27#11:29:27.359 158 01740 Gh3x2xDemoInterruptProcess end
0000248 03-27#11:29:27.359 159 01740 [LOG](148)MSG_TYPE_ECG_IRQ_EVENT_end
0000249 03-27#11:29:27.359 160 01750 [LOG](146)MSG_TYPE_ECG_IRQ_EVENT
0000250 03-27#11:29:27.359 161 01750 Step 1
0000251 03-27#11:29:27.359 162 01750 GH3X2X_GetIrqStatus
0000252 03-27#11:29:27.359 163 01750 GH3X2X_ExitLowPowerMode
0000253 03-27#11:29:27.359 164 01750 Step 2
0000254 03-27#11:29:27.359 165 01750 Step 3
0000255 03-27#11:29:27.359 166 01750 Step 5
0000256 03-27#11:29:27.359 167 01750 Step 6
0000257 03-27#11:29:27.359 168 01750 enterLP=2107
0000258 03-27#11:29:27.359 169 01750 GH3X2X_EnterLowPowerMode
0000259 03-27#11:29:27.359 170 01750 GH3X2X_EnterLowPowerMode end
0000260 03-27#11:29:27.359 171 01750 Step 7
0000261 03-27#11:29:27.359 172 01750 Step 9
0000262 03-27#11:29:27.359 173 01750 Gh3x2xDemoInterruptProcess end
0000263 03-27#11:29:27.359 174 01750 [LOG](148)MSG_TYPE_ECG_IRQ_EVENT_end
0000264 03-27#11:29:28.948 175 03320 [LOG](145)GPIO31_Handler
0000265 03-27#11:29:28.948 176 03320 [LOG](146)MSG_TYPE_ECG_IRQ_EVENT
0000266 03-27#11:29:28.948 177 03320 Step 1
0000267 03-27#11:29:28.948 178 03320 GH3X2X_GetIrqStatus
0000268 03-27#11:29:28.948 179 03320 GH3X2X_ExitLowPowerMode
0000269 03-27#11:29:28.948 180 03320 [LOG](145)GPIO31_Handler
0000270 03-27#11:29:28.948 181 03320 Step 2
0000271 03-27#11:29:28.948 182 03320 Step 3
0000272 03-27#11:29:28.948 183 03320 usFifoByteNum = 640
0000273 03-27#11:29:28.948 184 03320 Step 3-2
0000274 03-27#11:29:28.948 185 03320 Step 3-3
0000275 03-27#11:29:28.948 186 03320 Step 3-3 usFifoByteNum=640
0000276 03-27#11:29:28.948 187 03320 Step 3-3 readRet=0, [0020dbbc]len=640
0000277 03-27#11:29:28.948 188 03320 Step 3-4
0000278 03-27#11:29:28.948 189 03320 Step 5
0000279 03-27#11:29:28.948 190 03320 Step 6
0000280 03-27#11:29:28.948 191 03320 enterLP=2107
0000281 03-27#11:29:28.948 192 03320 GH3X2X_EnterLowPowerMode
0000282 03-27#11:29:28.948 193 03320 GH3X2X_EnterLowPowerMode end
0000283 03-27#11:29:28.948 194 03330 Step 7
0000284 03-27#11:29:28.948 195 03330 Step 8
0000285 03-27#11:29:28.948 196 03330 [GetFrameNum]FunctionID: 2 FrameNum: 2, GsensorStep: 0.000
0000286 03-27#11:29:28.948 197 03330 [GH3x2xHandleFrameData]got one frame,funcID = 2
0000287 03-27#11:29:28.948 198 03330 [GetFrameData] function id: 0x2, rawdata0 = 15493297, rawdata1 = 11984693
0000288 03-27#11:29:28.948 199 03330 [GetFrameData] TimeStamp = 2
0000289 03-27#11:29:28.948 200 03330 [GH3x2xHrAlgoExe]ppg_rawdata = 15493297, enable_flg[0] = 0x80, [1] = 0x0
0000290 03-27#11:29:28.948 201 03330 [GH3x2xHrAlgoExe]ppg_rawdata = 11984693, enable_flg[0] = 0xc0, [1] = 0x0
0000291 03-27#11:29:28.948 202 03330 [GH3x2xHrAlgoExe]ppg_rawdata = 11707981, enable_flg[0] = 0xe0, [1] = 0x0
0000292 03-27#11:29:28.948 203 03330 [GH3x2xHrAlgoExe]ppg_rawdata = 12243811, enable_flg[0] = 0xf0, [1] = 0x0
0000293 03-27#11:29:28.948 204 03330 [GH3x2xHandleFrameData]got one frame,funcID = 2
0000294 03-27#11:29:28.948 205 03330 [GetFrameData] function id: 0x2, rawdata0 = 15511665, rawdata1 = 11987344
0000295 03-27#11:29:28.948 206 03330 [GetFrameData] TimeStamp = 3
0000296 03-27#11:29:28.948 207 03330 [GH3x2xHrAlgoExe]ppg_rawdata = 15511665, enable_flg[0] = 0x80, [1] = 0x0
0000297 03-27#11:29:28.948 208 03330 [GH3x2xHrAlgoExe]ppg_rawdata = 11987344, enable_flg[0] = 0xc0, [1] = 0x0
0000298 03-27#11:29:28.948 209 03330 [GH3x2xHrAlgoExe]ppg_rawdata = 11710011, enable_flg[0] = 0xe0, [1] = 0x0
0000299 03-27#11:29:28.948 210 03330 [GH3x2xHrAlgoExe]ppg_rawdata = 12246934, enable_flg[0] = 0xf0, [1] = 0x0
0000300 03-27#11:29:28.948 211 03330 Step 9
0000301 03-27#11:29:28.948 212 03330 Gh3x2xDemoInterruptProcess end
0000302 03-27#11:29:28.948 213 03330 [LOG](148)MSG_TYPE_ECG_IRQ_EVENT_end
che****com

Hi,
从这段日志看,问题不在“FIFO 没有数据”,也不在“HR 算法没初始化”,而在“FIFO 数据没有被正确组帧成 HR frame”。你的现象里最关键的一点是:
HR 算法已经初始化成功,参数是 fs=25、valid_ch_num=4、earliest_output_time=9、latest_output_time=20,可见算法侧是正常启动的。对应代码在 gh3x2x_demo_algo_call_hr.c 和 goodix_hba_config.c
但实际驱动在组帧时只算出了 日志里的 FrameNum: 2 正是由 gh_drv_control.c 这段逻辑算出来的,并在 gh_drv_control.c打印。
4.这意味着 640 字节的数据量本身是正常的,但其中绝大多数 tag 没有被当前 HR 通道映射识别成“完整的一帧”。于是算法虽然被调用了,但每 1.5 秒只真正吃进去 2 帧,等效输入速率大约只有 1.25Hz,远低于配置的 25Hz,所以就会表现为“很久不出值”或者偶发吐一个 37。
建议看下你的配置参数是否HR的通道映射不对?
打开微信,使用“扫一扫”即可关注