跳过PCIE和同步,测试SYMB版本

This commit is contained in:
HUOHUO 2025-05-07 11:32:51 -07:00
parent 33295fb6da
commit 696341f95d
10 changed files with 61713 additions and 48 deletions

View File

@ -487,6 +487,8 @@ void pcie_test_task_init()
void pcie_test_task_func(receiver_sync2pcie_t* msg_ptr, uint32_t msg_len)
{
RUN_CNT(TRACE_PCIE_ADDR, 0);
g_time_start[1] = TIME_NS();
//获取状态机状态
receiver_sync_status_t* status_SM_addr= (uint32_t)RECEIVER_SYNC2SYNC_FIRST_INF_ADDR;
/*typedef enum
@ -505,25 +507,22 @@ void pcie_test_task_func(receiver_sync2pcie_t* msg_ptr, uint32_t msg_len)
uint32_t data_len = 1024*4;
return ;
g_time_start[1] = TIME_NS();
RUN_CNT(TRACE_PCIE_ADDR, 0);
//uint32_t clockTick = 0;
// uint32_t clockOffset = 0;
TRACE(TRACE_PCIE_ADDR, 3, 1);
test_case_sendmsg_pcie();
TRACE(TRACE_PCIE_ADDR, 3, 2);
#ifdef PCIE_WITH_JESD
// return ;
#endif
test_speed_recv_msg_pcie();
debug_write(DBG_DDR_COMMON_IDX(get_core_id(),17), 0x70701040);
//delay_us(50);
TRACE(TRACE_PCIE_ADDR, 3, 0xffff);
RUN_CNT(TRACE_PCIE_ADDR, 1);
// //uint32_t clockTick = 0;
// // uint32_t clockOffset = 0;
// TRACE(TRACE_PCIE_ADDR, 3, 1);
// test_case_sendmsg_pcie();
// TRACE(TRACE_PCIE_ADDR, 3, 2);
// #ifdef PCIE_WITH_JESD
// #endif
// test_speed_recv_msg_pcie();
// debug_write(DBG_DDR_COMMON_IDX(get_core_id(),17), 0x70701040);
// //delay_us(50);
TRACE_MAX(TRACE_PCIE_ADDR, 2, Time_offset(1) );
@ -542,12 +541,17 @@ void pcie_test_task_func(receiver_sync2pcie_t* msg_ptr, uint32_t msg_len)
STORE_EX_W(&(pcie2sync->thita34_val) , g_thita34_val);
STORE_EX_W(&(pcie2sync->status) , 1); // 0: not ready 1: wait APE4 read 2:APE4 read & done
STORE_EX_W(status_SM_addr->sync_status , 3);
STORE_EX_W(&(status_SM_addr->sync_status) , 3);
__ucps2_synch(0);
#endif
TRACE(TRACE_PCIE_ADDR, 3, 0xffff);
RUN_CNT(TRACE_PCIE_ADDR, 1);
TRACE_MAX(TRACE_PCIE_ADDR, 2, Time_offset(1) );
return;
}

View File

@ -24,6 +24,7 @@
#include "trace.h"
#include "freOffEstImpl.h"
#include "freOffCompImpl.h"
#include "Transform.h"
//include mpu header files
@ -60,7 +61,9 @@ void FreOff_Proc(
void ChannelEst_Proc(
uint32_t *param_ptr,
int32_t *temp_dm0_ptr,
int32_t *temp_dm1_ptr
int32_t *temp_dm1_ptr,
int32_t *temp_dm2_ptr,
int32_t *temp_dm3_ptr
);

View File

@ -29,6 +29,8 @@
#define RECEIVER_SYMB_IFFT4096_AddCP_CFG7_LENGTH (0x0130)
#define RECEIVER_SYMB_DeTransform2_CFG8_LENGTH (0x0060)
#define RECEIVER_SYMB_DeTransform4_CFG9_LENGTH (0x0080)
#define RECEIVER_SYMB_Transform8_CFG10_LENGTH (0x00c0)
#define RECEIVER_SYMB_ByteSet_CFG10_LENGTH (0x0040)
@ -37,7 +39,7 @@
#define RECEIVER_SYMB_FREOFF_CFG_LENGTH (RECEIVER_SYMB_FreOffEst_CFG1_LENGTH + RECEIVER_SYMB_FreOffComp_CFG2_LENGTH + RECEIVER_SYMB_FreOffCordic_CFG3_LENGTH )
#define RECEIVER_SYMB_CHANNELEST_CFG_LENGTH (RECEIVER_SYMB_ChannelEst_CFG4_LENGTH)
#define RECEIVER_SYMB_CHANNELEQU_CFG_LENGTH (RECEIVER_SYMB_Fft4096Int32_CFG5_LENGTH + RECEIVER_SYMB_EQ21Part1_CFG6_LENGTH + RECEIVER_SYMB_EQ1Part2_CFG6_1_LENGTH + RECEIVER_SYMB_IFFT4096_CFG7_LENGTH + RECEIVER_SYMB_IFFT4096_TURN_CFG7_LENGTH + RECEIVER_SYMB_IFFT4096_AddCP_CFG7_LENGTH )
#define RECEIVER_SYMB_DeTransformer_CFG_LENGTH (RECEIVER_SYMB_DeTransform2_CFG8_LENGTH + RECEIVER_SYMB_DeTransform4_CFG9_LENGTH)
#define RECEIVER_SYMB_DeTransformer_CFG_LENGTH (RECEIVER_SYMB_DeTransform2_CFG8_LENGTH + RECEIVER_SYMB_DeTransform4_CFG9_LENGTH + RECEIVER_SYMB_Transform8_CFG10_LENGTH)
#define RECEIVER_SYMB_COMMEN_CFG_LENGTH (RECEIVER_SYMB_FREOFF_CFG_LENGTH + RECEIVER_SYMB_CHANNELEST_CFG_LENGTH + RECEIVER_SYMB_CHANNELEQU_CFG_LENGTH + RECEIVER_SYMB_DeTransformer_CFG_LENGTH)

View File

@ -2,14 +2,20 @@
#include "receiver_symb_func.h"
#include "ByteSet.h"
void ChannelEst_Proc(
uint32_t *param_ptr,
int32_t *temp_dm0_ptr,
int32_t *temp_dm1_ptr
int32_t *temp_dm1_ptr,
int32_t *temp_dm2_ptr,
int32_t *temp_dm3_ptr
)
{
//局部变量定义
receiver_sync2symb_t *proc_info = param_ptr;
int32_t *cfg_addr;
uint32_t time_data_ddr_ptr;
uint32_t time_data_length;
@ -19,6 +25,8 @@ void ChannelEst_Proc(
// Get Configuration and LUT
uint32_t *ConfigAddr_channelEst = receiver_symb_config_dm0_ptr + RECEIVER_SYMB_FreOffEst_CFG1_LENGTH + RECEIVER_SYMB_FreOffComp_CFG2_LENGTH + RECEIVER_SYMB_FreOffCordic_CFG3_LENGTH;
uint32_t *cfg_transform8 = receiver_symb_config_dm0_ptr + RECEIVER_SYMB_FREOFF_CFG_LENGTH + RECEIVER_SYMB_CHANNELEST_CFG_LENGTH + RECEIVER_SYMB_CHANNELEQU_CFG_LENGTH + RECEIVER_SYMB_DeTransform2_CFG8_LENGTH + RECEIVER_SYMB_DeTransform4_CFG9_LENGTH;
uint32_t *Pilot_orig_LUT = receiver_symb_config_dm2_ptr;
uint32_t *InputPilotAddr = (uint32_t *)time_data_dm0_ptr;
uint32_t *channelEstOutAddr = (uint32_t *)(temp_dm1_ptr);
@ -36,12 +44,26 @@ void ChannelEst_Proc(
time_data_length = 1024;
ape_csu_task_lookup(DMA_TAG_G2L, 1);
ape_csu_dma_1D_G2L_ch0ch1_transfer((uint64_t)time_data_ddr_ptr,
(uint64_t)DM_TO_CSU_ADDR(time_data_dm0_ptr),
(uint64_t)DM_TO_CSU_ADDR(InputPilotAddr),
time_data_length*4,
DMA_TAG_G2L,
0);
// 新增了Pilot正变换
ChannelEstImpl(ConfigAddr_channelEst, Pilot_orig_LUT, InputPilotAddr, channelEstOutAddr + subIndex*4096);
double thita[6];
double *db_imag = proc_info->transform_para_real;
double *db_real = proc_info->transform_para_imag;
uint32_t *PilotTrans = temp_dm3_ptr;
Transform((int)cfg_transform8,MPU_ADDR(Pilot_orig_LUT),MPU_ADDR(PilotTrans), 8, db_real, db_imag, 1);
SVRReg[0] = MPU_ADDR(cfg_transform8);
WAIT_MPU_STOP;
ape_csu_task_lookup(DMA_TAG_G2L, 1);
Transform8Asm(SVRReg);
ChannelEstImpl(ConfigAddr_channelEst, PilotTrans, InputPilotAddr, channelEstOutAddr + subIndex*4096);
WAIT_MPU_STOP;
}

View File

@ -84,7 +84,7 @@ 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);
ChannelEst_Proc(param_ptr,temp_dm0_ptr,temp_dm1_ptr,temp_dm2_ptr,temp_dm3_ptr);
TRACE(TRACE_RECEIVER_SYMB_ADDR, 3, 4);
time1 = Time_offset(0);
TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 6, time1 -time0);

View File

@ -93,13 +93,14 @@ void Receiver_Sync_Init()
#ifdef RECV_DBG_DATA_TEST
uint32_t dbg_addr,dbg_len;
ret = osp_get_cfgfile("frame_0x610e0000_245760.dat",
ret = osp_get_cfgfile("timedatasym.dat", //timedatasym.dat frame_0x610e0000_245760.dat
(uint32_t *)&(dbg_addr),
(int32_t *)&(dbg_len));
if(-1 == ret)
{
LOG_ERROR_S("frame_0x610e0000_245760.dat not found!\n");
//LOG_ERROR_S("frame_0x610e0000_245760.dat not found!\n");
LOG_ERROR_S("timedatasym.dat not found!\n");
}
else
{

View File

@ -269,8 +269,8 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot, uint32_t proc_type)
uint32_t src_addr1;
//用于指示循环buffer空口数据的存储头
uint32_t buffer_sel = (slot + RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER -1) & 0x3;
uint32_t buffer_sel2 = (buffer_sel + 1) & 0x3;
uint32_t buffer_sel = (slot + RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER -1) % RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER;
uint32_t buffer_sel2 = (buffer_sel + 1) % RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER;
TRACE(TRACE_RECEIVER_SYNC_FINE_ADDR, 3, 1);
//Proc的DM空间申请
@ -411,13 +411,14 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot, uint32_t proc_type)
uint32_t maxWindowSum = 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);
LOG_ERROR_S("bestpos %d %d %d\n", receiver_sync_temp_dm3_ptr[0], maxWindowSum, 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);
volatile uint32_t 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_len, cylic_buffer_data_len);
STORE_EX_W(&g_receiver_sync_status_SM_ptr->cylic_buffer_data_offset , 61440 * buffer_sel2);
volatile cylic_buffer_proc_data_offset = LOAD_EX_W(&g_receiver_sync_status_SM_ptr->cylic_buffer_proc_data_offset);
volatile int32_t cylic_buffer_proc_data_offset = LOAD_EX_W(&g_receiver_sync_status_SM_ptr->cylic_buffer_proc_data_offset);
if(-1 == cylic_buffer_proc_data_offset ) //初始态,初始化数据处理偏移
{
STORE_EX_W(&g_receiver_sync_status_SM_ptr->cylic_buffer_proc_data_offset , 61440 * buffer_sel);
@ -426,28 +427,28 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot, uint32_t proc_type)
}
volatile cylic_buffer_data_offset = 61440 * buffer_sel2;
volatile int32_t cylic_buffer_data_offset = 61440 * buffer_sel2;
uint32_t cylic_buffer_data_offset_temp = (cylic_buffer_data_offset >= cylic_buffer_proc_data_offset) ?
cylic_buffer_data_offset :
(cylic_buffer_data_offset + 61440 * RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER);
uint32_t offset_temp = 0 + frame_head_offset;
uint32_t cylic_buffer_data_len = LOAD_EX_W(&g_receiver_sync_status_SM_ptr->cylic_buffer_data_len);
while(offset_temp <= cylic_buffer_data_offset_temp)
//while(offset_temp <= cylic_buffer_data_offset_temp)
{
if( (cylic_buffer_proc_data_offset + 61440 <= offset_temp) )
{
LOG_ERROR_S("%d %d %d\n", offset_temp, cylic_buffer_data_offset_temp, cylic_buffer_proc_data_offset);
//if( (cylic_buffer_proc_data_offset + 61440 <= offset_temp) )
//{
TRACE(TRACE_RECEIVER_SYNC_FINE_ADDR, 3, 6);
//填写给symb任务的调度信息
data_send2symb_task[task_idx].sfn = sfn;
data_send2symb_task[task_idx].slot = slot;
data_send2symb_task[task_idx].num_data_section = (offset_temp >= (61440 * RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER) && (offset_temp < (61440 * (RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER+1))) ) ? 2 : 1;
data_send2symb_task[task_idx].num_data_section = 1;//(offset_temp >= (61440 * RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER) && (offset_temp < (61440 * (RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER+1))) ) ? 2 : 1;
data_send2symb_task[task_idx].proc_id = g_proc_id;
data_send2symb_task[task_idx].data_section0_ptr = sync2symb_data_buffer[0] + (((offset_temp - 61440) % (61440*RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER))<<2);
data_send2symb_task[task_idx].data_section0_length = (offset_temp > (61440 * RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER)) ? ((61440 * RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER) - (offset_temp - 61440)) : 61440;
data_send2symb_task[task_idx].data_section1_ptr = (2 == data_send2symb_task[task_idx].num_data_section) ? (sync2symb_data_buffer[0]) : 0;
data_send2symb_task[task_idx].data_section1_length = (2 == data_send2symb_task[task_idx].num_data_section) ? (61440 - data_send2symb_task[task_idx].data_section0_length) : 0;
data_send2symb_task[task_idx].data_section0_ptr = ((slot & 0x1) == 1) ? JESD_NRFDD_RX_SLOT_EVEN_DATA_ADDR : JESD_NRFDD_RX_SLOT_ODD_DATA_ADDR;//sync2symb_data_buffer[0] + (((offset_temp - 61440) % (61440*RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER))<<2);
data_send2symb_task[task_idx].data_section0_length = 61440;//(offset_temp > (61440 * RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER)) ? ((61440 * RECEIVER_SYNC_SYNC2SYMB_NUM_BUFFER) - (offset_temp - 61440)) : 61440;
data_send2symb_task[task_idx].data_section1_ptr = 0;// (2 == data_send2symb_task[task_idx].num_data_section) ? (sync2symb_data_buffer[0]) : 0;
data_send2symb_task[task_idx].data_section1_length = 0;//(2 == data_send2symb_task[task_idx].num_data_section) ? (61440 - data_send2symb_task[task_idx].data_section0_length) : 0;
data_send2symb_task[task_idx].transform_para_real[0] = transform_get_thita1_real();
data_send2symb_task[task_idx].transform_para_real[1] = transform_get_thita2_real();
data_send2symb_task[task_idx].transform_para_real[2] = transform_get_thita3_real();
@ -499,7 +500,7 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot, uint32_t proc_type)
}
g_proc_id++;
task_idx++;
}
//}
offset_temp += 61440;
}

View File

@ -132,13 +132,13 @@
#define TRACE_RECEIVER_SYMB_ADDR (TRACE_RECEIVER_SYNC_ADDR + 2*TRACE_GRP_LEN)// 0x88700800
#endif
#define TRACE_RECEIVER_BIT_ADDR (TRACE_RECEIVER_SYNC_ADDR + 3*TRACE_GRP_LEN)// 0x88700800
#define TRACE_TESTTASK_ADDR (TRACE_RECEIVER_BIT_ADDR + TRACE_GRP_LEN) // 0x88700a00
#define TRACE_RECEIVER_SYNC_FIRST_ADDR (TRACE_TESTTASK_ADDR + TRACE_GRP_LEN) // 0x88700c00
#define TRACE_RECEIVER_SYNC_FINE_ADDR (TRACE_RECEIVER_SYNC_FIRST_ADDR + TRACE_GRP_LEN) // 0x88700e00
#define TRACE_PCIE_ADDR (TRACE_RECEIVER_SYNC_FINE_ADDR + TRACE_GRP_LEN) //0x88701000
#define TRACE_RECEIVER_BIT_ADDR (TRACE_RECEIVER_SYNC_ADDR + 3*TRACE_GRP_LEN)// 0x88700a00
#define TRACE_TESTTASK_ADDR (TRACE_RECEIVER_BIT_ADDR + TRACE_GRP_LEN) // 0x88700c00
#define TRACE_RECEIVER_SYNC_FIRST_ADDR (TRACE_TESTTASK_ADDR + TRACE_GRP_LEN) // 0x88700e00
#define TRACE_RECEIVER_SYNC_FINE_ADDR (TRACE_RECEIVER_SYNC_FIRST_ADDR + TRACE_GRP_LEN) // 0x88701000
#define TRACE_PCIE_ADDR (TRACE_RECEIVER_SYNC_FINE_ADDR + TRACE_GRP_LEN) //0x88701200
#define TRACE_TRANSMITTER_ADDR (TRACE_PCIE_ADDR + TRACE_GRP_LEN) // 0x88701200
#define TRACE_TRANS_INIT_ADDR (TRACE_TRANSMITTER_ADDR + TRACE_GRP_LEN) // 0x88701400
#define TRACE_TRANSMITTER_ADDR (TRACE_PCIE_ADDR + TRACE_GRP_LEN) // 0x88701400
#define TRACE_TRANS_INIT_ADDR (TRACE_TRANSMITTER_ADDR + TRACE_GRP_LEN) // 0x88701600
#endif

View File

@ -3214,6 +3214,198 @@
0x00000000,
0x00000000,
0x00000000,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000003,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000040,
0x00000000,
0x00000000,
0x00000000,
0xffffffff,
0x00000000,
0x00000000,
0x00000000,
0x003fffff,
0x0000000e,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000040,
0x00000000,
0x00000000,
0x00000000,
0xffffffff,
0x00000000,
0x00000000,
0x00000000,
0x003fffff,
0x0000000e,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,

61440
Config/timedatasym.dat Normal file

File diff suppressed because it is too large Load Diff