代码支持Recv_symb IDE调试

This commit is contained in:
HUOHUO 2025-05-31 11:13:04 -07:00
parent d351b36790
commit 7d39a9bf84
13 changed files with 180409 additions and 53 deletions

View File

@ -122,7 +122,7 @@ void Receiver_Symb_Init()
if(-1 == ret) if(-1 == ret)
{ {
LOG_ERROR_S("timedatasym.dat not found!\n"); LOG_ERROR_S("channel_est_1_Quan not found!\n");
} }
ape_csu_dma_1D_G2L_ch2ch3_transfer((uint64_t)(ptr1), ape_csu_dma_1D_G2L_ch2ch3_transfer((uint64_t)(ptr1),
(uint64_t)CHANNELEST_DATA_DDR_PTR,//第一次固定搬移到dm0 (uint64_t)CHANNELEST_DATA_DDR_PTR,//第一次固定搬移到dm0

View File

@ -53,13 +53,13 @@
/**************************define******************************/ /**************************define******************************/
#define LOAD_EX_W(ptr) __ucps2_load_ext_mem((char*)ptr, f_W) #define LOAD_EX_W(ptr) __ucps2_load_ext_mem((char*)(ptr), f_W)
#define LOAD_EX_S(ptr) __ucps2_load_ext_mem((char*)ptr, f_S) #define LOAD_EX_S(ptr) __ucps2_load_ext_mem((char*)(ptr), f_S)
#define LOAD_EX_B(ptr) __ucps2_load_ext_mem((char*)ptr, f_B) #define LOAD_EX_B(ptr) __ucps2_load_ext_mem((char*)(ptr), f_B)
#define STORE_EX_W(ptr, value) __ucps2_store_ext_mem((char*)ptr, value, f_W) #define STORE_EX_W(ptr, value) __ucps2_store_ext_mem((char*)(ptr), value, f_W)
#define STORE_EX_S(ptr, value) __ucps2_store_ext_mem((char*)ptr, value, f_S) #define STORE_EX_S(ptr, value) __ucps2_store_ext_mem((char*)(ptr), value, f_S)
#define STORE_EX_B(ptr, value) __ucps2_store_ext_mem((char*)ptr, value, f_B) #define STORE_EX_B(ptr, value) __ucps2_store_ext_mem((char*)(ptr), value, f_B)
#define LOAD_EX_V_W(ptr) __ucps2_load_ext_mem_v((char*)ptr, f_W) #define LOAD_EX_V_W(ptr) __ucps2_load_ext_mem_v((char*)ptr, f_W)
#define LOAD_EX_V_S(ptr) __ucps2_load_ext_mem_v((char*)ptr, f_S) #define LOAD_EX_V_S(ptr) __ucps2_load_ext_mem_v((char*)ptr, f_S)

View File

@ -66,11 +66,15 @@ void set_log_level(log_level_e level)
char *log_buf_alloc_static() char *log_buf_alloc_static()
{ {
char *msg_ptr; char *msg_ptr;
#ifndef IDE_TEST
smart_int_disable(); smart_int_disable();
#endif
//OSP_INTER_LOCK(); 等DD提供接口后打开注释 //OSP_INTER_LOCK(); 等DD提供接口后打开注释
g_ape_log_buf_index = (g_ape_log_buf_index + 1)&(LOG_DM_BUF_NUM - 1); g_ape_log_buf_index = (g_ape_log_buf_index + 1)&(LOG_DM_BUF_NUM - 1);
msg_ptr = (char *)(g_ape_log_buffer[g_ape_log_buf_index] + LOG_TOTAL_HDR_SIZE);//预留4+2个int for DD Header & PHY Header msg_ptr = (char *)(g_ape_log_buffer[g_ape_log_buf_index] + LOG_TOTAL_HDR_SIZE);//预留4+2个int for DD Header & PHY Header
#ifndef IDE_TEST
smart_int_enable(); smart_int_enable();
#endif
return msg_ptr; return msg_ptr;
} }
@ -99,8 +103,9 @@ void log_output(uint8_t level, uint8_t taskId, uint16_t msg_type,
msg_hdr = (msg_body_addr - LOG_TOTAL_HDR_SIZE); msg_hdr = (msg_body_addr - LOG_TOTAL_HDR_SIZE);
log_hdr = (log_msg_header_t *)(msg_body_addr - LOG_HEADER_SIZE); log_hdr = (log_msg_header_t *)(msg_body_addr - LOG_HEADER_SIZE);
} }
#ifndef IDE_TEST
smart_int_disable(); smart_int_disable();
#endif
log_hdr->sync_flag = 0x13C; log_hdr->sync_flag = 0x13C;
log_hdr->msg_level = level; log_hdr->msg_level = level;
log_hdr->msg_type = msg_type & 0xFFF; log_hdr->msg_type = msg_type & 0xFFF;
@ -127,8 +132,9 @@ void log_output(uint8_t level, uint8_t taskId, uint16_t msg_type,
osp_sendLog_print(level, (char*)log_hdr, LOG_HEADER_SIZE + msg_len, 0); osp_sendLog_print(level, (char*)log_hdr, LOG_HEADER_SIZE + msg_len, 0);
osp_phy_multi_msgs_send(UCP4008_OSP_LOG, msg_tmp, msg_len_tmp, 2); osp_phy_multi_msgs_send(UCP4008_OSP_LOG, msg_tmp, msg_len_tmp, 2);
} }
#ifndef IDE_TEST
smart_int_enable(); smart_int_enable();
#endif
} }
void log_sprintf(log_level_e level, const char *fmt, ...) void log_sprintf(log_level_e level, const char *fmt, ...)
@ -155,9 +161,12 @@ void log_sprintf(log_level_e level, const char *fmt, ...)
{ {
return; return;
} }
#ifndef IDE_TEST
smart_int_disable(); smart_int_disable();
#endif
osp_sendLog(level, (char*)buf, str_len, 0); osp_sendLog(level, (char*)buf, str_len, 0);
//osp_phy_msg_send(UCP4008_OSP_LOG, (char*)msg, str_len+LOG_DD_HEADER_SIZE); //osp_phy_msg_send(UCP4008_OSP_LOG, (char*)msg, str_len+LOG_DD_HEADER_SIZE);
#ifndef IDE_TEST
smart_int_enable(); smart_int_enable();
#endif
} }

View File

@ -251,10 +251,15 @@ int32_t phy_et_msg_send(uint32_t msg_addr,
uint8_t src_task_id, uint8_t src_task_id,
uint8_t dst_task_id) uint8_t dst_task_id)
{ {
#ifdef IDE_TEST
return 0;
#endif
int32_t ret = 0; int32_t ret = 0;
//TASK_MSG_RECORD(src_core_id, src_task_id, TASK_MSG_SEND); //TASK_MSG_RECORD(src_core_id, src_task_id, TASK_MSG_SEND);
char *paddr = NULL; char *paddr = NULL;
#ifndef IDE_TEST
paddr = osp_alloc_msg(msg_len); paddr = osp_alloc_msg(msg_len);
#endif
if (NULL == paddr) if (NULL == paddr)
{ {

View File

@ -4,7 +4,11 @@
/****************************UCP2.0 Platform start***********************************/ /****************************UCP2.0 Platform start***********************************/
#define STC_LOCAL_TIME_BASE (0x08568000 + 0x4014) #define STC_LOCAL_TIME_BASE (0x08568000 + 0x4014)
#ifndef IDE_TEST
#define GET_STC_CNT() (LOAD_EX_V_W(STC_LOCAL_TIME_BASE)) #define GET_STC_CNT() (LOAD_EX_V_W(STC_LOCAL_TIME_BASE))
#else
#define GET_STC_CNT() (tick())
#endif
/* /*
delay_us delay_us

View File

@ -2,21 +2,28 @@
#define TEST_FUNC_H #define TEST_FUNC_H
#ifdef IDE_TEST #ifdef IDE_TEST
#include "type_define.h" #include "type_define.h"
#include "drv_ape.h"
#define RECEIVER_IDE_BASE_ADDR ((uint32_t)g_deofdm_test_file)
#define RECEIVER_IDE_BASE_ADDR ((uint32_t)&g_deofdm_test_file)
#define RECEIVER_IDE_CONFIG_DM0_ADDR (RECEIVER_IDE_BASE_ADDR) #define RECEIVER_IDE_CONFIG_DM0_ADDR (RECEIVER_IDE_BASE_ADDR)
#define RECEIVER_IDE_CONFIG_DM0_LEN (0x0) #define RECEIVER_IDE_CONFIG_DM0_LEN (14912)
#define RECEIVER_IDE_CONFIG_DM1_ADDR (RECEIVER_IDE_CONFIG_DM0_ADDR + RECEIVER_IDE_CONFIG_DM0_LEN) #define RECEIVER_IDE_CONFIG_DM1_ADDR (RECEIVER_IDE_CONFIG_DM0_ADDR + RECEIVER_IDE_CONFIG_DM0_LEN)
#define RECEIVER_IDE_CONFIG_DM1_LEN (0x0280) #define RECEIVER_IDE_CONFIG_DM1_LEN (480)
#define RECEIVER_IDE_CONFIG_DM2_ADDR (RECEIVER_IDE_CONFIG_DM1_ADDR + RECEIVER_IDE_CONFIG_DM1_LEN) #define RECEIVER_IDE_CONFIG_DM2_ADDR (RECEIVER_IDE_CONFIG_DM1_ADDR + RECEIVER_IDE_CONFIG_DM1_LEN)
#define RECEIVER_IDE_CONFIG_DM2_LEN (0xC000) #define RECEIVER_IDE_CONFIG_DM2_LEN (54128)
#define RECEIVER_IDE_CONFIG_DM3_ADDR (RECEIVER_IDE_CONFIG_DM2_ADDR + RECEIVER_IDE_CONFIG_DM2_LEN) #define RECEIVER_IDE_CONFIG_DM3_ADDR (RECEIVER_IDE_CONFIG_DM2_ADDR + RECEIVER_IDE_CONFIG_DM2_LEN)
#define RECEIVER_IDE_CONFIG_DM3_LEN (0xC000) #define RECEIVER_IDE_CONFIG_DM3_LEN (8192)
#define RECEIVER_IDE_TIME_DATA_ADDR (RECEIVER_IDE_CONFIG_DM3_ADDR + RECEIVER_IDE_CONFIG_DM3_LEN)
#define RECEIVER_IDE_TIME_DATA_ADDR (RECEIVER_IDE_CONFIG_DM3_ADDR + RECEIVER_IDE_CONFIG_DM3_LEN) #define RECEIVER_IDE_TIME_DATA_LEN (61440*4)
#define RECEIVER_IDE_TIME_DATA_LEN (0x0F81) #define RECEIVER_IDE_EQUIN_QUAN_ADDR (RECEIVER_IDE_TIME_DATA_ADDR + RECEIVER_IDE_TIME_DATA_LEN)
#define RECEIVER_IDE_EQUIN_QUAN_LEN (57344*4)
#define RECEIVER_IDE_CH_EST_1_QUAN_ADDR (RECEIVER_IDE_EQUIN_QUAN_ADDR + RECEIVER_IDE_EQUIN_QUAN_LEN)
#define RECEIVER_IDE_CH_EST_1_QUAN_LEN (4096*4)
#define RECEIVER_IDE_EQUOUT_QUAN_ZP_ADDR (RECEIVER_IDE_EQUIN_QUAN_ADDR + RECEIVER_IDE_EQUIN_QUAN_LEN)
#define RECEIVER_IDE_EQUOUT_QUAN_ZP_LEN (57344*4)
#define TRANSMITTER_IDE_BASE_ADDR ((uint32_t)g_deofdm_test_file) #define TRANSMITTER_IDE_BASE_ADDR ((uint32_t)g_deofdm_test_file)
@ -34,10 +41,6 @@
#define TRANSMITTER_IDE_SRC_BIT_LEN (0x3E90)//bit/8 #define TRANSMITTER_IDE_SRC_BIT_LEN (0x3E90)//bit/8
int osp_get_cfgfile(char* name, uint32_t *pbuf, int* psize); extern __VIRT_SM uint32_t g_deofdm_test_file[];
int get_core_id();
int get_rx_nr_slot();
int get_rx_nr_sfn(uint8_t scs);
#endif #endif
#endif #endif

View File

@ -10,6 +10,7 @@
*****************************************************************/ *****************************************************************/
#include "Test_Func.h" #include "Test_Func.h"
#ifdef IDE_TEST #ifdef IDE_TEST
/*****************************************************************/ /*****************************************************************/
//Deofdm配置数据和时域数据 //Deofdm配置数据和时域数据
#if 0 #if 0
@ -20,8 +21,6 @@ __VIRT_SM uint32_t g_deofdm_test_file[] = {
#include "./../../Config/Transmitter_cfg_dm3.dat" #include "./../../Config/Transmitter_cfg_dm3.dat"
#include "./../../Config/source_bit.dat" #include "./../../Config/source_bit.dat"
}; };
#endif
__VIRT_SM uint32_t g_deofdm_test_file[] = { __VIRT_SM uint32_t g_deofdm_test_file[] = {
#include "./../../Config/Receiver_cfg_dm0.dat" #include "./../../Config/Receiver_cfg_dm0.dat"
#include "./../../Config/Receiver_cfg_dm1.dat" #include "./../../Config/Receiver_cfg_dm1.dat"
@ -29,6 +28,18 @@ __VIRT_SM uint32_t g_deofdm_test_file[] = {
#include "./../../Config/Receiver_cfg_dm3.dat" #include "./../../Config/Receiver_cfg_dm3.dat"
#include "./../../Config/timedata.dat" #include "./../../Config/timedata.dat"
}; };
#endif
__VIRT_SM uint32_t g_deofdm_test_file[] = {
#include "./../Config/Receiver_Symb_cfg_dm0.dat"
#include "./../../Config/Receiver_Symb_cfg_dm1.dat"
#include "./../../Config/Receiver_Symb_cfg_dm2.dat"
#include "./../../Config/Receiver_Symb_cfg_dm3.dat"
#include "./../testdata/timedata_li.dat"
#include "./../testdata/EquIn_Quan.dat"
#include "./../testdata/channel_est_1_Quan.dat"
#include "./../testdata/EquOut_Quan_zp.dat"
};
//int32_t get_tx_nr_slot_cycle(uint8_t scs) //int32_t get_tx_nr_slot_cycle(uint8_t scs)
//{ //{
@ -39,21 +50,26 @@ __VIRT_SM uint32_t g_deofdm_test_file[] = {
// #endif // #endif
//} //}
// //
int get_core_id() uint32_t get_core_id()
{ {
return 0; return 5;
} }
int get_rx_nr_slot() int get_rx_nr_slot()
{ {
return 1; return 1;
} }
int get_rx_nr_sfn(uint8_t scs) int get_rx_nr_sfn()
{ {
return 1; return 1;
} }
int32_t get_rx_nr_slot_cycle(uint8_t scs) int get_tx_nr_slot()
{
return 1;
}
int32_t get_rx_nr_slot_cycle()
{ {
#ifdef IDE_TEST #ifdef IDE_TEST
return tick(); return tick();
@ -136,6 +152,7 @@ uint32_t msg_transfer_send_start(uint32_t port_id, uint32_t queue_num)
#ifndef IDE_TEST #ifndef IDE_TEST
return 0; return 0;
#endif #endif
return 0;
} }
@ -159,36 +176,55 @@ int osp_get_cfgfile(char* name, uint32_t *pbuf, int* psize)
int i; int i;
if(strlen(name) > 64) if(strlen(name) > 64)
return -1; return -1;
if(0 == strcmp(name,"Receiver_cfg_dm0.dat")) if(0 == strcmp(name,"Receiver_Symb_cfg_dm0.dat"))
{ {
*pbuf = (uint32_t)(RECEIVER_IDE_CONFIG_DM0_ADDR); *pbuf = (uint32_t)(RECEIVER_IDE_CONFIG_DM0_ADDR);
*psize = RECEIVER_IDE_CONFIG_DM0_LEN; *psize = RECEIVER_IDE_CONFIG_DM0_LEN;
return 0; return 0;
} }
if(0 == strcmp(name,"Receiver_cfg_dm1.dat")) if(0 == strcmp(name,"Receiver_Symb_cfg_dm1.dat"))
{ {
*pbuf = (uint32_t)(RECEIVER_IDE_CONFIG_DM1_ADDR); *pbuf = (uint32_t)(RECEIVER_IDE_CONFIG_DM1_ADDR);
*psize = RECEIVER_IDE_CONFIG_DM1_LEN; *psize = RECEIVER_IDE_CONFIG_DM1_LEN;
return 0; return 0;
} }
if(0 == strcmp(name,"Receiver_cfg_dm2.dat")) if(0 == strcmp(name,"Receiver_Symb_cfg_dm2.dat"))
{ {
*pbuf = (uint32_t)(RECEIVER_IDE_CONFIG_DM2_ADDR); *pbuf = (uint32_t)(RECEIVER_IDE_CONFIG_DM2_ADDR);
*psize = RECEIVER_IDE_CONFIG_DM2_LEN; *psize = RECEIVER_IDE_CONFIG_DM2_LEN;
return 0; return 0;
} }
if(0 == strcmp(name,"Receiver_cfg_dm3.dat")) if(0 == strcmp(name,"Receiver_Symb_cfg_dm3.dat"))
{ {
*pbuf = (uint32_t)(RECEIVER_IDE_CONFIG_DM3_ADDR); *pbuf = (uint32_t)(RECEIVER_IDE_CONFIG_DM3_ADDR);
*psize = RECEIVER_IDE_CONFIG_DM3_LEN; *psize = RECEIVER_IDE_CONFIG_DM3_LEN;
return 0; return 0;
} }
if(0 == strcmp(name,"timedata.dat")) if(0 == strcmp(name,"timedata_li.dat"))
{ {
*pbuf = (uint32_t)(RECEIVER_IDE_TIME_DATA_ADDR); *pbuf = (uint32_t)(RECEIVER_IDE_TIME_DATA_ADDR);
*psize = RECEIVER_IDE_TIME_DATA_LEN; *psize = RECEIVER_IDE_TIME_DATA_LEN;
return 0; return 0;
} }
if(0 == strcmp(name,"EquIn_Quan.dat"))
{
*pbuf = (uint32_t)(RECEIVER_IDE_EQUIN_QUAN_ADDR);
*psize = RECEIVER_IDE_EQUIN_QUAN_LEN;
return 0;
}
if(0 == strcmp(name,"channel_est_1_Quan.dat"))
{
*pbuf = (uint32_t)(RECEIVER_IDE_CH_EST_1_QUAN_ADDR);
*psize = RECEIVER_IDE_CH_EST_1_QUAN_LEN;
return 0;
}
if(0 == strcmp(name,"EquOut_Quan_zp.dat"))
{
*pbuf = (uint32_t)(RECEIVER_IDE_EQUOUT_QUAN_ZP_ADDR);
*psize = RECEIVER_IDE_EQUOUT_QUAN_ZP_LEN;
return 0;
}
return -1; return -1;
#if 0 #if 0
@ -342,6 +378,80 @@ zStepSrc, uint32_t addrDst, uint32_t dataLen, uint8_t tag, uint8_t isWait)
} }
int ape_csu_dma_2Dto2D_transfer(uint64_t addrSrc, uint16_t blockLenSrc, uint64_t blockStepSrc,
uint64_t addrDst, uint16_t blockLenDst, uint64_t blockStepDst,
uint32_t dataLen, uint8_t tag, uint8_t isWait, uint8_t regGroup, uint8_t dir)
{
uint32_t loop;
uint32_t idx;
uint32_t ratio;
uint32_t mod_val;
uint32_t cp_type;
if( (0 == blockLenDst) || (0 == blockLenSrc) || (0 == dataLen))
{
printf("csu2Dto2D error input para blockLenDst:%d,blockLenSrc:%d,dataLen:%d have 0!!\n",blockLenDst, blockLenSrc, dataLen);
return 1;
}
void* addrDstLoc = (void*)addrDst;
if((addrDst >= 0x100000) && (addrDst < 0x200000))
{
addrDstLoc = (void*)addrDst + 0x100000;
}
void* addrSrcLoc = (void*)addrSrc;
if((addrSrc >= 0x100000) && (addrSrc < 0x200000))
{
addrSrcLoc = (void*)addrSrc + 0x100000;
}
if(blockLenSrc < blockLenDst)
{
loop = dataLen / blockLenSrc;
ratio = blockLenDst / blockLenSrc;
mod_val = blockLenDst % blockLenSrc;
cp_type = 0;
}
else
{
loop = dataLen / blockLenDst;
ratio = blockLenSrc / blockLenDst;
mod_val = blockLenSrc / blockLenDst;
cp_type = 1;
}
if(0 == mod_val)
{
printf("csu2Dto2D para not support!\n");
return 1;
}
while(loop)
{
if(0 == cp_type)
{
for(idx = 0; idx < ratio; idx++)
{
memcpy_ext(addrDstLoc ,addrSrcLoc, blockLenSrc);
addrSrcLoc += blockStepSrc;
}
addrDstLoc += blockStepDst;
}
else
{
for(idx = 0; idx < ratio; idx++)
{
memcpy_ext(addrDstLoc ,addrSrcLoc, blockLenDst);
addrDstLoc += blockStepDst;
}
addrSrcLoc += blockStepSrc;
}
loop--;
}
return 0;
}
void dma_1l3d1s_chain_G2L_ch0ch1_simp_config_start(uint32_t *paramPtr, void dma_1l3d1s_chain_G2L_ch0ch1_simp_config_start(uint32_t *paramPtr,
uint32_t paramCsuAddr, uint32_t paramCsuAddr,

View File

@ -10,24 +10,27 @@
*****************************************************************/ *****************************************************************/
/**************************include******************************/ /**************************include******************************/
#ifdef IDE_TEST
#include <type_define.h> #include <type_define.h>
#include "phy_macro.h" #include "phy_macro.h"
#include "Test_Func.h" #include "Test_Func.h"
#include "receiver_func.h" #include "receiver_symb_func.h"
#ifdef IDE_TEST
void Test_Receiver(uint32_t timedata_ptr, uint32_t timedata_len) __VIRT_SM receiver_sync2symb_t msg_SM;
void Test_Receiver_Symb()
{ {
int* param_ptr = (int *)RECEIVER_CFG_BASE;
Receiver_Symb_Init();
receiver_sync2symb_t* msg_ptr = &msg_SM;
STORE_EX_S(&msg_ptr->sfn, 2);
STORE_EX_S(&msg_ptr->slot, 1);
STORE_EX_W(&msg_ptr->data_section0_length, 61440);
STORE_EX_W(&msg_ptr->data_section0_ptr, RECEIVER_IDE_TIME_DATA_ADDR);
STORE_EX_S(&msg_ptr->proc_id, 2);
STORE_EX_W(param_ptr, timedata_ptr); Receiver_Symb_Task(msg_ptr, sizeof(msg_SM));
STORE_EX_W((param_ptr+1), timedata_len);
Receiver_Init();
Receiver_Task();
} }
@ -38,13 +41,8 @@ int main()
__ucps2_setJumpMode(f_Mode0); __ucps2_setJumpMode(f_Mode0);
int ret = 0; int ret = 0;
uint32_t timedata_ptr;
int32_t timedata_len;
ret = osp_get_cfgfile("timedata.dat",
(uint32_t *)&(timedata_ptr),
(int32_t *)&(timedata_len));
Test_Receiver(timedata_ptr, timedata_len); Test_Receiver_Symb();
} }

View File

@ -1,3 +1,5 @@
#if 0
/****************************************************************** /******************************************************************
* @file Test_Transmitter.s.c * @file Test_Transmitter.s.c
* @brief: [file description] * @brief: [file description]
@ -47,3 +49,4 @@ int main()
} }
#endif

57344
Test/testdata/EquIn_Quan.dat vendored Normal file

File diff suppressed because it is too large Load Diff

57344
Test/testdata/EquOut_Quan_zp.dat vendored Normal file

File diff suppressed because it is too large Load Diff

4096
Test/testdata/channel_est_1_Quan.dat vendored Normal file

File diff suppressed because it is too large Load Diff

61440
Test/testdata/timedata_li.dat vendored Normal file

File diff suppressed because it is too large Load Diff