From 02ccf4995ac705d90cbef941aa289c15982cdfcc Mon Sep 17 00:00:00 2001 From: HUOHUO Date: Sun, 6 Apr 2025 07:30:15 -0700 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8DSYNC=20=E5=81=8F=E7=A7=BB?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E8=B6=85=E5=87=BA=E8=8C=83=E5=9B=B4=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Receiver_symb/src/receiver_Symb_Proc.s.c | 30 +++++++++---------- .../Receiver_sync/src/receiver_Sync_Proc.s.c | 13 +++++--- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/APELib/Receiver_symb/src/receiver_Symb_Proc.s.c b/APELib/Receiver_symb/src/receiver_Symb_Proc.s.c index 14356c0..8c292df 100644 --- a/APELib/Receiver_symb/src/receiver_Symb_Proc.s.c +++ b/APELib/Receiver_symb/src/receiver_Symb_Proc.s.c @@ -68,7 +68,7 @@ void Receiver_Symb_Proc( - + return ; // //计算结果搬移到外存 // temp_u32 = 1000;//计算byte数 @@ -84,22 +84,22 @@ void Receiver_Symb_Proc( TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 5, time1 -time0); time0 = time1; - // ChannelEst_Proc(param_ptr,temp_dm0_ptr,temp_dm1_ptr); - // TRACE(TRACE_RECEIVER_SYMB_ADDR, 3, 4); - // time1 = Time_offset(0); - // TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 6, time1 -time0); - // time0 = time1; + ChannelEst_Proc(param_ptr,temp_dm0_ptr,temp_dm1_ptr); + TRACE(TRACE_RECEIVER_SYMB_ADDR, 3, 4); + time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 6, time1 -time0); + time0 = time1; - // ChannelEqu_Proc(param_ptr, temp_dm0_ptr, temp_dm1_ptr, temp_dm2_ptr, temp_dm3_ptr); - // TRACE(TRACE_RECEIVER_SYMB_ADDR, 3, 5); - // time1 = Time_offset(0); - // TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 7, time1 -time0); - // time0 = time1; + ChannelEqu_Proc(param_ptr, temp_dm0_ptr, temp_dm1_ptr, temp_dm2_ptr, temp_dm3_ptr); + TRACE(TRACE_RECEIVER_SYMB_ADDR, 3, 5); + time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 7, time1 -time0); + time0 = time1; - // Transform_Proc(param_ptr, temp_dm0_ptr, temp_dm1_ptr, temp_dm2_ptr, temp_dm3_ptr); - // TRACE(TRACE_RECEIVER_SYMB_ADDR, 3, 6); - // time1 = Time_offset(0); - // TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 8, time1 -time0); + Transform_Proc(param_ptr, temp_dm0_ptr, temp_dm1_ptr, temp_dm2_ptr, temp_dm3_ptr); + TRACE(TRACE_RECEIVER_SYMB_ADDR, 3, 6); + time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 8, time1 -time0); time0 = time1; #ifdef IDE_TEST diff --git a/APELib/Receiver_sync/src/receiver_Sync_Proc.s.c b/APELib/Receiver_sync/src/receiver_Sync_Proc.s.c index fec35df..9920a2b 100644 --- a/APELib/Receiver_sync/src/receiver_Sync_Proc.s.c +++ b/APELib/Receiver_sync/src/receiver_Sync_Proc.s.c @@ -259,7 +259,7 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) dbg_time0 = Time_offset(2); //搬移1055sample数据供定时同步,奇数slot处理偶buffer数据,反之 - +#ifndef RECV_DBG_DATA_TEST if( 1 == (slot & 0x01) ) { src_addr0 = (uint32_t)JESD_NRFDD_RX_SLOT_EVEN_DATA_ADDR; @@ -270,6 +270,10 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) src_addr0 = (uint32_t)JESD_NRFDD_RX_SLOT_ODD_DATA_ADDR; src_addr1 = (uint32_t)JESD_NRFDD_RX_SLOT_EVEN_DATA_ADDR; } +#else + src_addr0 = (uint32_t)JESD_NRFDD_RX_SLOT_EVEN_DATA_ADDR; + src_addr1 = (uint32_t)JESD_NRFDD_RX_SLOT_ODD_DATA_ADDR; +#endif ape_csu_task_lookup(DMA_TAG_G2L, 1); //取数方式,同步点为中心,前16,后15,相关长度1024 @@ -385,8 +389,8 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) TRACE(TRACE_RECEIVER_SYNC_FINE_ADDR, 3, 5); uint32_t maxWindowSum = receiver_sync_temp_dm3_ptr[1]; //更新最佳位置 - uint32_t bestPosition =receiver_sync_temp_dm3_ptr[0]-16 + frame_head_offset; - LOG_ERROR_S("%d %d\n", receiver_sync_temp_dm3_ptr[0], receiver_sync_temp_dm3_ptr[1]); + int32_t bestPosition =receiver_sync_temp_dm3_ptr[0]-16 + frame_head_offset; + LOG_ERROR_S("%d %d %d\n", receiver_sync_temp_dm3_ptr[0], receiver_sync_temp_dm3_ptr[1], bestPosition); //更新sync2symb的buffer状态记录 STORE_EX_W(&g_receiver_sync_status_SM_ptr->cylic_buffer_data_len, LOAD_EX_W(&g_receiver_sync_status_SM_ptr->cylic_buffer_data_len) + 61440); STORE_EX_W(&g_receiver_sync_status_SM_ptr->cylic_buffer_data_offset , 61440 * buffer_sel2); @@ -431,6 +435,7 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) //为了适配SYMB接口,如果数据是两段,搬移成一块 if(2 == data_send2symb_task[task_idx].num_data_section) { + ape_csu_task_lookup(DMA_TAG_G2G,1); ape_csu_dma_1D_G2L_ch0ch1_transfer((uint64_t)(data_send2symb_task[task_idx].data_section1_ptr), (uint64_t)(data_send2symb_task[task_idx].data_section0_ptr + data_send2symb_task[task_idx].data_section0_length), (data_send2symb_task[task_idx].data_section1_length)<<2, @@ -462,7 +467,7 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) uint32_t threshold = 1; if(threshold) { - STORE_EX_W(&g_receiver_sync_status_SM_ptr->frame_head_offset , bestPosition % 61440); + STORE_EX_W(&g_receiver_sync_status_SM_ptr->frame_head_offset , (bestPosition+61440) % 61440); //LOG_INFO_S("rec sync track offset: %d\n", bestPosition % 61440); ret = SYNC_OK; }