void crcSignGen(crcBASE_t *crc,crcModConfig_t *param)
{
/* USER CODE BEGIN (6) */
/* USER CODE END */
    uint32 i = 0U;
    volatile uint32 * ptr32;
    ptr32=param->src_data_pat;

    if(param->mode==CRC_AUTO)
    {
/**      -do a channel reset
*        -clear all interrupts by reading offset register
*        -set CRC FAIL interrupt
*        -set the pattern count and sector count
*        -HW trigger in AUTO mode for CRC register update
*        -copy from memory location to CRC register using DMA
*        -copy from memory to PSA signature register using DMA
*        -frame or block transfer,auto init
*        -compare with crc reference
*        -do a channel reset
*/
    }
    else if(param->mode==CRC_SEMI_CPU)
    {
    /* after DMA does the transfer,CPU is invoked by CC interrupt to do signature verification */
    }
    else if(param->mode==CRC_FULL_CPU)
    {
        for(i=0U;i<param->data_length;i++)
        {
            switch (param->crc_channel)
                {
            case 0U:
                crc->PSA_SIGREGL1= *ptr32++;
                crc->PSA_SIGREGH1= *ptr32++;
						break;
            case 1U:
                crc->PSA_SIGREGL2= *ptr32++;//感觉这种计算方法不正确
                crc->PSA_SIGREGH2= *ptr32++;
						break;
			default :
			            break;			
              }
          }
/* USER CODE BEGIN (7) */
/* USER CODE END */
    }
	else
	{
    /** Empty  */
	}
}