/* This function returns either the unmodified CRC result or the post- processed CRC result from the EC module. The post-processing options are selectable through  */
uint32_t CRCDataProcess(uint32_t ui32Base, uint32_t *pui32DataIn, uint32_t ui32DataLength, bool bPPResult)
/* This function returns either the unmodified CRC result or the post- processed CRC result from the EC module. The post-processing options are selectable through  */
uint32_t CRCDataProcess(uint32_t ui32Base, uint32_t *pui32DataIn, uint32_t ui32DataLength, bool bPPResult)
{
    uint8_t *pui8DataIn;
    ASSERT(ui32Base == CCM0_BASE);
    if(HWREG(ui32Base + CCM_O_CRCCTRL) & CCM_CRCCTRL_SIZE)
    {
        pui8DataIn = (uint8_t *)pui32DataIn;
        while(ui32DataLength--)
        {
            HWREG(ui32Base + CCM_O_CRCDIN) = *pui8DataIn++;
        }
    }
    else
    {
        while(ui32DataLength--)
        {
            HWREG(ui32Base + CCM_O_CRCDIN) = *pui32DataIn++;
        }
    }
    return(CRCResultRead(ui32Base, bPPResult));
}