将PCIE任务注册为触发任务,将任务部署迁移到APE7,修改状态机,新增等待RK3588计算结果的中间状态
This commit is contained in:
parent
78c92355a8
commit
865072aac7
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -35,6 +35,8 @@
|
|||||||
"fft4096int32.h": "c",
|
"fft4096int32.h": "c",
|
||||||
"channelestimpl.h": "c",
|
"channelestimpl.h": "c",
|
||||||
"ucps2.h": "c",
|
"ucps2.h": "c",
|
||||||
"channelest.h": "c"
|
"channelest.h": "c",
|
||||||
|
"interface_rec_sync2_pcie.h": "c",
|
||||||
|
"fucp_ape7_pcie_testcase.h": "c"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -53,7 +53,7 @@ void Phy_Task_Ape3_Reg()
|
|||||||
{
|
{
|
||||||
// osp_task_info_ex ape3_event_task_info = {50, "ape3_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape3_event_task};
|
// osp_task_info_ex ape3_event_task_info = {50, "ape3_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape3_event_task};
|
||||||
// osp_task_info_ex ape3_event_task_info_del = {51, "ape3_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape3_event_task_del};
|
// osp_task_info_ex ape3_event_task_info_del = {51, "ape3_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape3_event_task_del};
|
||||||
osp_task_info_ex mgr_task = {PHY_TASK_RECIEVER_SYMB, "Receiver_Symb", PHY_TASK_PRI_RECEIVER_SYMB, 4096, OSP_EVENT_TYPE, 0x000, 0x000, 0, (OSP_TASKINIT_FUNC)Receiver_Symb_Init, (OSP_TASKENTRY_FUNC)Receiver_Symb_Task};
|
osp_task_info_ex mgr_task = {PHY_TASK_RECEIVER_SYMB, "Receiver_Symb", PHY_TASK_PRI_RECEIVER_SYMB, 4096, OSP_EVENT_TYPE, 0x000, 0x000, 0, (OSP_TASKINIT_FUNC)Receiver_Symb_Init, (OSP_TASKENTRY_FUNC)Receiver_Symb_Task};
|
||||||
|
|
||||||
// osp_task_create(&ape3_event_task_info);
|
// osp_task_create(&ape3_event_task_info);
|
||||||
// osp_task_create(&ape3_event_task_info_del);
|
// osp_task_create(&ape3_event_task_info_del);
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include "Frame_test.h"
|
#include "Frame_test.h"
|
||||||
#include "receiver_sync_func.h"
|
#include "receiver_sync_func.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
#include "Fucp_Ape4_pcie_testcase.h"
|
|
||||||
|
|
||||||
|
|
||||||
/**************************function******************************/
|
/**************************function******************************/
|
||||||
@ -30,18 +30,14 @@ void ape4_event_task(uint32_t addr, uint32_t size)
|
|||||||
uint32_t ape_id = get_core_id();
|
uint32_t ape_id = get_core_id();
|
||||||
|
|
||||||
osp_task_info_ex mgr_task2 =
|
osp_task_info_ex mgr_task2 =
|
||||||
{PHY_TASK_RECIEVER_SYNC, "Receiver_Sync", PHY_TASK_PRI_RECEIVER_SYNC, 2048, OSP_TIMER_TYPE, 0x000, 0x3FF, 50, (OSP_TASKINIT_FUNC)Receiver_Sync_Init, (OSP_TASKENTRY_FUNC)Receiver_Sync_Task};
|
{PHY_TASK_RECEIVER_SYNC, "Receiver_Sync", PHY_TASK_PRI_RECEIVER_SYNC, 2048, OSP_TIMER_TYPE, 0x000, 0x3FF, 50, (OSP_TASKINIT_FUNC)Receiver_Sync_Init, (OSP_TASKENTRY_FUNC)Receiver_Sync_Task};
|
||||||
osp_task_info_ex mgr_task3 =
|
osp_task_info_ex mgr_task3 =
|
||||||
{PHY_TASK_TEST, "Test_Task", PHY_TASK_PRI_TEST, 4096, OSP_TIMER_TYPE, 0x000, 0x3FF, 50, NULL, (OSP_TASKENTRY_FUNC)Test_Task};
|
{PHY_TASK_TEST, "Test_Task", PHY_TASK_PRI_TEST, 4096, OSP_TIMER_TYPE, 0x000, 0x3FF, 50, NULL, (OSP_TASKENTRY_FUNC)Test_Task};
|
||||||
osp_task_info_ex pcie_normal_task_info = {PCIE_TASK_RECEIVER, (int8_t*)"pcie_normal_task", PCIE_TASK_PRI_RECEIVER, 4096, OSP_NORMAL_TYPE, 1, 0, 0, NULL, (OSP_TASKENTRY_FUNC)pcie_test_task_func};
|
|
||||||
|
|
||||||
|
|
||||||
TRACE(TRACE_RECV_INIT_ADDR, 2, 1);
|
TRACE(TRACE_RECV_INIT_ADDR, 2, 1);
|
||||||
|
|
||||||
osp_task_create(&mgr_task2);
|
osp_task_create(&mgr_task2);
|
||||||
test_case_cfgpar_pcie();
|
|
||||||
|
|
||||||
osp_task_create(&pcie_normal_task_info);
|
|
||||||
TRACE(TRACE_RECV_INIT_ADDR, 3, 1);
|
TRACE(TRACE_RECV_INIT_ADDR, 3, 1);
|
||||||
LOG_INFO_S("APE4 finish task create!\n");
|
LOG_INFO_S("APE4 finish task create!\n");
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ void Phy_Task_Ape5_Reg()
|
|||||||
{
|
{
|
||||||
// osp_task_info_ex ape5_event_task_info = {50, "ape5_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape5_event_task};
|
// osp_task_info_ex ape5_event_task_info = {50, "ape5_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape5_event_task};
|
||||||
// osp_task_info_ex ape5_event_task_info_del = {51, "ape5_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape5_event_task_del};
|
// osp_task_info_ex ape5_event_task_info_del = {51, "ape5_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape5_event_task_del};
|
||||||
osp_task_info_ex mgr_task = {PHY_TASK_RECIEVER_SYMB, "Receiver_Symb", PHY_TASK_PRI_RECEIVER_SYMB, 4096, OSP_EVENT_TYPE, 0x000, 0x000, 0, (OSP_TASKINIT_FUNC)Receiver_Symb_Init, (OSP_TASKENTRY_FUNC)Receiver_Symb_Task};
|
osp_task_info_ex mgr_task = {PHY_TASK_RECEIVER_SYMB, "Receiver_Symb", PHY_TASK_PRI_RECEIVER_SYMB, 4096, OSP_EVENT_TYPE, 0x000, 0x000, 0, (OSP_TASKINIT_FUNC)Receiver_Symb_Init, (OSP_TASKENTRY_FUNC)Receiver_Symb_Task};
|
||||||
|
|
||||||
// osp_task_create(&ape5_event_task_info);
|
// osp_task_create(&ape5_event_task_info);
|
||||||
// osp_task_create(&ape5_event_task_info_del);
|
// osp_task_create(&ape5_event_task_info_del);
|
||||||
|
@ -55,7 +55,7 @@ void Phy_Task_Ape6_Reg()
|
|||||||
// osp_task_info_ex ape6_event_task_info_del = {51, "ape6_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape6_event_task_del};
|
// osp_task_info_ex ape6_event_task_info_del = {51, "ape6_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape6_event_task_del};
|
||||||
|
|
||||||
osp_task_info_ex mgr_task =
|
osp_task_info_ex mgr_task =
|
||||||
{PHY_TASK_RECIEVER_BIT, "Receiver_Bit", PHY_TASK_PRI_RECEIVER_BIT, 4096, OSP_EVENT_TYPE, 0x000, 0x000, 0, (OSP_TASKINIT_FUNC)Receiver_Bit_Init, (OSP_TASKENTRY_FUNC)Receiver_Bit_Task};
|
{PHY_TASK_RECEIVER_BIT, "Receiver_Bit", PHY_TASK_PRI_RECEIVER_BIT, 4096, OSP_EVENT_TYPE, 0x000, 0x000, 0, (OSP_TASKINIT_FUNC)Receiver_Bit_Init, (OSP_TASKENTRY_FUNC)Receiver_Bit_Task};
|
||||||
// osp_task_create(&ape6_event_task_info);
|
// osp_task_create(&ape6_event_task_info);
|
||||||
// osp_task_create(&ape6_event_task_info_del);
|
// osp_task_create(&ape6_event_task_info_del);
|
||||||
osp_task_create(&mgr_task);
|
osp_task_create(&mgr_task);
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
// -FHDR------------------------------------------------------------
|
// -FHDR------------------------------------------------------------
|
||||||
#ifndef __PCIE_TESTCASE_H__
|
#ifndef __PCIE_TESTCASE_H__
|
||||||
#define __PCIE_TESTCASE_H__
|
#define __PCIE_TESTCASE_H__
|
||||||
|
#include "interface_rec_sync2_pcie.h"
|
||||||
uint32_t pcie_rx_callback_data(const char* buf,uint32_t payloadSize);
|
uint32_t pcie_rx_callback_data(const char* buf,uint32_t payloadSize);
|
||||||
uint32_t pcie_rx_callback_ctrl(const char* buf,uint32_t payloadSize);
|
uint32_t pcie_rx_callback_ctrl(const char* buf,uint32_t payloadSize);
|
||||||
uint32_t pcie_rx_callback_oam(const char* buf,uint32_t payloadSize);
|
uint32_t pcie_rx_callback_oam(const char* buf,uint32_t payloadSize);
|
||||||
@ -22,7 +22,8 @@ void test_case_sendmsg_pcie();
|
|||||||
void test_case_recv_msg_pcie();
|
void test_case_recv_msg_pcie();
|
||||||
void test_speed_sendmsg_pcie();
|
void test_speed_sendmsg_pcie();
|
||||||
void test_speed_recv_msg_pcie();
|
void test_speed_recv_msg_pcie();
|
||||||
void pcie_test_task_func(void);
|
void pcie_test_task_func(receiver_sync2pcie_t* msg_ptr, uint32_t msg_len);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
|||||||
#include "log_interface.h"
|
#include "log_interface.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
#include "receiver_sync_first_func.h"
|
#include "receiver_sync_first_func.h"
|
||||||
|
#include "Fucp_Ape7_pcie_testcase.h"
|
||||||
|
|
||||||
/**************************function******************************/
|
/**************************function******************************/
|
||||||
/*!
|
/*!
|
||||||
@ -54,9 +55,14 @@ void Phy_Task_Ape7_Reg()
|
|||||||
// osp_task_info_ex ape7_event_task_info = {50, "ape7_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape7_event_task};
|
// osp_task_info_ex ape7_event_task_info = {50, "ape7_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape7_event_task};
|
||||||
// osp_task_info_ex ape7_event_task_info_del = {51, "ape7_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape7_event_task_del};
|
// osp_task_info_ex ape7_event_task_info_del = {51, "ape7_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape7_event_task_del};
|
||||||
osp_task_info_ex mgr_task =
|
osp_task_info_ex mgr_task =
|
||||||
{PHY_TASK_RECIEVER_FIRST_SYNC, "Receiver_Sync_First_Sync", PHY_TASK_PRI_RECEIVER_FIRST_SYNC, 4096, OSP_EVENT_TYPE, 0x000, 0x000, 0, (OSP_TASKINIT_FUNC)Receiver_Sync_First_Init, (OSP_TASKENTRY_FUNC)Receiver_First_Sync_Proc};
|
{PHY_TASK_RECEIVER_FIRST_SYNC, "Receiver_Sync_First_Sync", PHY_TASK_PRI_RECEIVER_FIRST_SYNC, 4096, OSP_EVENT_TYPE, 0x000, 0x000, 0, (OSP_TASKINIT_FUNC)Receiver_Sync_First_Init, (OSP_TASKENTRY_FUNC)Receiver_First_Sync_Proc};
|
||||||
|
osp_task_info_ex pcie_normal_task_info =
|
||||||
|
{PHY_TASK_PCIE, (int8_t*)"pcie_normal_task", PHY_TASK_PRI_PCIE, 4096, OSP_EVENT_TYPE, 0x000, 0, 0, NULL, (OSP_TASKENTRY_FUNC)pcie_test_task_func};
|
||||||
// osp_task_create(&ape7_event_task_info);
|
// osp_task_create(&ape7_event_task_info);
|
||||||
// osp_task_create(&ape7_event_task_info_del);
|
// osp_task_create(&ape7_event_task_info_del);
|
||||||
|
|
||||||
|
test_case_cfgpar_pcie();
|
||||||
|
osp_task_create(&pcie_normal_task_info);
|
||||||
osp_task_create(&mgr_task);
|
osp_task_create(&mgr_task);
|
||||||
LOG_INFO_S("APE7 finish task create!\n");
|
LOG_INFO_S("APE7 finish task create!\n");
|
||||||
|
|
||||||
|
@ -31,7 +31,9 @@
|
|||||||
#include "mem_sections.h"
|
#include "mem_sections.h"
|
||||||
#include "drv_ape.h"
|
#include "drv_ape.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
#include "interface_rec_sync2_pcie.h"
|
||||||
|
#include "Fucp_Ape7_pcie_testcase.h"
|
||||||
|
#include "mem_def.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -473,8 +475,26 @@ void test_speed_recv_msg_pcie()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void pcie_test_task_func(void)
|
void pcie_test_task_func(receiver_sync2pcie_t* msg_ptr, uint32_t msg_len)
|
||||||
{
|
{
|
||||||
|
//获取状态机状态
|
||||||
|
volatile uint32_t status_SM_addr= (uint32_t)RECEIVER_SYNC2SYNC_FIRST_INF_ADDR;
|
||||||
|
/*typedef enum
|
||||||
|
{
|
||||||
|
SYNC_IDLE=0,
|
||||||
|
SYNC_FIRST_RUNING,
|
||||||
|
SYNC_AI_PROCECING,
|
||||||
|
SYNC_TRACKING
|
||||||
|
}receiver_sync_status_e;*/
|
||||||
|
if(2 != LOAD_EX_W(status_SM_addr))
|
||||||
|
return ;
|
||||||
|
//提供的数据地址(DDR)和本次数据的SFN SLOT号
|
||||||
|
uint32_t sfn = msg_ptr->sfn;
|
||||||
|
uint32_t slot = msg_ptr->slot;
|
||||||
|
uint32_t data_addr = msg_ptr->data_section0_ptr;
|
||||||
|
uint32_t data_len = 1024*4;
|
||||||
|
|
||||||
|
|
||||||
return ;
|
return ;
|
||||||
g_time_start[1] = TIME_NS();
|
g_time_start[1] = TIME_NS();
|
||||||
RUN_CNT(TRACE_PCIE_ADDR, 0);
|
RUN_CNT(TRACE_PCIE_ADDR, 0);
|
||||||
@ -494,6 +514,17 @@ void pcie_test_task_func(void)
|
|||||||
RUN_CNT(TRACE_PCIE_ADDR, 1);
|
RUN_CNT(TRACE_PCIE_ADDR, 1);
|
||||||
|
|
||||||
TRACE_MAX(TRACE_PCIE_ADDR, 2, Time_offset(1) );
|
TRACE_MAX(TRACE_PCIE_ADDR, 2, Time_offset(1) );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//TODO:接收到RK3588的数据后,必须更新状态机后级模块才能工作
|
||||||
|
//WARNING:需要使用这个代码
|
||||||
|
#if 0
|
||||||
|
volatile uint32_t status_SM_addr= (uint32_t)RECEIVER_SYNC2SYNC_FIRST_INF_ADDR;
|
||||||
|
STORE_EX_W(status_SM_addr , 3);
|
||||||
|
__ucps2_synch(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -115,8 +115,8 @@ void Receiver_Symb_Proc(
|
|||||||
UCP4008_KERNEL_INTER,
|
UCP4008_KERNEL_INTER,
|
||||||
APE5_CORE_ID,
|
APE5_CORE_ID,
|
||||||
APE6_CORE_ID,
|
APE6_CORE_ID,
|
||||||
PHY_TASK_RECIEVER_SYMB,
|
PHY_TASK_RECEIVER_SYMB,
|
||||||
PHY_TASK_RECIEVER_BIT);
|
PHY_TASK_RECEIVER_BIT);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "task_define.h"
|
#include "task_define.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
#include "interface_rec_sync2_rec_sync_first.h"
|
#include "interface_rec_sync2_rec_sync_first.h"
|
||||||
|
#include "interface_rec_sync2_pcie.h"
|
||||||
|
|
||||||
|
|
||||||
//include mpu header files
|
//include mpu header files
|
||||||
@ -54,7 +55,7 @@ extern uint16_t g_proc_id;
|
|||||||
void Receiver_Sync_Init();
|
void Receiver_Sync_Init();
|
||||||
void Receiver_Sync_Task();
|
void Receiver_Sync_Task();
|
||||||
void Receiver_Sync_Proc();
|
void Receiver_Sync_Proc();
|
||||||
void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot);
|
void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot, uint32_t proc_type);
|
||||||
|
|
||||||
//debug
|
//debug
|
||||||
extern uint32_t* last_mem_dm[8];
|
extern uint32_t* last_mem_dm[8];
|
||||||
|
@ -61,6 +61,7 @@ typedef enum
|
|||||||
{
|
{
|
||||||
SYNC_IDLE=0,
|
SYNC_IDLE=0,
|
||||||
SYNC_FIRST_RUNING,
|
SYNC_FIRST_RUNING,
|
||||||
|
SYNC_AI_PROCECING,
|
||||||
SYNC_TRACKING
|
SYNC_TRACKING
|
||||||
}receiver_sync_status_e;
|
}receiver_sync_status_e;
|
||||||
|
|
||||||
|
@ -196,8 +196,8 @@ void Receiver_Sync_Proc(
|
|||||||
UCP4008_KERNEL_INNER,
|
UCP4008_KERNEL_INNER,
|
||||||
APE4_CORE_ID,
|
APE4_CORE_ID,
|
||||||
APE7_CORE_ID,
|
APE7_CORE_ID,
|
||||||
PHY_TASK_RECIEVER_SYNC,
|
PHY_TASK_RECEIVER_SYNC,
|
||||||
PHY_TASK_RECIEVER_FIRST_SYNC);
|
PHY_TASK_RECEIVER_FIRST_SYNC);
|
||||||
|
|
||||||
//第一次同步目前不存储数据做处理,注释
|
//第一次同步目前不存储数据做处理,注释
|
||||||
// receiver_sync2first_sync_t data_send2first_sync_task;
|
// receiver_sync2first_sync_t data_send2first_sync_task;
|
||||||
@ -206,14 +206,14 @@ void Receiver_Sync_Proc(
|
|||||||
// UCP4008_KERNEL_INNER,
|
// UCP4008_KERNEL_INNER,
|
||||||
// get_core_id(),
|
// get_core_id(),
|
||||||
// get_core_id(),
|
// get_core_id(),
|
||||||
// PHY_TASK_PRI_RECEIVER_SYNC,
|
// PHY_TASK_RECEIVER_SYNC,
|
||||||
// PHY_TASK_PRI_RECEIVER_FIRST_SYNC);
|
// PHY_TASK_RECEIVER_FIRST_SYNC);
|
||||||
TRACE(TRACE_RECEIVER_SYNC_ADDR, 3, 4);
|
TRACE(TRACE_RECEIVER_SYNC_ADDR, 3, 4);
|
||||||
}
|
}
|
||||||
else if(SYNC_TRACKING == sync_status)
|
else if((SYNC_TRACKING == sync_status) || (SYNC_AI_PROCECING == sync_status))
|
||||||
{
|
{
|
||||||
TRACE(TRACE_RECEIVER_SYNC_ADDR, 3, 5);
|
TRACE(TRACE_RECEIVER_SYNC_ADDR, 3, 5);
|
||||||
Receiver_Fine_Sync_Proc(cur_sfn, cur_slot);
|
Receiver_Fine_Sync_Proc(cur_sfn, cur_slot, sync_status);
|
||||||
|
|
||||||
//根据当前状态机状态,buffer存储的数据长度,sync同步帧头,发送核间消息触发任务
|
//根据当前状态机状态,buffer存储的数据长度,sync同步帧头,发送核间消息触发任务
|
||||||
TRACE(TRACE_RECEIVER_SYNC_ADDR, 3, 6);
|
TRACE(TRACE_RECEIVER_SYNC_ADDR, 3, 6);
|
||||||
@ -232,7 +232,7 @@ void Receiver_Sync_Proc(
|
|||||||
|
|
||||||
|
|
||||||
//用于跟踪同步
|
//用于跟踪同步
|
||||||
void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot)
|
void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot, uint32_t proc_type)
|
||||||
{
|
{
|
||||||
g_time_start[2] = TIME_NS();
|
g_time_start[2] = TIME_NS();
|
||||||
uint16_t dbg_time0, dbg_time1;
|
uint16_t dbg_time0, dbg_time1;
|
||||||
@ -443,6 +443,8 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot)
|
|||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
//发核间消息给SYMB_TASK, slot号为偶数APE5处理,奇数APE3处理
|
//发核间消息给SYMB_TASK, slot号为偶数APE5处理,奇数APE3处理
|
||||||
|
if(SYNC_TRACKING == proc_type)
|
||||||
|
{
|
||||||
uint32_t symb_proc_core_sel = (0 == (slot & 0x1)) ? APE5_CORE_ID : APE3_CORE_ID;
|
uint32_t symb_proc_core_sel = (0 == (slot & 0x1)) ? APE5_CORE_ID : APE3_CORE_ID;
|
||||||
|
|
||||||
|
|
||||||
@ -451,8 +453,19 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot)
|
|||||||
UCP4008_KERNEL_INTER,
|
UCP4008_KERNEL_INTER,
|
||||||
get_core_id(),
|
get_core_id(),
|
||||||
symb_proc_core_sel,
|
symb_proc_core_sel,
|
||||||
PHY_TASK_PRI_RECEIVER_SYNC,
|
PHY_TASK_RECEIVER_SYNC,
|
||||||
PHY_TASK_PRI_RECEIVER_SYMB);
|
PHY_TASK_RECEIVER_SYMB);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
phy_et_msg_send((uint32_t)(&data_send2symb_task[task_idx]),
|
||||||
|
sizeof(receiver_sync2pcie_t),
|
||||||
|
UCP4008_KERNEL_INTER,
|
||||||
|
get_core_id(),
|
||||||
|
APE7_CORE_ID,
|
||||||
|
PHY_TASK_RECEIVER_SYNC,
|
||||||
|
PHY_TASK_PCIE);
|
||||||
|
}
|
||||||
g_proc_id++;
|
g_proc_id++;
|
||||||
task_idx++;
|
task_idx++;
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,7 @@ typedef enum
|
|||||||
{
|
{
|
||||||
SYNC_IDLE=0,
|
SYNC_IDLE=0,
|
||||||
SYNC_FIRST_RUNING,
|
SYNC_FIRST_RUNING,
|
||||||
|
SYNC_AI_PROCECING,
|
||||||
SYNC_TRACKING
|
SYNC_TRACKING
|
||||||
}receiver_sync_first_status_e;
|
}receiver_sync_first_status_e;
|
||||||
|
|
||||||
|
@ -362,7 +362,7 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_
|
|||||||
//执行完成,更新状态机
|
//执行完成,更新状态机
|
||||||
if(SYNC_OK == ret)
|
if(SYNC_OK == ret)
|
||||||
{
|
{
|
||||||
STORE_EX_W(&g_receiver_sync_status_SM_ptr->sync_status , SYNC_TRACKING);
|
STORE_EX_W(&g_receiver_sync_status_SM_ptr->sync_status , SYNC_AI_PROCECING);
|
||||||
__ucps2_synch(0);
|
__ucps2_synch(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -26,7 +26,7 @@ typedef enum
|
|||||||
PHY_TASK_PRI_RECEIVER_BIT,
|
PHY_TASK_PRI_RECEIVER_BIT,
|
||||||
PHY_TASK_PRI_TEST,
|
PHY_TASK_PRI_TEST,
|
||||||
PHY_TASK_PRI_RECEIVER_FIRST_SYNC,
|
PHY_TASK_PRI_RECEIVER_FIRST_SYNC,
|
||||||
PCIE_TASK_PRI_RECEIVER,
|
PHY_TASK_PRI_PCIE,
|
||||||
PHY_TASK_PRI_EQUAL_PRI, //不需要优先级抢占的任务,设置为该优先级
|
PHY_TASK_PRI_EQUAL_PRI, //不需要优先级抢占的任务,设置为该优先级
|
||||||
}task_pri_e;
|
}task_pri_e;
|
||||||
|
|
||||||
@ -38,12 +38,12 @@ typedef enum
|
|||||||
PHY_TASK_CONFIG,
|
PHY_TASK_CONFIG,
|
||||||
PHY_TASK_SLOT_IND,
|
PHY_TASK_SLOT_IND,
|
||||||
PHY_TASK_TRANSIMITTER,
|
PHY_TASK_TRANSIMITTER,
|
||||||
PHY_TASK_RECIEVER_SYNC,
|
PHY_TASK_RECEIVER_SYNC,
|
||||||
PHY_TASK_RECIEVER_SYMB,
|
PHY_TASK_RECEIVER_SYMB,
|
||||||
PHY_TASK_RECIEVER_BIT,
|
PHY_TASK_RECEIVER_BIT,
|
||||||
PHY_TASK_TEST,
|
PHY_TASK_TEST,
|
||||||
PHY_TASK_RECIEVER_FIRST_SYNC,
|
PHY_TASK_RECEIVER_FIRST_SYNC,
|
||||||
PCIE_TASK_RECEIVER,
|
PHY_TASK_PCIE,
|
||||||
PHY_TASK_PHY_MGR,
|
PHY_TASK_PHY_MGR,
|
||||||
PHY_TASK_MAX=32
|
PHY_TASK_MAX=32
|
||||||
}task_id_e;
|
}task_id_e;
|
||||||
|
21
Interface/interface_rec_sync2_pcie.h
Normal file
21
Interface/interface_rec_sync2_pcie.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef INTERFACE_REC_SYNC2_PCIE_H
|
||||||
|
#define INTERFACE_REC_SYNC2_PCIE_H
|
||||||
|
#include "type_define.h"
|
||||||
|
|
||||||
|
typedef struct receiver_sync2pcie_s
|
||||||
|
{
|
||||||
|
uint16_t sfn;//创建任务时刻的sfn
|
||||||
|
uint16_t slot;//创建任务时刻的slot
|
||||||
|
uint16_t num_data_section;
|
||||||
|
uint16_t proc_id;//记录包的顺序
|
||||||
|
uint32_t data_section0_ptr;
|
||||||
|
uint32_t data_section1_ptr;
|
||||||
|
uint32_t data_section0_length;//单位Word
|
||||||
|
uint32_t data_section1_length;//单位Word
|
||||||
|
|
||||||
|
}receiver_sync2pcie_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user