check_crc fix
This commit is contained in:
@@ -259,7 +259,7 @@ unsigned int crcPayload(unsigned char * inptr, int bitlen, uint32_t* crc256Table
|
||||
|
||||
int check_crc(uint8_t* decoded_bytes, uint32_t n, uint32_t F, uint8_t crc_type)
|
||||
{
|
||||
uint32_t crc,oldcrc;
|
||||
uint32_t crc=0,oldcrc=0;
|
||||
uint8_t crc_len,temp;
|
||||
|
||||
switch (crc_type) {
|
||||
@@ -280,17 +280,15 @@ int check_crc(uint8_t* decoded_bytes, uint32_t n, uint32_t F, uint8_t crc_type)
|
||||
crc_len=3;
|
||||
}
|
||||
|
||||
oldcrc= *((unsigned int *)(&decoded_bytes[(n>>3)-crc_len]));
|
||||
for (int i=0; i<crc_len; i++)
|
||||
oldcrc |= (decoded_bytes[(n>>3)-crc_len+i])<<((crc_len-1-i)<<3);
|
||||
|
||||
switch (crc_type) {
|
||||
|
||||
case CRC24_A:
|
||||
oldcrc&=0x00ffffff;
|
||||
crc = crc24a(&decoded_bytes[F>>3],
|
||||
n-24-F)>>8;
|
||||
temp=((uint8_t *)&crc)[2];
|
||||
((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0];
|
||||
((uint8_t *)&crc)[0] = temp;
|
||||
crc = crc24a(decoded_bytes,
|
||||
n-24)>>8;
|
||||
|
||||
break;
|
||||
|
||||
@@ -298,9 +296,6 @@ int check_crc(uint8_t* decoded_bytes, uint32_t n, uint32_t F, uint8_t crc_type)
|
||||
oldcrc&=0x00ffffff;
|
||||
crc = crc24b(decoded_bytes,
|
||||
n-24)>>8;
|
||||
temp=((uint8_t *)&crc)[2];
|
||||
((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0];
|
||||
((uint8_t *)&crc)[0] = temp;
|
||||
|
||||
break;
|
||||
|
||||
|
||||
@@ -508,8 +508,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
|
||||
llrProcBuf,
|
||||
p_procTime);
|
||||
|
||||
/*
|
||||
if (check_crc(llrProcBuf,Kr,harq_process->F,crc_type)) {
|
||||
if (check_crc(llrProcBuf,harq_process->B,harq_process->F,crc_type)) {
|
||||
printf("CRC OK\n");
|
||||
ret = 2;
|
||||
}
|
||||
@@ -517,7 +516,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
|
||||
printf("CRC NOK\n");
|
||||
ret = 1+dlsch->max_ldpc_iterations;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
nb_total_decod++;
|
||||
if (no_iteration_ldpc > dlsch->max_ldpc_iterations){
|
||||
@@ -539,7 +538,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
|
||||
|
||||
#ifdef DEBUG_DLSCH_DECODING
|
||||
//printf("output decoder %d %d %d %d %d \n", harq_process->c[r][0], harq_process->c[r][1], harq_process->c[r][2],harq_process->c[r][3], harq_process->c[r][4]);
|
||||
for (int k=0;k<32;k++)
|
||||
for (int k=0;k<A>>3;k++)
|
||||
printf("output decoder [%d] = 0x%02x \n", k, harq_process->c[r][k]);
|
||||
printf("no_iterations_ldpc %d (ret %d)\n",no_iteration_ldpc,ret);
|
||||
//write_output("dec_output.m","dec0",harq_process->c[0],Kr_bytes,1,4);
|
||||
|
||||
Reference in New Issue
Block a user