Exemplo n.º 1
0
/**
 * @brief UpiGetBackupMemorySize
 *
 *  Get memory size used in backup module
 *
 * @return  memory size
 */
_backup_u32_ UpiGetBackupMemorySize(void)
{
  _backup_u32_ totalSize;
  _backup_u32_ tmp;

  totalSize = 0;

  #ifndef UG31XX_SHELL_ALGORITHM

  tmp = (_backup_u32_)sizeof(CheckBackupFile_orgCapData);
  totalSize = totalSize + tmp;
  UG31_LOGD("[%s]: memory size for CheckBackupFile_orgCapData = %d (%d)\n", __func__, (int)tmp, (int)totalSize);

  tmp = (_backup_u32_)sizeof(CheckBackupFile_orgSysData);
  totalSize = totalSize + tmp;
  UG31_LOGD("[%s]: memory size for CheckBackupFile_orgSysData = %d (%d)\n", __func__, (int)tmp, (int)totalSize);

  tmp = (_backup_u32_)sizeof(UpiWriteSuspendResumeData_buf[0]);
  totalSize = totalSize + tmp*BACKUP_MAX_LOG_SUSPEND_DATA;
  UG31_LOGD("[%s]: memory size for UpiWriteSuspendResumeData_buf = %d (%d)\n", __func__, (int)tmp, (int)totalSize);
  
  #endif  ///< end of UG31XX_SHELL_ALGORITHM

  return (totalSize);
}
Exemplo n.º 2
0
/**
 * @brief UpdateBackupFile
 *
 *  Update backup file
 *
 * @para  data  address of BackupDataType
 * @return  CHECK_BACKUP_FILE_STS
 */
_backup_u8_ UpdateBackupFile(BackupDataType *data)
{
  _upi_bool_ rtn;

  PrepareData(data);
  rtn = write_backup_file(data->backupFileName, data->backupBuffer, data->backupBufferSize);
  if(rtn == _UPI_FALSE_)
  {
    UG31_LOGD("[%s]: Write data to backup file fail.\n", __func__);
    return (CHECK_BACKUP_FILE_STS_WRITE_FAIL);
  }
  return (CHECK_BACKUP_FILE_STS_PASS);
}
/**
 * @brief UpdateBackupFile
 *
 *  Update backup file
 *
 * @para  data  address of BackupDataType
 * @return  CHECK_BACKUP_FILE_STS
 */
_backup_u8_ UpdateBackupFile(BackupDataType *data)
{
  _upi_bool_ rtn;

  PrepareData(data);
  #if defined (uG31xx_OS_WINDOWS)
  rtn = write_backup_file(data->backupFileName, data->backupBuffer, data->backupBufferSize);
  #else  ///< else of defined (uG31xx_OS_WINDOWS)
  rtn = write_backup_file(ptrBackupFileName, data->backupBuffer, data->backupBufferSize);
  #endif ///< end of defined (uG31xx_OS_WINDOWS)
  if(rtn == _UPI_FALSE_)
  {
    UG31_LOGD("[%s]: Write data to backup file fail.\n", __func__);
    return (CHECK_BACKUP_FILE_STS_WRITE_FAIL);
  }
  return (CHECK_BACKUP_FILE_STS_PASS);
}
Exemplo n.º 4
0
/**
 * @brief CheckBackupFile
 *
 *  Check backup file is consisted with IC or not
 *
 * @para  data  address of BackupDataType
 * @return  CHECK_BACKUP_FILE_STS
 */
_backup_u8_ CheckBackupFile(BackupDataType *data)
{
  CapacityDataType *orgCapData;
  SystemDataType *orgSysData;
  _upi_bool_ rtn;
  _backup_u32_ driverVer;
  _backup_u8_ rtnU8;
  _backup_u16_ volt1;
  _backup_u16_ volt2;

  /// [AT-PM] : Create buffer ; 02/21/2013
  #ifndef UG31XX_SHELL_ALGORITHM
    orgCapData = &CheckBackupFile_orgCapData;
    orgSysData = &CheckBackupFile_orgSysData;
  #else   ///< else of UG31XX_SHELL_ALGORITHM
    orgCapData = (CapacityDataType *)upi_malloc(sizeof(CapacityDataType));
    orgSysData = (SystemDataType *)upi_malloc(sizeof(SystemDataType));
  #endif  ///< end of UG31XX_SHELL_ALGORITHM
  upi_memcpy(orgCapData, data->capData, sizeof(CapacityDataType));
  upi_memcpy(orgSysData, data->sysData, sizeof(SystemDataType));
  volt1 = data->backupVolt1;
  volt2 = data->backupVolt2;

  /// [AT-PM] : Get data from file ; 02/21/2013
  rtn = read_backup_file(data->backupFileName, data->backupBuffer, data->backupBufferSize);
  if(rtn == _UPI_FALSE_)
  {
    UG31_LOGD("[%s]: Read data from backup file fail.\n", __func__);
    #ifdef  UG31XX_SHELL_ALGORITHM
      upi_free(orgCapData);
      upi_free(orgSysData);
    #endif  ///< end of UG31XX_SHELL_ALGORITHM
    return (CHECK_BACKUP_FILE_STS_READ_FAIL);
  }
  driverVer = ConvertData(data);

  /// [AT-PM] : Following information is not checked ; 02/21/2013
  data->sysData->rmFromIC = orgSysData->rmFromIC;
  data->sysData->timeTagFromIC = orgSysData->timeTagFromIC;
  data->sysData->deltaCapFromIC = orgSysData->deltaCapFromIC;
  data->sysData->adc1ConvTime = orgSysData->adc1ConvTime;
  data->capData->preDsgCharge = orgCapData->preDsgCharge;
  
  /// [AT-PM] : Check data ; 02/21/2013
  if(driverVer != UG31XX_DRIVER_VERSION)
  {
    UG31_LOGN("[%s]: Backup file version mismatched.\n", __func__);
    rtnU8 = CHECK_BACKUP_FILE_STS_VERSION_MISMATCH;
  }
  else if((upi_memcmp(data->backupCustomerSelfDef, data->sysData->ggbParameter->customerSelfDef, CELL_PARAMETER_STRING_LENGTH) != 0) ||
           (upi_memcmp(data->backupProjectSelfDef, data->sysData->ggbParameter->projectSelfDef, CELL_PARAMETER_STRING_LENGTH) != 0))
  {
    UG31_LOGN("[%s]: Backup file cell information mismatched.\n", __func__);
    rtnU8 = CHECK_BACKUP_FILE_STS_VERSION_MISMATCH;
  }
  else if((upi_memcmp(orgCapData, data->capData, sizeof(CapacityDataType)) != 0) ||
          (upi_memcmp(orgSysData, data->sysData, sizeof(SystemDataType)) != 0) ||
          (volt1 != data->backupVolt1) ||
          (volt2 != data->backupVolt2))
  {
    UG31_LOGN("[%s]: Backup file needs to be updated\n", __func__);
    rtnU8 = CHECK_BACKUP_FILE_STS_NEED_UPDATE;
  }
  else
  {
    rtnU8 = CHECK_BACKUP_FILE_STS_PASS;
  }
  #ifdef  UG31XX_SHELL_ALGORITHM
    upi_free(orgCapData);
    upi_free(orgSysData);
  #endif  ///< end of UG31XX_SHELL_ALGORITHM
  return (rtnU8);
}