C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 1   


C51 COMPILER V9.01, COMPILATION OF MODULE DATAFLASH
OBJECT MODULE PLACED IN .\output\DataFlash.obj
COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_dataflash\DataFlash.c LARGE OPTIMIZE(7,SIZE) BROWSE INCDIR(.\head
                    -er) DEBUG OBJECTEXTEND PRINT(.\output\DataFlash.lst) OBJECT(.\output\DataFlash.obj)

line level    source

   1          /********************************************************************************
   2          Copyright (C), Sinowealth Electronic. Ltd.
   3          Author:         Sino
   4          Version:        V0.0
   5          Date:           2014/09/10
   6          History:
   7          V0.0            2014/09/10               Preliminary
   8          ********************************************************************************/
   9          //*** <<< use Configuration Wizard in Context Menu >>>  ***
  10          #define _RAM_CHECK_DATA                                         0x5A
  11          #define _FLASH_CHECK_DATA                                       0x5AA5
  12          
  13          //      <h> 系统信息区(SubClassID=0x00          length=48)
  14          //      <h> 电池包信息（E2uiPackConfigMap）
  15          //      <q>     负载锁定
  16          #define _EPCM_LOAD_LOCK                                         0                                               //BIT15;        0：不使能负载锁定;      1：使能负载锁定
  17          //      <q>     充电器锁定
  18          #define _EPCM_CHARGER_LOCK                                      0                                               //BIT14;        0：不支持充电器锁定;    1：支持充电器锁定
  19          //      <q>     温度检测点个数
  20          #define _EPCM_TEMP_NUM                                                  1                                                       //BIT13;        0：单个温度检测点       1：两个温度检测点
  21          //      <o>     LED显示个数
  22          #define _EPCM_LED_NUM                                                   0                                                       //BIT11~12;     未调用
  23          //      <o> 电芯串数
  24          #define _EPCM_CELL_NUM                                                  4                                                       //BIT8~10;      电芯串数，6~10串
  25          // <q>  外挂EEPROM备份
  26          #define _EPCM_EEPROM_EN                                         0                                               //BIT7;         0：不使能外挂EE备份功能;        1：使能外挂EE备份功能
  27          // <q>  放电过流MOS控制                                                                                                                         
  28          #define _EPCM_OCPM                                                              0                                                       //BIT6;         未调用（0：放电过流关闭放电mos  1：放电过流关闭充放电mos）
  29          // <q>  断线检测
  30          #define _EPCM_CTO_EN                                            1                                               //BIT5;         0：不使能断线保护功能;  1：使能断线保护功能              
             -   
  31          // <q>  二级保护
  32          #define _EPCM_PF_EN                                                     1                                               //BIT4;         0：不使能二级保护功能;  1：使能二级保护功能
  33          // <q>  均衡
  34          #define _EPCM_BAL_EN                                            0                                               //BIT3;         0：不使能均衡功能；     1：使能均衡功能
  35          // <q> 过流自恢复
  36          #define _EPCM_OCRC_EN                                                   0                                                       //BIT2;         0:不使能过流自恢复功能；                1：使能过流自恢复功能
  37          // <q> 硬件过压保护
  38          #define _EPCM_OV_EN                                                             1                                                       //BIT1;         0:不使能硬件过压功能；  1：使能硬件过压功能             
  39          // <q>  硬件短路保护                                                                    
  40          #define _EPCM_SC                                                        1                                               //BIT0;         0:不使能硬件短路保护功能；      1：使能硬件短路保护功能
  41          
  42          #define _E2_PACKCONFIGMAP                                               (_EPCM_EEPROM_EN<<15)|(_EPCM_OCPM<<14)|(_EPCM_CTO_EN<<13)|(_EPCM_PF_EN<<12)
             -\
  43                                                                                                          |(_EPCM_BAL_EN<<11)|(_EPCM_OCRC_EN<<10)|(_EPCM_OV_EN<<9)\
  44                                                                                                          |(_EPCM_SC<<8)|(_EPCM_LOAD_LOCK<<7)|(_EPCM_CHARGER_LOCK<<6)\
  45                                                                                                          |(_EPCM_TEMP_NUM<<5)|(_EPCM_LED_NUM<<4)|(_EPCM_CELL_NUM-3)              //U16 xdata E2uiPackConfigMap 
  46                                                                                                                                                          
  47          // </h>
  48          
  49          // <h>OCV电压（mV）
  50          // <o>10%容量对应电压
  51          #define _E2_VOC10                                                       3200                                            //U16 xdata VOC10
  52          // <o>20%容量对应电压
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 2   

  53          #define _E2_VOC20                                                       3400                                            //U16 xdata VOC10
  54          // <o>30%容量对应电压
  55          #define _E2_VOC30                                                       3550                                            //U16 xdata VOC10       
  56          // <o>40%容量对应电压
  57          #define _E2_VOC40                                                       3700                                            //U16 xdata VOC10       
  58          // <o>50%容量对应电压
  59          #define _E2_VOC50                                                       3800                                            //U16 xdata VOC10       
  60          // <o>60%容量对应电压
  61          #define _E2_VOC60                                                       3900                                            //U16 xdata VOC10
  62          // <o>70%容量对应电压
  63          #define _E2_VOC70                                                       4000                                            //U16 xdata VOC10
  64          // <o>80%容量对应电压
  65          #define _E2_VOC80                                                       4100                                                    //U16 xdata VOC10
  66          // <o>90%容量对应电压
  67          #define _E2_VOC90                                                       4150                                            //U16 xdata VOC10       
  68          // <o>100%容量对应电压
  69          #define _E2_VOC100                                                              4200                                            //U16 xdata VOC10                                       
  70          // </h>
  71          
  72          // <h>延时参数及预留容量参数
  73          // <o>设计容量（mAh）            
  74          #define _E2_ulDesignCapacity                                    4000                                                                    //U32 xdata E2ulDesignCapacity
  75          // <o>满充容量（mAh）            
  76          #define _E2_ulFCC                                                               4000                                                                    //U32 xdata E2ulFCC
  77          // <o>循环次数更新阈值
  78          #define _E2_ulCycleThreshold                                    3000                                                                    // U32 xdata E2ulCycleThreshold
  79          // <o>循环次数
  80          #define _E2_uiCycleCount                                                0                                                                                       // U16 xdata E2uiCycleCount
  81          // <o>容量学习温度
  82          #define _E2_uiLearnLowTempe                                     2881                                                                            // U16 xdata E2uiLearnLowTempe
  83          #define _E2_Reserve                                                             0                                                                                       // U16 xdata E2Reserve 预留占位
  84          // <o>充放电检测阈值
  85          #define _E2_siDfilterCur                                                100                                                                             // U16 xdata E2siDfilterCur
  86          // <o>低功耗检测延时
  87          #define _E2_ucLowPowerDeley                                             20                                                                              // U16 xdata E2ucLowPowerDeley
  88          // <o>充电备份检测延时
  89          #define _E2_ucChgBKDelay                                                1                                                                                       // U16 xdata E2ucChgBKDelay
  90          // <o>充电备份检测电流
  91          #define _E2_siChgBKCur                                                  100                                                                             // U16 xdata E2siChgBKCur
  92          // <o>RTC备份检测延时
  93          #define _E2_ucRTCBKDelay                                                5                                                                                       // U16 xdata E2ucRTCBKDelay
  94          #define _E2_ucRamCheckFlg0                              _RAM_CHECK_DATA                         // U16 xdata E2ucRamCheckFlg0
  95          // </h>
  96          // </h>
  97          
  98          // <h>用户自定义参数(SubClassID=0x01    length=50)
  99          // <o>软件版本(EXP:0x0106 = V1.06)<0x0000-0xffff>
 100          #define _E2_SWVersion                                                   0x0215                                                          // U16 xdata SWVersion
 101          // <o>硬件版本(EXP:0x0106 = V1.06)<0x0000-0xffff>                       
 102          #define _E2_HWVersion                                                   0x0130                                                          // U16 xdata HWVersion  
 103          // <o>设备ID<0x00-0xff>
 104          #define _E2_ID                                                                  0x00                                                                    // U8  xdata ID         
 105          // <s.12>制造商名称
 106          #define _E2_MNFName                                                     "sinowealth"                                    // U8  xdata MNFName[12]
 107          // <o>  生产日期（exp：0x20230404=2023.04.04）<0x00000000-0xffffffff>
 108          #define _E2_MNFDate                                                             0x20231222                              // U32 xdata MNFDate
 109          // <o>序列号<0x0000-0xffff>
 110          #define _E2_SerialNum                                                   0x0000                                                          // U16 xdata SerialNum
 111          // <s.12>设备名称
 112          #define _E2_DeviceName                                                  "SH39F003"                                              // U8  xdata DeviceName[12]
 113          // <s.4>电芯材料
 114          #define _E2_DeviceChem                                                  "LION"                                                          // U8  xdata DeviceChem[12]
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 3   

 115          // <o>电芯化学ID<0x0000-0xffff>
 116          #define _E2_ChemID                                                              0x0000                                                          // U16 xdata ChemID
 117          #define _E2_ucRamCheckFlg1                                      _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlg2
 118          // </h>
 119          
 120          // <h>充电参数(SubClassID=0x02          length=18)
 121          // <o>过压保护阈值
 122          #define _E2_uiOVvol                                                             4250                                                                    // U16 xdata E2uiOVvol  
 123          // <o>过压保护恢复阈值
 124          #define _E2_uiOVRvol                                                    4150                                                                    // U16 xdata E2uiOVRvol
 125          // <o>过压保护延时
 126          #define _E2_ucDelayOV                                                   2                                                                                       // U8  xdata E2ucDelayOV
 127          // <o>过压保护恢复延时
 128          #define _E2_ucDelayOVR                                                  2                                                                                       // U8  xdata E2ucDelayOVR
 129          // <o>充电截止电压(mV)
 130          #define _E2_uiChgEndVol                                                 4160                                                                    // U16 xdata E2uiChgEndVol
 131          // <o>充电截止电流(mA)
 132          #define _E2_siChgEndCurr                                                100                                                                             // S16 xdata E2siChgEndCurr
 133          // <o>充电截止延时(S)
 134          #define _E2_ucChgEndDelay                                               5                                                                                       // U8  xdata E2ucChgEndDelay
 135          // <o>充电过流保护阈值
 136          #define _E2_slOCCvol                                                    3000                                                                    // U32  xdata E2slOCCvol
 137          // <o>充电过流保护延时
 138          #define _E2_ucDelayOCC                                                  2                                                                                       // U8  xdata E2ucDelayOCC
 139          // <o>充电过流保护恢复延时
 140          #define _E2_ucDelayOCCR                                                 2                                                                                       // U8  xdata E2ucDelayOCCR
 141          #define _E2_ucRamCheckFlg2                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlg2
 142          // </h>
 143          
 144          // <h>放电参数(SubClassID=0x03          length=21)
 145          // <o>欠压保护电压
 146          #define _E2_uiUVvol                                                             2700                                                                    // U16 xdata E2uiUVvol
 147          // <o>欠压保护恢复电压                  
 148          #define _E2_uiUVRvol                                                    3000                                                                    // U16 xdata E2uiUVRvol
 149          // <o>欠压保护延时
 150          #define _E2_ucDelayUV                                                   2                                                                               // U8  xdata E2ucDelayUV 
 151          // <o>欠压保护恢复延时
 152          #define _E2_ucDelayUVR                                                  2                                                                                       // U8  xdata E2ucDelayUVR
 153          // <o>放电截止延时(S)   
 154          #define _E2_ucDsgEndDelay                                               5                                                                                       // U8  xdata E2ucDsgEndDelay 
 155          // <o>放电截止电压(mV)
 156          #define _E2_uiDsgEndVol                                                 2900                                                                    // U16 xdata E2uiDsgEndVol
 157          // <o>放电过流1保护阈值 
 158          #define _E2_uiOCDvol                                                    -20000                                                          //U32 xdata     E2uiOCDvol
 159          // <o>放电过流1保护延时 
 160          #define _E2_ucDelayOCD                                                  2                                                                                       //U8 xdata      E2ucDelayOCD
 161          // <o>放电过流2保护阈值 
 162          #define _E2_slOCD2vol                                                   -40000                                                          // S32 xdata E2slOCD2vol
 163          // <o>放电过流2保护延时 
 164          #define _E2_ucDelayOCD2                                                 2                                                                                       //U8 xdata      E2ucDelayOCD2
 165          // <o>负载移除检测延时
 166          #define _E2_ucDelayLoadR                                                4                                                                                       //U8 xdata      E2ucDelayLoadR  
 167          #define _E2_ucRamCheckFlg3                                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlg3
 168          // </h>
 169          
 170          // <h>放电PWM参数(SubClassID=0x05               length=5)
 171          // <o>PWM频率(Hz)
 172          #define _E2_DSG1PWMFreq                                                 4000                                                                    // U16 xdata DSG1PWMFreq
 173          // <o>PWM低档占空比(%)
 174          #define _E2_DSG1PWMRatioL                                               30                                                                              // U8 xdata DSG1PWMRatioL
 175          // <o>PWM高档占空比(%)
 176          #define _E2_DSG1PWMRatioH                                               70                                                                              // U8 xdata DSG1PWMRatioH
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 4   

 177          #define _E2_ucRamCheckFlg5                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlg5
 178          // </h>
 179          
 180          // <h>充电温度保护参数(SubClassID=0x06  length=11)
 181          // <o>充电高温保护温度(_E2_TempOTC=保护温度*10+2731)
 182          #define _E2_TempOTC                                                             3231                                                                    // U16 xdata TempOTC    
 183          // <o>充电高温保护释放温度(_E2_TempOTCR=释放温度*10+2731)
 184          #define _E2_TempOTCR                                                    3181                                                                    // U16 xdata TempOTCR
 185          // <o>充电低温保护温度(_E2_TempUTC=保护温度*10+2731)
 186          #define _E2_TempUTC                                                             2731                                                                    // U16 xdata TempUTC
 187          // <o>充电低温保护释放温度(_E2_TempUTCR=释放温度*10+2731)
 188          #define _E2_TempUTCR                                                    2781                                                                    // U16 xdata TempUTCR
 189          // <o>温度保护延时(s)
 190          #define _E2_DelayOTC                                                    3                                                                                       // U8  xdata DelayOTC
 191          // <o>温度保护释放延时(s)
 192          #define _E2_DelayOTCR                                                   3                                                                                       // U8  xdata DelayOTCR
 193          #define _E2_ucRamCheckFlg6                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlg6
 194          // </h>
 195          
 196          // <h>放电温度保护参数(SubClassID=0x07  length=9)
 197          // <o>放电高温保护温度(_E2_TempOTC=保护温度*10+2731)
 198          #define _E2_TempOTD                                                             3431                                                                    // U16 xdata TempOTD    
 199          // <o>放电高温保护释放温度(_E2_TempOTCR=释放温度*10+2731)
 200          #define _E2_TempOTDR                                                    3281                                                                    // U16 xdata TempOTDR
 201          // <o>放电低温保护温度(_E2_TempUTC=保护温度*10+2731)
 202          #define _E2_TempUTD                                                             2631                                                                    // U16 xdata TempUTD
 203          // <o>放电低温保护释放温度(_E2_TempUTCR=释放温度*10+2731)
 204          #define _E2_TempUTDR                                                    2681                                                                    // U16 xdata TempUTDR
 205          #define _E2_ucRamCheckFlg7                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlg6
 206          // </h>
 207          
 208          // <h>平衡参数(SubClassID=0x08                                  length=8)
 209          // <o>平衡电压(mV)
 210          #define _E2_BalanceVol                                                  4180                                                                    // U16 xdata BalanceVol
 211          // <o>平衡压差(mV)
 212          #define _E2_BalanceVolDiff                                              20                                                                              // U16 xdata BalanceVolDiff
 213          // <o>平衡电流(mA)
 214          #define _E2_BalCurrent                                                  100                                                                             // S16 xdata BalCurrent
 215          // <o>平衡检测延时(S)
 216          #define _E2_BalanceDelay                                                2                                                                                       // U8  xdata BalanceDelay 
 217          #define _E2_ucRamCheckFlg8                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlg8
 218          // </h>
 219          
 220          // <h>容量统计参数(SubClassID=0x09                              length=17)
 221          // <o>容量百分比SOC(%)
 222          #define _E2_ucSOC                                                               100                                                                             // U8  xdata E2ucSOC
 223          // <o>剩余容量E2ulDfRC(mAh)
 224          #define _E2_ulDfRC                                                              3000                                                                    // U32 xdata E2ulLastFCC
 225          // <o>放电截止电流
 226          #define   _E2_slDsgEndCurr                              -5000                                                                   // U32 xdata E2slDsgEndCurr
 227          // <o>放电循环次数变更计数值
 228          #define _E2_ulCycleThresholdCount                               0                                                                                       // U32 xdata E2ulCycleThresholdCount
 229          // <o>上次更新容量时的循环次数
 230          #define _E2_uiLastCCount                                                0                                                                                       // U16 xdata    E2uiLastCCount
 231          // <o>放电截止标志
 232          #define _E2_ucDsgEndFlg                                                 0                                                                               //U8  xdata E2ucDsgEndFlg
 233          #define _E2_ucRamCheckFlg9                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlg9
 234          // </h>
 235          
 236          // <h>AFE参数(SubClassID=0x0A                   length=4)
 237          // <o>保护配置
 238          #define _E2_AFEProtectConfig                                    0x74                                                                    // U8  xdata AFEProtectConfig
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 5   

 239          // <o>硬件过压保护阈值
 240          #define _E2_AFEOVvol                                                    4400                                                                    // U16 xdata AFEOVvol
 241          #define _E2_ucRamCheckFlgA                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlgA
 242          // </h>
 243          
 244          // <h>校准参数(SubClassID=0x0B          length=12)
 245          // <o>电压校准增益
 246          #define _E2_uiVPackGain                                                 2594                                                                    // U16 xdata E2uiVPackGain      
 247          // <o>电流校准增益
 248          #define _E2_siCadcGain                                                  -82                                                                             // S16 xdata E2siCadcGain 
 249          // <o>电流零漂
 250          #define _E2_siCadcOffset                                                1                                                                                       // S16 xdata E2siCadcOffset
 251          // <o>外部温度零漂(TS0)
 252          #define _E2_siTS0Offset                                                 0                                                                                       // S16 xdata E2siTS0Offset
 253          // <o>外部温度零漂(TS1)
 254          #define _E2_siTS1Offset                                                 0                                                                                       // S16 xdata E2siTS1Offset
 255          // <o>校准参数预留
 256          #define _E2_ucCalibrated                                                0                                                                                       // U8  xdata E2ucCalibrated 
 257          #define _E2_ucRamCheckFlgB                              _RAM_CHECK_DATA                         // U8  xdata E2ucRamCheckFlgB
 258          // </h>
 259          
 260          /*********************************************************************************************************
             -********/
 261          /*********************************************************************************************************
             -********/
 262          /*********************************************************************************************************
             -********/
 263          /*********************************************************************************************************
             -********/
 264          /*********************************************************************************************************
             -********/
 265          /*********************************************************************************************************
             -********/
 266          /*********************************************************************************************************
             -********/
 267          /*********************************************************************************************************
             -********/
 268          /*********************************************************************************************************
             -********/
 269          /*********************************************************************************************************
             -********/
 270          /*********************************************************************************************************
             -********/
 271          /*********************************************************************************************************
             -********/
 272          
 273          struct DataFlashStu
 274          {
 275          //系统信息区开始 SubClassID=0x00                length=48
 276              unsigned    int     E2uiPackConfigMap;
 277              unsigned    int     E2uiVOC[10];
 278              unsigned    long    E2ulDesignCapacity;
 279                  unsigned    long    E2ulFCC;
 280                  unsigned    long    E2ulCycleThreshold;
 281              unsigned    int     E2uiCycleCount;
 282              unsigned    int     E2uiLearnLowTempe;
 283              unsigned    int     E2Reserve;
 284              signed      int     E2siDfilterCur;
 285              unsigned    char    E2ucLowPowerDeley;
 286              unsigned    char    E2ucChgBKDelay; 
 287              unsigned    int     E2siChgBKCur;   
 288              unsigned    char    E2ucRTCBKDelay;
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 6   

 289              unsigned    char    E2ucRamCheckFlg0;
 290          
 291          //用户自定义参数区开始 SubClassID=0x01  langth=50
 292              unsigned    int     E2uiSWVersion;
 293              unsigned    int     E2uiHWVersion;
 294              unsigned    char    E2ucID;
 295              unsigned    char    E2ucMNFName[12];
 296              unsigned    long    E2ulMNFDate;
 297              unsigned    int     E2uiSerialNum;
 298              unsigned    char    E2ucDeviceName[12];
 299              unsigned    char    E2ucDeviceChem[12];
 300              unsigned    int     E2uiChemID;
 301              unsigned    char    E2ucRamCheckFlg1;
 302          
 303          //充电参数区开始 SubClassID=0x02                langth=18
 304              unsigned    int     E2uiOVvol;
 305              unsigned    int     E2uiOVRvol;
 306              unsigned    char    E2ucOVDelay;
 307              unsigned    char    E2ucOVRDelay;
 308                  unsigned    int     E2uiChgEndVol0;
 309              signed      int     E2siChgEndCurr0;
 310              unsigned    char    E2ucChgEndDelay0;
 311              signed      long    E2slOCCvol;
 312              unsigned    char    E2ucDelayOCC;
 313              unsigned    char    E2ucDelayOCCR;
 314              unsigned    char    E2ucRamCheckFlg2;
 315          
 316          //放电参数区开始 SubClassID=0x03                langth=21
 317              unsigned    int     E2uiUVvol;
 318              unsigned    int     E2uiUVRvol;
 319              unsigned    char    E2ucDelayUV;
 320              unsigned    char    E2ucDelayUVR;
 321                  unsigned    int         E2uiDsgEndVol;
 322                  unsigned    char    E2ucDsgEndDelay;
 323              signed      long    E2uiOCDvol;
 324              unsigned    char    E2ucDelayOCD;
 325              signed      long    E2slOCD2vol;
 326              unsigned    char    E2ucDelayOCD2;
 327              unsigned    char    E2ucDelayLoadR;
 328              unsigned    char    E2ucRamCheckFlg3;
 329          
 330          //放电PWM参数区开始 SubClassID=0x05             langth=5
 331              unsigned    int     DSG1PWMFreq;
 332              unsigned    char    DSG1PWMRatioL;
 333              unsigned    char    DSG1PWMRatioH;
 334              unsigned    char    E2ucRamCheckFlg5;
 335          
 336          
 337          //充电温度保护参数开始 SubClassID=0x06  langth=11
 338              unsigned    int     TempOTC;
 339              unsigned    int     TempOTCR;
 340              unsigned    int     TempUTC;
 341              unsigned    int     TempUTCR;
 342              unsigned    char    DelayOTC;
 343              unsigned    char    DelayOTCR;
 344              unsigned    char    E2ucRamCheckFlg6;
 345          
 346          //放电温度保护参数开始 SubClassID=0x07  langth=9
 347              unsigned    int     TempOTD;
 348              unsigned    int     TempOTDR;
 349              unsigned    int     TempUTD;
 350              unsigned    int     TempUTDR;
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 7   

 351              unsigned    char    E2ucRamCheckFlg7;
 352          
 353          //平衡参数区开始 SubClassID=0x08                langth=8
 354              unsigned    int     BalanceVol;
 355              unsigned    int     BalanceVolDiff;
 356              unsigned    int     BalCurrent;
 357              unsigned    char    BalanceDelay;
 358              unsigned    char    E2ucRamCheckFlg8;
 359          
 360          //容量统计 SubClassID=0x09                              length=17
 361              unsigned    char    E2ucSOC;
 362              unsigned    long    E2ulDfRC;
 363              signed    long    E2slDsgEndCurr;
 364              unsigned    long    E2ulCycleThresholdCount;
 365                  unsigned    int    E2uiLastCCount;
 366                  unsigned    char        E2ucDsgEndFlg;                                                          
 367              unsigned    char    E2ucRamCheckFlg9;
 368          
 369          //AFE参数区开始 SubClassID=0x0A                 length=4
 370                  unsigned        char    AFEProtectConfig;
 371                  unsigned        int             AFEOVvol;
 372                  unsigned        char    E2ucRamCheckFlgA;
 373          
 374          //校准参数区开始 SubClassID=0x0B                        length=12
 375              unsigned    int     E2uiVPackGain;
 376              signed      int     E2siCadcGain;
 377              unsigned    int     E2siCadcOffset;
 378              unsigned    int     E2siTS0Offset;
 379              unsigned    int     E2siTS1Offset;
 380              unsigned    char    E2ucCalibrated;
 381              unsigned    char    E2ucRamCheckFlgB;
 382          };  
 383          
 384          union DataFlashUn
 385          {
 386              struct  DataFlashStu    DataFlashStu0;  /*一定要先声明结构体再定义数组*/
 387              unsigned    char    reversed[510];
 388          };
 389          
 390          struct  DataFlashStr
 391          {
 392              union   DataFlashUn DataFlashUnRaw;
 393              unsigned    int     FlashCheck1;
 394              union   DataFlashUn DataFlashUnBak;
 395              unsigned    int     FlashCheck2;
 396          };
 397          
 398          struct DataFlashStr code dataflashstr = 
 399          {
 400          /*********************************************************************************************************
             -********/
 401          //备份A区
 402          /*********************************************************************************************************
             -********/
 403              //系统信息区开始 SubClassID=0x00            length=48
 404              {
 405                  _E2_PACKCONFIGMAP,                              //U16 xdata E2uiPackConfigMap
 406                  _E2_VOC10,                                                      //U16 xdata VOC10
 407                  _E2_VOC20,                                                      //U16 xdata VOC20
 408                  _E2_VOC30,                                                      //U16 xdata VOC30
 409                  _E2_VOC40,                                                      //U16 xdata VOC40
 410                  _E2_VOC50,                                                      //U16 xdata VOC50
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 8   

 411                  _E2_VOC60,                                                      //U16 xdata VOC60
 412                  _E2_VOC70,                                                      //U16 xdata VOC70
 413                  _E2_VOC80,                                                      //U16 xdata VOC80
 414                  _E2_VOC90,                                                      //U16 xdata VOC90
 415                  _E2_VOC100,                                     //U16 xdata VOC100
 416                  _E2_ulDesignCapacity,                   // U32 xdata E2ulDesignCapacity                    
 417                  _E2_ulFCC,                                              // U32 xdata E2ulFCC    
 418                          _E2_ulCycleThreshold,                           // U32 xdata E2uiCycleThreshold       
 419                          _E2_uiCycleCount,                               // U16 xdata E2uiCycleCount    
 420                          _E2_uiLearnLowTempe,                            // U16 xdata E2uiLearnLowTempe  
 421                          _E2_Reserve,                                            // U16 xdata E2Reserve      
 422                          _E2_siDfilterCur,                       // S16 xdata E2siDfilterCur    
 423                          _E2_ucLowPowerDeley,                            // U8  xdata E2ucLowPowerDeley 
 424                  _E2_ucChgBKDelay,                               // U8  xdata E2ucChgBKDelay              
 425                  _E2_siChgBKCur,                         // S16 xdata E2siChgBKCur                  
 426                  _E2_ucRTCBKDelay,                       // U8  xdata E2ucRTCBKDelay              
 427                  _E2_ucRamCheckFlg0,                     // U8  xdata E2ucRamCheckFlg0  
 428          
 429          
 430              //用户自定义参数区开始 SubClassID=0x01      length=50
 431                  _E2_SWVersion,                                  //U16 xdata SWVersion     
 432                  _E2_HWVersion,                                  //U16 xdata HWVersion     
 433                  _E2_ID,                                         //U8  xdata ID            
 434                  _E2_MNFName,                                    //U8  xdata MNFName[12]  
 435                  _E2_MNFDate,                                    //U32 xdata MNFDate       
 436                  _E2_SerialNum,                                  //U16 xdata SerialNum     
 437                  _E2_DeviceName,                                 //U8  xdata DeviceName[12]
 438                  _E2_DeviceChem,                                 //U8  xdata DeviceChem[12]
 439                  _E2_ChemID,                                     //U16 xdata ChemID        
 440                  _E2_ucRamCheckFlg1,                                     //U8  xdata E2ucRamCheckFlg1
 441                  
 442              //充电参数区开始 SubClassID=0x02            length=18
 443                  _E2_uiOVvol,                                    //U16 xdata E2uiOVvol                           
 444                  _E2_uiOVRvol,                                   //U16 xdata E2uiOVRvol                          
 445                  _E2_ucDelayOV,                                  //U8  xdata E2ucDelayOV                         
 446                  _E2_ucDelayOVR,                                 //U8  xdata E2ucDelayOVR
 447                          _E2_uiChgEndVol,
 448                          _E2_siChgEndCurr,
 449                          _E2_ucChgEndDelay,
 450                  _E2_slOCCvol,                                           //S32 xdata E2slOCCvol                  
 451                  _E2_ucDelayOCC,                                 //U8  xdata E2ucDelayOCC                        
 452                  _E2_ucDelayOCCR,                                //U8  xdata E2ucDelayOCCR
 453                  _E2_ucRamCheckFlg2,                                                     //U8  xdata E2ucRamCheckFlg2
 454          
 455              //放电参数区开始 SubClassID=0x03            langth=21             
 456                  _E2_uiUVvol,                                    //U16 xdata E2uiUVvol                           
 457                  _E2_uiUVRvol,                                           //U16 xdata E2uiUVRvol                          
 458                  _E2_ucDelayUV,                                  //U8  xdata E2ucDelayUV                         
 459                  _E2_ucDelayUVR,                                 //U8  xdata E2ucDelayUVR
 460                          _E2_uiDsgEndVol,
 461                          _E2_ucDsgEndDelay,
 462                  _E2_uiOCDvol,                                   //S32 xdata E2uiOCDvol                  
 463                  _E2_ucDelayOCD,                                         //U8  xdata E2ucDelayOCD                
 464                  _E2_slOCD2vol,                                  //S32 xdata E2slOCD2vol                 
 465                  _E2_ucDelayOCD2,                                //U8  xdata E2ucDelayOCD2                               
 466                  _E2_ucDelayLoadR,                               //U8  xdata E2ucDelayLoadR                      
 467                  _E2_ucRamCheckFlg3,                             //U8  xdata E2ucRamCheckFlg3
 468          
 469          
 470              //放电PWM参数区开始 SubClassID=0x05         langth=5             
 471                  _E2_DSG1PWMFreq,                                //U16 xdata DSG1PWMFreq                 
 472                  _E2_DSG1PWMRatioL,                                      //U8  xdata DSG1PWMRatioL               
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 9   

 473                  _E2_DSG1PWMRatioH,                                      //U8  xdata DSG1PWMRatioH                               
 474                  _E2_ucRamCheckFlg5,                                     //U8  xdata E2ucRamCheckFlg5
 475          
 476          //充电温度保护参数开始 SubClassID=0x06  langth=11
 477                  _E2_TempOTC,                                    //U16 xdata TempOTC                             
 478                  _E2_TempOTCR,                                   //U16 xdata TempOTCR                    
 479                  _E2_TempUTC,                                    //U16 xdata TempUTC                             
 480                  _E2_TempUTCR,                                   //U16 xdata TempUTCR                    
 481                  _E2_DelayOTC,                                           //U8  xdata DelayOTC                    
 482                  _E2_DelayOTCR,                                          //U8  xdata DelayOTCR                   
 483                  _E2_ucRamCheckFlg6,                                     //U8  xdata E2ucRamCheckFlg6
 484          
 485          //放电温度保护参数开始 SubClassID=0x07  langth=9
 486                  _E2_TempOTD,                                    //U16 xdata TempOTD                             
 487                  _E2_TempOTDR,                                   //U16 xdata TempOTDR                    
 488                  _E2_TempUTD,                                    //U16 xdata TempUTD                             
 489                  _E2_TempUTDR,                                   //U16 xdata TempUTDR                    
 490                  _E2_ucRamCheckFlg7,                             //U8  xdata E2ucRamCheckFlg7
 491          
 492          //平衡参数区开始 SubClassID=0x08                langth=8
 493                  _E2_BalanceVol,                                 // U16 xdata BalanceVol                 
 494                  _E2_BalanceVolDiff,                             // U16 xdata BalanceVolDiff         
 495                  _E2_BalCurrent,                                         // S16 xdata BalCurrent                     
 496                  _E2_BalanceDelay,                               // U8 xdata BalanceDelay                
 497                  _E2_ucRamCheckFlg8,                                     // U8 xdata E2ucRamCheckFlg8           
 498          
 499          //容量统计 SubClassID=0x09                              langth=17             
 500          
 501                  _E2_ucSOC,                                      //U8  xdata E2ucSOC
 502                  
 503                  _E2_ulDfRC,                                     //U32 xdata E2ulLastFCC
 504          
 505                          _E2_slDsgEndCurr,                                       //U32 xdata E2slDsgEndCurr
 506                  _E2_ulCycleThresholdCount,                      //U32 xdata E2ulCycleThresholdCount
 507                          _E2_uiLastCCount,
 508                          _E2_ucDsgEndFlg,                                        //U8  xdata E2ucDsgEndFlg
 509                  _E2_ucRamCheckFlg9,                                     //U8  xdata E2ucRamCheckFlg9
 510          
 511          //AFE参数区开始 SubClassID=0x0A                 langth=4
 512                          _E2_AFEProtectConfig,                           // U8  xdata AFEProtectConfig
 513                          _E2_AFEOVvol,                                           // U16 xdata AFEOVvol
 514                          _E2_ucRamCheckFlgA,                                     // U8  xdata E2ucRamCheckFlgA
 515          
 516          //校准参数区开始 SubClassID=0x0B                        langth=12         
 517                  _E2_uiVPackGain,                                //U16 xdata E2uiVPackGain
 518                  _E2_siCadcGain,                                         //S16 xdata E2siCadcGain
 519                  _E2_siCadcOffset,                                       //S16 xdata E2siCadcOffset
 520                  _E2_siTS0Offset,                                        //S16 xdata E2siTS0Offset
 521                  _E2_siTS1Offset,                                        //S16 xdata E2siTS1Offset
 522                  _E2_ucCalibrated,                               //S16 xdata E2ucCalibrated
 523                  _E2_ucRamCheckFlgB,                             //U8  xdata E2ucRamCheckFlgB
 524              },
 525          
 526                          _FLASH_CHECK_DATA,                 // U16 xdata FlashCheck      
 527          /*********************************************************************************************************
             -********/
 528          //备份B区
 529          /*********************************************************************************************************
             -********/
 530          /*********************************************************************************************************
             -********/
 531          //系统信息区开始 SubClassID=0x00                langth=48
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 10  

 532                  {
 533                  _E2_PACKCONFIGMAP,                              //U16 xdata E2uiPackConfigMap
 534                  _E2_VOC10,                                                      //U16 xdata VOC10
 535                  _E2_VOC20,                                                      //U16 xdata VOC20
 536                  _E2_VOC30,                                                      //U16 xdata VOC30
 537                  _E2_VOC40,                                                      //U16 xdata VOC40
 538                  _E2_VOC50,                                                      //U16 xdata VOC50
 539                  _E2_VOC60,                                                      //U16 xdata VOC60
 540                  _E2_VOC70,                                                      //U16 xdata VOC70
 541                  _E2_VOC80,                                                      //U16 xdata VOC80
 542                  _E2_VOC90,                                                      //U16 xdata VOC90
 543                  _E2_VOC100,                                     //U16 xdata VOC100
 544                  _E2_ulDesignCapacity,                   // U32 xdata E2ulDesignCapacity                    
 545                  _E2_ulFCC,                                              // U32 xdata E2ulFCC
 546                          _E2_ulCycleThreshold,                           // U32 xdata E2uiCycleThreshold       
 547                          _E2_uiCycleCount,                               // U16 xdata E2uiCycleCount    
 548                          _E2_uiLearnLowTempe,                            // U16 xdata E2uiLearnLowTempe  
 549                          _E2_Reserve,                                            // U16 xdata E2Reserve      
 550                          _E2_siDfilterCur,                       // S16 xdata E2siDfilterCur    
 551                          _E2_ucLowPowerDeley,                            // U8  xdata E2ucLowPowerDeley 
 552                  _E2_ucChgBKDelay,                               // U8  xdata E2ucChgBKDelay              
 553                  _E2_siChgBKCur,                         // S16 xdata E2siChgBKCur                  
 554                  _E2_ucRTCBKDelay,                       // U8  xdata E2ucRTCBKDelay              
 555                  _E2_ucRamCheckFlg0,                     // U8  xdata E2ucRamCheckFlg0  
 556          
 557          
 558          //用户自定义参数区开始 SubClassID=0x01  length=50
 559                  _E2_SWVersion,                                  //U16 xdata SWVersion     
 560                  _E2_HWVersion,                                  //U16 xdata HWVersion     
 561                  _E2_ID,                                         //U8  xdata ID            
 562                  _E2_MNFName,                                    //U8  xdata MNFName[12]  
 563                  _E2_MNFDate,                                    //U32 xdata MNFDate       
 564                  _E2_SerialNum,                                  //U16 xdata SerialNum     
 565                  _E2_DeviceName,                                 //U8  xdata DeviceName[12]
 566                  _E2_DeviceChem,                                 //U8  xdata DeviceChem[12]
 567                  _E2_ChemID,                                     //U16 xdata ChemID        
 568                  _E2_ucRamCheckFlg1,                                     //U8  xdata E2ucRamCheckFlg1
 569                  
 570          //充电参数区开始 SubClassID=0x02                length=18
 571                  _E2_uiOVvol,                                    //U16 xdata E2uiOVvol                           
 572                  _E2_uiOVRvol,                                   //U16 xdata E2uiOVRvol                          
 573                  _E2_ucDelayOV,                                  //U8  xdata E2ucDelayOV                         
 574                  _E2_ucDelayOVR,                                 //U8  xdata E2ucDelayOVR
 575                          _E2_uiChgEndVol,
 576                          _E2_siChgEndCurr,
 577                          _E2_ucChgEndDelay,
 578                  _E2_slOCCvol,                                           //S32 xdata E2slOCCvol                  
 579                  _E2_ucDelayOCC,                                 //U8  xdata E2ucDelayOCC                        
 580                  _E2_ucDelayOCCR,                                //U8  xdata E2ucDelayOCCR
 581                  _E2_ucRamCheckFlg2,                                                     //U8  xdata E2ucRamCheckFlg2
 582          
 583          //放电参数区开始 SubClassID=0x03                langth=21             
 584                  _E2_uiUVvol,                                    //U16 xdata E2uiUVvol                           
 585                  _E2_uiUVRvol,                                           //U16 xdata E2uiUVRvol                          
 586                  _E2_ucDelayUV,                                  //U8  xdata E2ucDelayUV                         
 587                  _E2_ucDelayUVR,                                 //U8  xdata E2ucDelayUVR
 588                          _E2_uiDsgEndVol,
 589                          _E2_ucDsgEndDelay,
 590                  _E2_uiOCDvol,                                   //S32 xdata E2uiOCDvol                  
 591                  _E2_ucDelayOCD,                                         //U8  xdata E2ucDelayOCD                
 592                  _E2_slOCD2vol,                                  //S32 xdata E2slOCD2vol                 
 593                  _E2_ucDelayOCD2,                                //U8  xdata E2ucDelayOCD2                               
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 11  

 594                  _E2_ucDelayLoadR,                               //U8  xdata E2ucDelayLoadR                      
 595                  _E2_ucRamCheckFlg3,                             //U8  xdata E2ucRamCheckFlg3
 596          
 597          
 598          //放电PWM参数区开始 SubClassID=0x05             langth=5             
 599                  _E2_DSG1PWMFreq,                                //U16 xdata DSG1PWMFreq                 
 600                  _E2_DSG1PWMRatioL,                                      //U8  xdata DSG1PWMRatioL               
 601                  _E2_DSG1PWMRatioH,                                      //U8  xdata DSG1PWMRatioH                               
 602                  _E2_ucRamCheckFlg5,                                     //U8  xdata E2ucRamCheckFlg5
 603          
 604          //充电温度保护参数开始 SubClassID=0x06  langth=11
 605                  _E2_TempOTC,                                    //U16 xdata TempOTC                             
 606                  _E2_TempOTCR,                                   //U16 xdata TempOTCR                    
 607                  _E2_TempUTC,                                    //U16 xdata TempUTC                             
 608                  _E2_TempUTCR,                                   //U16 xdata TempUTCR                    
 609                  _E2_DelayOTC,                                           //U8  xdata DelayOTC                    
 610                  _E2_DelayOTCR,                                          //U8  xdata DelayOTCR                   
 611                  _E2_ucRamCheckFlg6,                                     //U8  xdata E2ucRamCheckFlg6
 612          
 613          //放电温度保护参数开始 SubClassID=0x07  langth=9
 614                  _E2_TempOTD,                                    //U16 xdata TempOTD                             
 615                  _E2_TempOTDR,                                   //U16 xdata TempOTDR                    
 616                  _E2_TempUTD,                                    //U16 xdata TempUTD                             
 617                  _E2_TempUTDR,                                   //U16 xdata TempUTDR                    
 618                  _E2_ucRamCheckFlg7,                             //U8  xdata E2ucRamCheckFlg7
 619          
 620          //平衡参数区开始 SubClassID=0x08                langth=8
 621                  _E2_BalanceVol,                                 // U16 xdata BalanceVol                 
 622                  _E2_BalanceVolDiff,                             // U16 xdata BalanceVolDiff         
 623                  _E2_BalCurrent,                                         // S16 xdata BalCurrent                     
 624                  _E2_BalanceDelay,                               // U8 xdata BalanceDelay                
 625                  _E2_ucRamCheckFlg8,                                     // U8 xdata E2ucRamCheckFlg8           
 626          
 627          //容量统计 SubClassID=0x09                              langth=17             
 628                  _E2_ucSOC,                                      //U8  xdata E2ucSOC     
 629                  _E2_ulDfRC,                                     //U32 xdata E2ulLastFCC
 630                          _E2_slDsgEndCurr,                                       //U32 xdata E2slDsgEndCurr
 631                  _E2_ulCycleThresholdCount,                      //U32 xdata E2ulCycleThresholdCount
 632                          _E2_uiLastCCount,
 633                          _E2_ucDsgEndFlg,                                        //U8  xdata E2ucDsgEndFlg
 634                          
 635                  _E2_ucRamCheckFlg9,                                     //U8  xdata E2ucRamCheckFlg9
 636          
 637          //AFE参数区开始 SubClassID=0x0A                 langth=4
 638                          _E2_AFEProtectConfig,                           // U8  xdata AFEProtectConfig
 639                          _E2_AFEOVvol,                                           // U16 xdata AFEOVvol
 640                          _E2_ucRamCheckFlgA,                                     // U8  xdata E2ucRamCheckFlgA
 641          
 642          //校准参数区开始 SubClassID=0x0B                        langth=12         
 643                  _E2_uiVPackGain,                                //U16 xdata E2uiVPackGain
 644                  _E2_siCadcGain,                                         //S16 xdata E2siCadcGain
 645                  _E2_siCadcOffset,                                       //S16 xdata E2siCadcOffset
 646                  _E2_siTS0Offset,                                        //S16 xdata E2siTS0Offset
 647                  _E2_siTS1Offset,                                        //S16 xdata E2siTS1Offset
 648                  _E2_ucCalibrated,                               //S16 xdata E2ucCalibrated
 649                  _E2_ucRamCheckFlgB,                             //U8  xdata E2ucRamCheckFlgB
 650              },
 651          
 652                          _FLASH_CHECK_DATA,                 // U16 xdata FlashCheck
 653          };
 654          
 655          //*** <<< end of configuration section >>> ***
C51 COMPILER V9.01   DATAFLASH                                                             02/08/2025 14:58:02 PAGE 12  



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   ----    ----
   CONSTANT SIZE    =   1024    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)
