From c98c322b6f31da2411f8cfc580fa4460775e2c61 Mon Sep 17 00:00:00 2001 From: sunbeam Date: Mon, 18 Mar 2024 10:02:21 +0800 Subject: [PATCH] 27 OK --- .../QualityReport(ECU_APP,DefaultBuild).txt | 97 +++++++++++++++++-- ECU_APP/diagnose/Dcm.c | 4 +- ECU_APP/diagnose/Dcm_App.c | 49 ++++++---- ECU_APP/diagnose/Dcm_App.h | 4 +- ECU_APP/diagnose/Dcm_DID_Cfg.h | 8 +- 5 files changed, 124 insertions(+), 38 deletions(-) diff --git a/ECU_APP/QualityReport(ECU_APP,DefaultBuild).txt b/ECU_APP/QualityReport(ECU_APP,DefaultBuild).txt index acad90b..de57ed1 100644 --- a/ECU_APP/QualityReport(ECU_APP,DefaultBuild).txt +++ b/ECU_APP/QualityReport(ECU_APP,DefaultBuild).txt @@ -1,8 +1,62 @@ QualityReport -2024年3月18日 0:23:52 +2024年3月18日 9:34:17 ------ Start build(ECU_APP, DefaultBuild) ------ -C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe diagnose\extern.c -cpu=S3 -obj_path=DefaultBuild "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BBG.DVF" -g -g_line -I diagnose\DTC -I diagnose\CanTrcv -I sys -I . -I rscan_driver -I diagnose -I DataFlash -I CanNw -I diagnose\CanTp -I diagnose\CanIf -I user -D DEBUG1 -c -msg_lang=english +C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe rscan_driver\r_rl78_can_irq.c r_main.c r_cg_timer_user.c CanNw\CanNw.c CanNw\CanNwConfig.c diagnose\Dcm_App.c diagnose\Dcm_Cfg.c diagnose\Dcm_DID_Cfg.c diagnose\extern.c diagnose\DTC\DCM_DTC.c diagnose\Dcm.c user\appTask.c user\can_user.c -cpu=S3 -obj_path=DefaultBuild "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BBG.DVF" -g -g_line -I diagnose\DTC -I diagnose\CanTrcv -I sys -I . -I rscan_driver -I diagnose -I DataFlash -I CanNw -I diagnose\CanTp -I diagnose\CanIf -I user -D DEBUG1 -c -msg_lang=english +r_main.c(116):W0523077:Called function should have prototype +r_main.c(162):W0523076:Function declarations should have prototype +r_cg_timer_user.c(142):W0520167:Argument of type "uint16_t __near *" is incompatible with parameter of type "unsigned int *__near" +diagnose\Dcm_App.c(296):W0520549:Variable "DcmResetDelay" is used before its value is set +diagnose\Dcm_App.c(320):W0520177:Variable "ResetDelayCnt" was declared but never referenced +diagnose\Dcm_App.c(470):W0520177:Variable "ResetDelayCnt" was declared but never referenced +diagnose\Dcm_App.c(912):W0520549:Variable "LeDcm_u_Result" is used before its value is set +diagnose\Dcm_App.c(979):W0520549:Variable "LeDcm_u_Result" is used before its value is set +diagnose\Dcm_App.c(930):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced +diagnose\Dcm_App.c(1294):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Start" +diagnose\Dcm_App.c(1298):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Stop" +diagnose\Dcm_App.c(1302):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Result" +diagnose\Dcm_App.c(1572):W0520177:Variable "temp" was declared but never referenced +diagnose\Dcm_App.c(1919):W0520549:Variable "LeDcm_u_FinallyResult" is used before its value is set +diagnose\Dcm_App.c(1853):W0520177:Variable "LeDcm_u_dataFomatldentifier" was declared but never referenced +diagnose\Dcm_App.c(1854):W0520177:Variable "LeDcm_u_addressAndLengthFomatldentifier" was declared but never referenced +diagnose\Dcm_App.c(1855):W0520177:Variable "LeDcm_w_Address" was declared but never referenced +diagnose\Dcm_App.c(1856):W0520177:Variable "LeDcm_w_DataLength" was declared but never referenced +diagnose\Dcm_App.c(1857):W0520177:Variable "LeDcm_u_SidIndex" was declared but never referenced +diagnose\Dcm_App.c(1858):W0520177:Variable "LeDcm_u_SecurityAccessCheckResult" was declared but never referenced +diagnose\Dcm_App.c(1859):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced +diagnose\Dcm_App.c(2023):W0520549:Variable "LeDcm_u_FinallyResult" is used before its value is set +diagnose\Dcm_App.c(1939):W0520177:Variable "LeDcm_w_SingleTransmitDataCount" was declared but never referenced +diagnose\Dcm_App.c(1940):W0520177:Variable "LeDcm_u_BlockSequenceCount" was declared but never referenced +diagnose\Dcm_App.c(1941):W0520177:Variable "LeDcm_u_BlockExpect" was declared but never referenced +diagnose\Dcm_App.c(1942):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced +diagnose\Dcm_App.c(60):W0520177:Variable "CeDcm_w_SecurityAccessFBLMask" was declared but never referenced +diagnose\Dcm_App.c(63):W0520177:Variable "SeDcm_w_DownLoadDataLength" was declared but never referenced +diagnose\Dcm_App.c(64):W0520177:Variable "SeDcm_w_TransmitDataCount" was declared but never referenced +diagnose\Dcm_App.c(65):W0520177:Variable "SeDcm_u_BlockSequenceCountSts" was declared but never referenced +diagnose\Dcm_App.c(66):W0520177:Variable "CaDcm_w_SingleAllowDateLength" was declared but never referenced +diagnose\Dcm_App.c(71):W0520177:Variable "SeDcm_u_RidF001Sts" was declared but never referenced +diagnose\Dcm_Cfg.c(83):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc" +diagnose\Dcm_Cfg.c(84):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc" +diagnose\Dcm_Cfg.c(87):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc" +diagnose\Dcm_Cfg.c(1166):W0520940:Missing return statement at end of non-void function "MngDcm_ReadMemoryDataService" +diagnose\Dcm_Cfg.c(1188):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near" +diagnose\Dcm_Cfg.c(1208):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near" +diagnose\Dcm_Cfg.c(1249):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near" +diagnose\Dcm_Cfg.c(1268):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near" +diagnose\Dcm_Cfg.c(1303):W0520177:Variable "i" was declared but never referenced +diagnose\Dcm_Cfg.c(1313):W0520177:Variable "LeDcm_u_CollectDataPost" was declared but never referenced +diagnose\Dcm_Cfg.c(1606):W0520177:Variable "LeDcm_u_DLCheckResult" was declared but never referenced +diagnose\Dcm_Cfg.c(1612):W0520177:Variable "LeDcm_u_CollectDataPost" was declared but never referenced +diagnose\Dcm_Cfg.c(518):W0520177:Function "MngDcm_2AReadDidCheckDL" was declared but never referenced +diagnose\Dcm_Cfg.c(560):W0520177:Function "MngDcm_IoDidCheckDL" was declared but never referenced +diagnose\Dcm_DID_Cfg.c(173):W0520144:A value of type "long" cannot be used to initialize an entity of type "uint8 __far *__near" +diagnose\Dcm_DID_Cfg.c(173):W0520152:Conversion of nonzero integer to pointer +diagnose\Dcm_DID_Cfg.c(338):W0520174:Expression has no effect +diagnose\Dcm_DID_Cfg.c(348):W0520144:A value of type "long" cannot be used to initialize an entity of type "uint8 __far *__near" +diagnose\Dcm_DID_Cfg.c(348):W0520152:Conversion of nonzero integer to pointer +diagnose\Dcm_DID_Cfg.c(370):W0520144:A value of type "long" cannot be used to initialize an entity of type "uint8 __far *__near" +diagnose\Dcm_DID_Cfg.c(370):W0520152:Conversion of nonzero integer to pointer +diagnose\Dcm_DID_Cfg.c(402):W0520174:Expression has no effect diagnose\extern.c(99):W0520111:Statement is unreachable diagnose\extern.c(128):W0520940:Missing return statement at end of non-void function "GetMotorLockStatus" diagnose\extern.c(174):W0520111:Statement is unreachable @@ -12,15 +66,38 @@ diagnose\extern.c(323):W0520111:Statement is unreachable diagnose\extern.c(327):W0520111:Statement is unreachable diagnose\extern.c(524):W0520940:Missing return statement at end of non-void function "GetBcmCommFault" diagnose\extern.c(541):W0520940:Missing return statement at end of non-void function "GetAcpCommFault" +diagnose\DTC\DCM_DTC.c(125):W0520167:Argument of type "uint32 __near *" is incompatible with parameter of type "unsigned char *__near" +diagnose\DTC\DCM_DTC.c(189):W0520167:Argument of type "uint8 __near (*)[2]" is incompatible with parameter of type "unsigned char *__near" +diagnose\DTC\DCM_DTC.c(180):W0520177:Variable "DtcSnapshotRecord" was declared but never referenced +diagnose\DTC\DCM_DTC.c(820):W0520167:Argument of type "uint8 __near (*)[28]" is incompatible with parameter of type "unsigned char *__near" +diagnose\DTC\DCM_DTC.c(111):W0520177:Function "ChkDiagVolt" was declared but never referenced +diagnose\DTC\DCM_DTC.c(121):W0520177:Function "GetLastSnapshotRecordNum" was declared but never referenced +diagnose\DTC\DCM_DTC.c(312):W0520177:Function "TempMotorFeedbackChk" was declared but never referenced +diagnose\DTC\DCM_DTC.c(362):W0520177:Function "ModeMotorFeedbackChk" was declared but never referenced +diagnose\DTC\DCM_DTC.c(412):W0520177:Function "RecMotorFeedbackChk" was declared but never referenced +diagnose\DTC\DCM_DTC.c(462):W0520177:Function "EvaSensorChk" was declared but never referenced +diagnose\DTC\DCM_DTC.c(512):W0520177:Function "MotorLockChk" was declared but never referenced +diagnose\Dcm.c(69):W0520550:Variable "LeDcm_u_FinallyResult" was set but never used +user\appTask.c(41):W0520172:External/internal linkage conflict with previous declaration +user\appTask.c(259):W0520177:Variable "num" was declared but never referenced +user\appTask.c(260):W0520177:Variable "keyPressCounter" was declared but never referenced +user\appTask.c(261):W0520177:Variable "LastKey" was declared but never referenced +user\appTask.c(401):W0523082:Pointer to the object of even alignment holds the odd address +user\appTask.c(405):W0520513:A value of type "MotorStateEE_Type __near *" cannot be assigned to an entity of type "uint8_t *" +user\appTask.c(443):W0520513:A value of type "MotorStateEE_Type __near *" cannot be assigned to an entity of type "uint8_t *" +user\appTask.c(541):W0520550:Variable "count" was set but never used +user\appTask.c(674):W0523077:Called function should have prototype +user\appTask.c(728):W0523077:Called function should have prototype +user\can_user.c(116):W0520550:Variable "re_flag" was set but never used C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\rlink.exe -subcommand=DefaultBuild\ECU_APP.clnk W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product. RAMDATA SECTION: 00000c5b Byte(s) ROMDATA SECTION: 00000658 Byte(s) -PROGRAM SECTION: 00004fd6 Byte(s) +PROGRAM SECTION: 00005169 Byte(s) W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product. W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product. Renesas Optimizing Linker Completed ------- Build ended(Error:0, Warning:12)(ECU_APP, DefaultBuild) ------ +------ Build ended(Error:0, Warning:89)(ECU_APP, DefaultBuild) ------ --- CommandFile 1 --- DefaultBuild\ECU_APP.clnk : @@ -106,9 +183,9 @@ DefaultBuild\ECU_APP.clnk : --- SHA1 hash value of output files --- -E:\workspace\CFMOTO\CFMOTOR\ECU_APP\DefaultBuild\ECU_APP.abs: 79450877dd5d24a71d9acbf1806f6b0d2977e672 -E:\workspace\CFMOTO\CFMOTOR\ECU_APP\DefaultBuild\ECU_APP.mot: 7516e7665ffcc3b27ac3c251e43024c655f284db -E:\workspace\CFMOTO\CFMOTOR\ECU_APP\output\ECU_APP.S19: fbe9346c325105244353b197acb3a83cc89d14cb +E:\workspace\CFMOTO\CFMOTOR\ECU_APP\DefaultBuild\ECU_APP.abs: 1397829d2b63036fbefbc1978a1eb29abc531835 +E:\workspace\CFMOTO\CFMOTOR\ECU_APP\DefaultBuild\ECU_APP.mot: 582d3c214a54646e5b98fe3418be403a891111c6 +E:\workspace\CFMOTO\CFMOTOR\ECU_APP\output\ECU_APP.S19: 1bcdb46fa97ee380dbd20ad06cb3359fcd3ce34c --- System Information --- @@ -136,11 +213,11 @@ E:\workspace\CFMOTO\CFMOTOR\ECU_APP\output\ECU_APP.S19: fbe9346c325105244353b197 C:\Program Files (x86)\Renesas Electronics\CS+\CC *Memory Usage *Private Working Set - 206 MB + 192 MB *Number of GDI Objects - 2138 + 2135 *Number of USER Objects - 1194 + 1200 *Opened Files 4 editors, 4 files, 25 KB diff --git a/ECU_APP/diagnose/Dcm.c b/ECU_APP/diagnose/Dcm.c index 0ac1375..1559ba9 100644 --- a/ECU_APP/diagnose/Dcm.c +++ b/ECU_APP/diagnose/Dcm.c @@ -160,8 +160,8 @@ const uint16 PeriodicDidServeTxTmMax[5]={0xFFFF,1000,500,100,0xFFFF}; SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*ýӿڷӦ 0ΪӦ*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - }else - {//NRC11 + } + else{//NRC11 MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC11]); /*Ӧ*/ SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*ýӿڷӦ*/ LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; diff --git a/ECU_APP/diagnose/Dcm_App.c b/ECU_APP/diagnose/Dcm_App.c index 7c71514..82b1272 100644 --- a/ECU_APP/diagnose/Dcm_App.c +++ b/ECU_APP/diagnose/Dcm_App.c @@ -556,7 +556,7 @@ TeDcm_h_ResultType MngDcm_SoftResetDeal(void) TeDcm_h_ResultType LeDcm_u_Result; //SeDcm_u_KeyErrorDelayCount = 0; - if(SaDcm_u_RequestCounter < 3) + if(SaDcm_u_RequestCounter < 4) { SaDcm_u_RequestCounter++; KamData.SeedReqTimes = SaDcm_u_RequestCounter | 0x10; @@ -568,13 +568,19 @@ TeDcm_h_ResultType MngDcm_SoftResetDeal(void) MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC36]); /*Ӧ*/ SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*ýӿڷӦ*/ + + ReadFlashData(savebuf,0x000F1800,4); + savebuf[0] = SaDcm_u_RequestCounter; + savebuf[1] = SeDcm_u_KeyErrorCount; + WriteDataflash(savebuf,0x000F1800,4); + return CeDcm_e_ResultNegRsp; } - //ReadFlashData(savebuf,0x000F1800,4); + ReadFlashData(savebuf,0x000F1800,4); savebuf[0] = SaDcm_u_RequestCounter; savebuf[1] = SeDcm_u_KeyErrorCount; - //WriteDataflash(savebuf,0x000F1800,4); + WriteDataflash(savebuf,0x000F1800,4); }//fcb @@ -585,10 +591,10 @@ TeDcm_h_ResultType MngDcm_SoftResetDeal(void) SaDcm_u_RequestCounter=0; KamData.SeedReqTimes = 0; - //ReadFlashData(savebuf,0x000F1800,4); + ReadFlashData(savebuf,0x000F1800,4); savebuf[0] = SaDcm_u_RequestCounter; savebuf[1] = SeDcm_u_KeyErrorCount; - //WriteDataflash(savebuf,0x000F1800,4); + WriteDataflash(savebuf,0x000F1800,4); } @@ -678,10 +684,10 @@ TeDcm_h_ResultType MngDcm_SoftResetDeal(void) SeDcm_u_KeyErrorCount++; /*Կ Կ1*/ KamData.KeyErrTimes = SeDcm_u_KeyErrorCount | 0x10; - //ReadFlashData(savebuf,0x000F1800,4); + ReadFlashData(savebuf,0x000F1800,4); savebuf[0] = SaDcm_u_RequestCounter; savebuf[1] = SeDcm_u_KeyErrorCount; - //WriteDataflash(savebuf,0x000F1800,4); + WriteDataflash(savebuf,0x000F1800,4); } else /*Կ֤ͨ*/ @@ -689,10 +695,10 @@ TeDcm_h_ResultType MngDcm_SoftResetDeal(void) SeDcm_u_KeyErrorCount = 0U; /*Կ*/ KamData.KeyErrTimes = SeDcm_u_KeyErrorCount; - //ReadFlashData(savebuf,0x000F1800,4); + ReadFlashData(savebuf,0x000F1800,4); savebuf[0] = SaDcm_u_RequestCounter; savebuf[1] = SeDcm_u_KeyErrorCount; - //WriteDataflash(savebuf,0x000F1800,4); + WriteDataflash(savebuf,0x000F1800,4); if(dummy == 0x02) SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_L1_UNLOCK; /*ðȫȨΪ ״̬ */ @@ -1754,10 +1760,10 @@ void MngDcmKeyErrorDelayCountCutDown(void) { SeDcm_u_KeyErrorCount = 0U; KamData.KeyErrTimes = SeDcm_u_KeyErrorCount; - //ReadFlashData(savebuf,0x000F1800,4); - savebuf[0] = SaDcm_u_RequestCounter; - savebuf[1] = SeDcm_u_KeyErrorCount; - //WriteDataflash(savebuf,0x000F1800,4); + ReadFlashData(savebuf,0x000F1800,4); + savebuf[0] = SaDcm_u_RequestCounter; + savebuf[1] = SeDcm_u_KeyErrorCount; + WriteDataflash(savebuf,0x000F1800,4); } } if(SaDcm_u_RequestDelayCount > 0) @@ -1767,10 +1773,10 @@ void MngDcmKeyErrorDelayCountCutDown(void) { SaDcm_u_RequestCounter = 0U; KamData.SeedReqTimes = SaDcm_u_RequestCounter; - //ReadFlashData(savebuf,0x000F1800,4); - savebuf[0] = SaDcm_u_RequestCounter; - savebuf[1] = SeDcm_u_KeyErrorCount; - //WriteDataflash(savebuf,0x000F1800,4); + ReadFlashData(savebuf,0x000F1800,4); + savebuf[0] = SaDcm_u_RequestCounter; + savebuf[1] = SeDcm_u_KeyErrorCount; + WriteDataflash(savebuf,0x000F1800,4); } } } @@ -2094,8 +2100,8 @@ TeDcm_h_ResultType MngDcm_TransmitExitService(void) //SeDcm_u_KeyErrorCount = KamData.KeyErrTimes; /*ȡĴ*/ ReadFlashData(readbuf,0x000F1800,4); - SaDcm_u_RequestCounter = 0;//readbuf[0]; - SeDcm_u_KeyErrorCount = 0;//readbuf[1]; /*ȡĴ*/ + SaDcm_u_RequestCounter = readbuf[0]; + SeDcm_u_KeyErrorCount = readbuf[1]; /*ȡĴ*/ if(SaDcm_u_RequestCounter > 6)SaDcm_u_RequestCounter=0; if(SeDcm_u_KeyErrorCount > 4)SeDcm_u_KeyErrorCount=0; @@ -2109,7 +2115,10 @@ TeDcm_h_ResultType MngDcm_TransmitExitService(void) if(SeDcm_u_KeyErrorCount >= 3 ) { SeDcm_u_KeyErrorDelayCount = DCM_SASERVERSTS_ERRORDELAY_COUNT; - //SaDcm_u_RequestCounter=5; + } + if (SaDcm_u_RequestCounter >= 4) + { + SaDcm_u_RequestDelayCount = DCM_SASERVERSTS_ERRORDELAY_COUNT; } SeDcm_u_DownLoadDataSts = CeDcm_e_DownLoadRelax; /*ش״̬Ϊ */ diff --git a/ECU_APP/diagnose/Dcm_App.h b/ECU_APP/diagnose/Dcm_App.h index a2f6d03..3d6260a 100644 --- a/ECU_APP/diagnose/Dcm_App.h +++ b/ECU_APP/diagnose/Dcm_App.h @@ -69,8 +69,8 @@ -#define DCM_SASERVERSTS_ERRORDELAY_COUNT 9000U /*密钥错误延时*/ -#define DCM_SASERVERSTS_ERRORDELAY_COUNT_DEFAULT 9000U /*密钥错误延时 上电默认值*/ +#define DCM_SASERVERSTS_ERRORDELAY_COUNT 9900U /*密钥错误延时*/ +#define DCM_SASERVERSTS_ERRORDELAY_COUNT_DEFAULT 9900U /*密钥错误延时 上电默认值*/ #define DCM_S3SEVERTIMEOUT 5000U /*S3ServerTime计时超时计数量标定*/ diff --git a/ECU_APP/diagnose/Dcm_DID_Cfg.h b/ECU_APP/diagnose/Dcm_DID_Cfg.h index 31acdcd..f94e2e3 100644 --- a/ECU_APP/diagnose/Dcm_DID_Cfg.h +++ b/ECU_APP/diagnose/Dcm_DID_Cfg.h @@ -1,6 +1,6 @@ /****************************************************************************** -| File Name : @ļ -| Description: @ļ +| File Name : @文件名 +| Description: @文件描述 ******************************************************************************/ #ifndef _DCM_DID_CFG_H #define _DCM_DID_CFG_H @@ -13,10 +13,10 @@ /****************************************************************************** * Description: : Macro Description Section ******************************************************************************/ -#define DCM_CHECK_NOK 0U /*궨鷵ؽ*/ +#define DCM_CHECK_NOK 0U /*宏定义条件检查返回结果*/ #define DCM_CHECK_OK 1U -#define DCM_NORESULT 0xFF /*δҵĿ귵غ궨ֵ*/ +#define DCM_NORESULT 0xFF /*未找到目标返回宏定义值*/ #define DCM_NRCCOUNT 17U #define DCM_NRC11 0U