From b94a4cff5340e9394149061d6a80e8f3cad5c3a2 Mon Sep 17 00:00:00 2001 From: HUOHUO Date: Sat, 5 Apr 2025 04:28:49 -0700 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9APE5-7=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=96=B9=E5=BC=8F=EF=BC=8C2.=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=80=97=E6=97=B6=E6=89=93=E7=82=B9=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=203.=E9=81=97=E7=95=99=E9=97=AE=E9=A2=98=EF=BC=9APCIE=E5=86=85?= =?UTF-8?q?=E9=83=A8=E5=A4=84=E7=90=86=E6=A0=B8=E6=AD=BB=E5=9C=A8=E6=89=93?= =?UTF-8?q?=E7=82=B9=E4=BD=8D=E7=BD=AE3-4=E4=B9=8B=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 4 +- APE0/ApeTask/src/Fucp_Ape0_Init.s.c | 1 + APE0/ApeTask/src/Fucp_Ape0_slot_ind.s.c | 9 +-- APE4/ApeCommon/inc/ape_common.h | 1 - APE4/ApeTask/inc/trace.h | 41 ------------ APE4/ApeTask/src/Fucp_Ape4_Init.s.c | 7 +- APE4/ApeTask/src/Fucp_Ape4_pcie_testcase.s.c | 19 ++++-- APE5/ApeCommon/inc/ape_common.h | 1 - APE5/ApeTask/src/Fucp_Ape5_Init.s.c | 17 ++--- APE6/ApeCommon/inc/ape_common.h | 1 - APE6/ApeTask/src/Fucp_Ape6_Init.s.c | 18 +++--- APE7/ApeCommon/inc/ape_common.h | 1 - APE7/ApeTask/src/Fucp_Ape7_Init.s.c | 17 +++-- APELib/Receiver_bit/src/receiver_Bit_Task.s.c | 10 +-- .../Receiver_symb/src/receiver_Symb_Task.s.c | 8 +-- .../Receiver_sync/src/receiver_Sync_Proc.s.c | 48 +++++--------- .../src/receiver_Sync_First_Proc.s.c | 64 ++++++------------- APELib/TestTask/src/Frame_test.s.c | 8 +-- APELib/Transmitter/src/transmitter_Task.s.c | 21 ++---- Common/inc/log_interface.h | 1 - Common/inc/mem_def.h | 5 +- Common/inc/task_define.h | 1 - Common/inc/trace.h | 7 +- Common/src/trace.s.c | 12 ++++ .../interface_rec_sync2_rec_sync_first.h | 2 +- 25 files changed, 118 insertions(+), 206 deletions(-) delete mode 100644 APE4/ApeTask/inc/trace.h create mode 100644 Common/src/trace.s.c diff --git a/.vscode/settings.json b/.vscode/settings.json index d5f8de2..c1d6e01 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -25,6 +25,8 @@ "mem_sections.h": "c", "msg_transfer_layer.h": "c", "typedef.h": "c", - "receiver_bit_func.h": "c" + "receiver_bit_func.h": "c", + "drv_ape.h": "c", + "transmitter_func.h": "c" } } \ No newline at end of file diff --git a/APE0/ApeTask/src/Fucp_Ape0_Init.s.c b/APE0/ApeTask/src/Fucp_Ape0_Init.s.c index 88b156b..d7d6855 100644 --- a/APE0/ApeTask/src/Fucp_Ape0_Init.s.c +++ b/APE0/ApeTask/src/Fucp_Ape0_Init.s.c @@ -20,6 +20,7 @@ #include "log_interface.h" #include "Frame_test.h" #include "trace.h" +#include "osp_ape.h" diff --git a/APE0/ApeTask/src/Fucp_Ape0_slot_ind.s.c b/APE0/ApeTask/src/Fucp_Ape0_slot_ind.s.c index 0afe1ec..4384d42 100644 --- a/APE0/ApeTask/src/Fucp_Ape0_slot_ind.s.c +++ b/APE0/ApeTask/src/Fucp_Ape0_slot_ind.s.c @@ -7,9 +7,7 @@ __APE_DM0 uint32_t g_slot_ind_dm0[8] = {0}; //32byte void Slot_ind_Task() { uint16_t start_slot = TIME_SLOT(); - uint16_t start_us = TIME_US(); - uint16_t end_slot; - uint16_t end_us; + g_time_start[0] = TIME_US(); RUN_CNT(TRACE_SLOTIND_ADDR, 0); @@ -34,8 +32,5 @@ void Slot_ind_Task() osp_phy_msg_send((char*)msg_header, msg_len); RUN_CNT(TRACE_SLOTIND_ADDR, 1); - end_slot = TIME_SLOT(); - end_us = TIME_US(); - - TRACE_MAX(TRACE_SLOTIND_ADDR, 2, TIME_DIFF(start_slot, start_us, end_slot, end_us) ); + TRACE_MAX(TRACE_SLOTIND_ADDR, 2, Time_offset(0) ); } \ No newline at end of file diff --git a/APE4/ApeCommon/inc/ape_common.h b/APE4/ApeCommon/inc/ape_common.h index 8c5e6ff..5965e3d 100644 --- a/APE4/ApeCommon/inc/ape_common.h +++ b/APE4/ApeCommon/inc/ape_common.h @@ -33,5 +33,4 @@ #define DMA_TAG_CHAIN 3 extern __APE_DM3 v16s32 SVRReg; - #endif diff --git a/APE4/ApeTask/inc/trace.h b/APE4/ApeTask/inc/trace.h deleted file mode 100644 index 148bca1..0000000 --- a/APE4/ApeTask/inc/trace.h +++ /dev/null @@ -1,41 +0,0 @@ -/****************************************************************** - * @file trace.h - * @brief: record code status - * @author: HUOHUO - * @Date 2022年1月10日 - * COPYRIGHT NOTICE: ITTC All rights reserved. - * Change_date Owner Change_content - * 2024年10月23日 HUOHUO create file - -*****************************************************************/ - -#ifndef TRACE_H -#define TRACE_H - -#include "common.h" -#include "drv_ape.h" -#include "mem_def.h" -#include "phy_macro.h" - - - -#define TRACE(base, offset, val) STORE_EX_W( (void*)((base) + 4*(offset)), (val)) -#define TRACE_MAX(base, offset, val) \ -{ \ - if ( (val) > LOAD_EX_W( (void*)((base) + 4*(offset)) ) ) \ - STORE_EX_W( (void*)((base) + 4*(offset)), (val) ); \ -} - -#define RUN_CNT(base, offset) STORE_EX_W( (void*)((base) + 4*(offset)), LOAD_EX_W( (void*)((base) + 4*(offset)) ) + 1 ) -#define TIME_SLOT() (get_tx_nr_slot() ) -#define TIME_US() (uint16_t)((get_tx_nr_slot_cycle() * 2097) >> 21) - -#define TIME_DIFF(start_slot, start_us, end_slot, end_us) ((start_slot) <= (end_slot) )? \ - (( (end_slot) - (start_slot) ) * 500 + (end_us) - (start_us) ): \ - ((NR_SFN_SLOT_NUM + (end_slot) - (start_slot) )* 500 + (end_us) - (start_us) ) \ - - - -//#define TIME_RECORD(base, offset, time0) STORE_EX_W( (void*)((base) + 4*(offset)), GET_STC_CNT() - time0) - -#endif \ No newline at end of file diff --git a/APE4/ApeTask/src/Fucp_Ape4_Init.s.c b/APE4/ApeTask/src/Fucp_Ape4_Init.s.c index fbea131..968b034 100644 --- a/APE4/ApeTask/src/Fucp_Ape4_Init.s.c +++ b/APE4/ApeTask/src/Fucp_Ape4_Init.s.c @@ -33,11 +33,13 @@ void ape4_event_task(uint32_t addr, uint32_t size) {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}; 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}; + 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); osp_task_create(&mgr_task2); - + osp_task_create(&pcie_normal_task_info); TRACE(TRACE_RECV_INIT_ADDR, 3, 1); LOG_INFO_S("APE4 finish task create!\n"); @@ -68,8 +70,7 @@ void Phy_Task_Ape4_Reg() osp_task_info_ex ape4_event_task_info_del = {51, "ape4_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape4_event_task_del}; //test_case_cfgpar_pcie(); - //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}; - //osp_task_create(&pcie_normal_task_info); + osp_task_create(&ape4_event_task_info); osp_task_create(&ape4_event_task_info_del); diff --git a/APE4/ApeTask/src/Fucp_Ape4_pcie_testcase.s.c b/APE4/ApeTask/src/Fucp_Ape4_pcie_testcase.s.c index 60d7861..393a2b8 100644 --- a/APE4/ApeTask/src/Fucp_Ape4_pcie_testcase.s.c +++ b/APE4/ApeTask/src/Fucp_Ape4_pcie_testcase.s.c @@ -30,6 +30,7 @@ //lxh 202501 #include "mem_sections.h" #include "drv_ape.h" +#include "trace.h" @@ -458,15 +459,15 @@ void test_speed_recv_msg_pcie() handler.inst_id = i; handler.type_id = CU_SPLIT; cu_flag = C_PLANE; - + TRACE(TRACE_PCIE_ADDR, 3, 3); msg_transfer_receive(handler.value, cu_flag, offset, len, &msg_ptr); - + TRACE(TRACE_PCIE_ADDR, 3, 4); cu_flag = U_PLANE; msg_transfer_receive(handler.value, cu_flag, offset, len, &msg_ptr); - + TRACE(TRACE_PCIE_ADDR, 3, 5); handler.type_id = OAM; msg_transfer_receive(handler.value, cu_flag, offset, len, &msg_ptr); - + TRACE(TRACE_PCIE_ADDR, 3, 6); } /*********************************************************************************/ } @@ -474,10 +475,14 @@ void test_speed_recv_msg_pcie() void pcie_test_task_func(void) { + return ; + g_time_start[1] = TIME_US(); + 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 #endif @@ -485,6 +490,10 @@ void pcie_test_task_func(void) 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); + + TRACE_MAX(TRACE_PCIE_ADDR, 2, Time_offset(1) ); return; } diff --git a/APE5/ApeCommon/inc/ape_common.h b/APE5/ApeCommon/inc/ape_common.h index e2384cc..5a0acd8 100644 --- a/APE5/ApeCommon/inc/ape_common.h +++ b/APE5/ApeCommon/inc/ape_common.h @@ -33,5 +33,4 @@ #define DMA_TAG_CHAIN 19 extern __APE_DM3 v16s32 SVRReg; - #endif diff --git a/APE5/ApeTask/src/Fucp_Ape5_Init.s.c b/APE5/ApeTask/src/Fucp_Ape5_Init.s.c index 4b96caa..e82649f 100644 --- a/APE5/ApeTask/src/Fucp_Ape5_Init.s.c +++ b/APE5/ApeTask/src/Fucp_Ape5_Init.s.c @@ -27,12 +27,7 @@ /* 收到消息后创建任务 */ void ape5_event_task(uint32_t addr, uint32_t size) { - 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_create(&mgr_task); - osp_timer_sync(1); - LOG_INFO_S("APE5 finish task create!\n"); return; } @@ -56,12 +51,14 @@ void ape5_event_task_del(uint32_t addr, uint32_t size) */ 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_del = {51, "ape5_event_task_del1", 51, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape5_event_task_del}; - - osp_task_create(&ape5_event_task_info); - osp_task_create(&ape5_event_task_info_del); + // 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 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_create(&ape5_event_task_info); + // osp_task_create(&ape5_event_task_info_del); + osp_task_create(&mgr_task); + LOG_INFO_S("APE5 finish task create!\n"); return ; diff --git a/APE6/ApeCommon/inc/ape_common.h b/APE6/ApeCommon/inc/ape_common.h index 8c5e6ff..5965e3d 100644 --- a/APE6/ApeCommon/inc/ape_common.h +++ b/APE6/ApeCommon/inc/ape_common.h @@ -33,5 +33,4 @@ #define DMA_TAG_CHAIN 3 extern __APE_DM3 v16s32 SVRReg; - #endif diff --git a/APE6/ApeTask/src/Fucp_Ape6_Init.s.c b/APE6/ApeTask/src/Fucp_Ape6_Init.s.c index 889f07e..04a0bd3 100644 --- a/APE6/ApeTask/src/Fucp_Ape6_Init.s.c +++ b/APE6/ApeTask/src/Fucp_Ape6_Init.s.c @@ -27,12 +27,7 @@ /* 收到消息后创建任务 */ void ape6_event_task(uint32_t addr, uint32_t size) { - 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}; - osp_task_create(&mgr_task); - osp_timer_sync(1); - LOG_INFO_S("APE6 finish task create!\n"); return; } @@ -56,11 +51,16 @@ void ape6_event_task_del(uint32_t addr, uint32_t size) */ void Phy_Task_Ape6_Reg() { - osp_task_info_ex ape6_event_task_info = {50, "ape6_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape6_event_task}; - 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 = {50, "ape6_event_task1", 50, 2048, OSP_EVENT_TYPE, 0, 0, 0, NULL, (OSP_TASKENTRY_FUNC)ape6_event_task}; + // 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 = + {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}; + // osp_task_create(&ape6_event_task_info); + // osp_task_create(&ape6_event_task_info_del); + osp_task_create(&mgr_task); + LOG_INFO_S("APE6 finish task create!\n"); - osp_task_create(&ape6_event_task_info); - osp_task_create(&ape6_event_task_info_del); return ; diff --git a/APE7/ApeCommon/inc/ape_common.h b/APE7/ApeCommon/inc/ape_common.h index e2384cc..5a0acd8 100644 --- a/APE7/ApeCommon/inc/ape_common.h +++ b/APE7/ApeCommon/inc/ape_common.h @@ -33,5 +33,4 @@ #define DMA_TAG_CHAIN 19 extern __APE_DM3 v16s32 SVRReg; - #endif diff --git a/APE7/ApeTask/src/Fucp_Ape7_Init.s.c b/APE7/ApeTask/src/Fucp_Ape7_Init.s.c index 9d669b0..ae343e2 100644 --- a/APE7/ApeTask/src/Fucp_Ape7_Init.s.c +++ b/APE7/ApeTask/src/Fucp_Ape7_Init.s.c @@ -27,12 +27,7 @@ /* 收到消息后创建任务 */ void ape7_event_task(uint32_t addr, uint32_t size) { - 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}; - osp_task_create(&mgr_task); - osp_timer_sync(1); - LOG_INFO_S("APE7 finish task create!\n"); return; } @@ -56,11 +51,15 @@ void ape7_event_task_del(uint32_t addr, uint32_t size) */ 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_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 = {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 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}; + // osp_task_create(&ape7_event_task_info); + // osp_task_create(&ape7_event_task_info_del); + osp_task_create(&mgr_task); + LOG_INFO_S("APE7 finish task create!\n"); - osp_task_create(&ape7_event_task_info); - osp_task_create(&ape7_event_task_info_del); return ; diff --git a/APELib/Receiver_bit/src/receiver_Bit_Task.s.c b/APELib/Receiver_bit/src/receiver_Bit_Task.s.c index 2372cf9..783a389 100644 --- a/APELib/Receiver_bit/src/receiver_Bit_Task.s.c +++ b/APELib/Receiver_bit/src/receiver_Bit_Task.s.c @@ -21,10 +21,7 @@ */ void Receiver_Bit_Task(void* msg_ptr, uint32_t msg_len) { - uint16_t start_slot = TIME_SLOT(); - uint16_t start_us = TIME_US(); - uint16_t end_slot; - uint16_t end_us; + g_time_start[0] = TIME_US(); RUN_CNT(TRACE_RECEIVER_BIT_ADDR, 0); @@ -174,9 +171,8 @@ void Receiver_Bit_Task(void* msg_ptr, uint32_t msg_len) TRACE(TRACE_RECEIVER_BIT_ADDR, 3, 100); RUN_CNT(TRACE_RECEIVER_BIT_ADDR, 1); - end_slot = TIME_SLOT(); - end_us = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_BIT_ADDR, 2, TIME_DIFF(start_slot, start_us, end_slot, end_us) ); + + TRACE_MAX(TRACE_RECEIVER_BIT_ADDR, 2, Time_offset(0) ); return; } diff --git a/APELib/Receiver_symb/src/receiver_Symb_Task.s.c b/APELib/Receiver_symb/src/receiver_Symb_Task.s.c index 8c7fc54..a284932 100644 --- a/APELib/Receiver_symb/src/receiver_Symb_Task.s.c +++ b/APELib/Receiver_symb/src/receiver_Symb_Task.s.c @@ -22,9 +22,7 @@ void Receiver_Symb_Task(receiver_sync2symb_t* msg_ptr, uint32_t msg_len) { uint16_t start_slot = TIME_SLOT(); - uint16_t start_us = TIME_US(); - uint16_t end_slot; - uint16_t end_us; + g_time_start[0] = TIME_US(); RUN_CNT(TRACE_RECEIVER_SYMB_ADDR, 0); @@ -177,9 +175,7 @@ void Receiver_Symb_Task(receiver_sync2symb_t* msg_ptr, uint32_t msg_len) TRACE(TRACE_RECEIVER_SYMB_ADDR, 3, 100); RUN_CNT(TRACE_RECEIVER_SYMB_ADDR, 1); - end_slot = TIME_SLOT(); - end_us = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 2, TIME_DIFF(start_slot, start_us, end_slot, end_us) ); + TRACE_MAX(TRACE_RECEIVER_SYMB_ADDR, 2, Time_offset(0)); return; } diff --git a/APELib/Receiver_sync/src/receiver_Sync_Proc.s.c b/APELib/Receiver_sync/src/receiver_Sync_Proc.s.c index 538600e..02b27da 100644 --- a/APELib/Receiver_sync/src/receiver_Sync_Proc.s.c +++ b/APELib/Receiver_sync/src/receiver_Sync_Proc.s.c @@ -176,7 +176,7 @@ void Receiver_Sync_Proc( uint32_t cur_sfn = get_rx_nr_sfn(); uint32_t cur_slot = get_rx_nr_slot(); - uint32_t sync_status = LOAD_EX_W(&(g_receiver_sync_status_SM_ptr->sync_status)); + volatile sync_status = LOAD_EX_W(&(g_receiver_sync_status_SM_ptr->sync_status)); if(SYNC_FIRST_RUNING == sync_status) { @@ -233,18 +233,15 @@ void Receiver_Sync_Proc( //用于跟踪同步 void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) { - - uint16_t start_slot = TIME_SLOT(); - uint16_t start_us = TIME_US(); - uint16_t end_slot; - uint16_t end_us; + //DBG + return ; + g_time_start[0] = TIME_US(); uint16_t dbg_time0, dbg_time1; - uint16_t dbg_slot0, dbg_slot1; RUN_CNT(TRACE_RECEIVER_SYNC_FINE_ADDR, 0); uint32_t ret; int32_t *cfg_addr;// 配置地址指针 - uint32_t time0 = TIME_US(); + uint32_t time0 = g_time_start; volatile uint32_t time1 = time0; uint32_t task_idx = 0; uint32_t frame_head_offset; @@ -261,8 +258,7 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) Receiver_Sync_Memory_Alloc(); TRACE(TRACE_RECEIVER_SYNC_FINE_ADDR, 3, 2); - dbg_slot0 = TIME_SLOT(); - dbg_time0 = TIME_US(); + dbg_time0 = Time_offset(0); //搬移1055sample数据供定时同步,奇数slot处理偶buffer数据,反之 if( 1 == (slot & 0x01) ) @@ -335,11 +331,10 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) TRACE(TRACE_RECEIVER_SYNC_FINE_ADDR, 3, 3); ape_csu_task_lookup(DMA_TAG_G2L, 1); - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - uint32_t dbg_cur_time = TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1); - TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 5, dbg_cur_time ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 5, dbg_time1-dbg_time0 ); + dbg_time0 = dbg_time1; // LOG_ERROR_S("%d %d %d\n", sfn, slot , dbg_cur_time); // if(100 < dbg_cur_time ) // { @@ -352,9 +347,6 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) // __ucps2_dbgbreak(); // } - dbg_time0 = dbg_time1; - dbg_slot0 = dbg_time1; - //插空拷贝数据到SM,提供给sync_symb数据输入来源 ape_csu_dma_1D_G2L_ch0ch1_transfer((uint64_t)(src_addr0), (uint64_t)(sync2symb_data_buffer[buffer_sel]), @@ -375,11 +367,9 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) WAIT_MPU_STOP; TRACE(TRACE_RECEIVER_SYNC_FINE_ADDR, 3, 4); - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 6, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 6, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_time1; SVRReg[0] = MPU_ADDR(cfg_addr); SyncVerAsm(SVRReg); @@ -387,11 +377,9 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) // 得到验证后的同步位置 WAIT_MPU_STOP; - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 7, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 7, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_time1; TRACE(TRACE_RECEIVER_SYNC_FINE_ADDR, 3, 5); uint32_t maxWindowSum = receiver_sync_temp_dm3_ptr[1]; //更新最佳位置 @@ -454,11 +442,9 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) 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_proc_data_offset, cylic_buffer_proc_data_offset); - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 8, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 8, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_time1; //TODO:后续需要添加门限判断条件 uint32_t threshold = 1; @@ -488,8 +474,6 @@ void Receiver_Fine_Sync_Proc(uint32_t sfn, uint32_t slot) Receiver_Sync_Memory_Free(); RUN_CNT(TRACE_RECEIVER_SYNC_FINE_ADDR, 1); - end_slot = TIME_SLOT(); - end_us = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 2, TIME_DIFF(start_slot, start_us, end_slot, end_us) ); + TRACE_MAX(TRACE_RECEIVER_SYNC_FINE_ADDR, 2, Time_offset(0) ); return; } \ No newline at end of file diff --git a/APELib/Receiver_sync_first/src/receiver_Sync_First_Proc.s.c b/APELib/Receiver_sync_first/src/receiver_Sync_First_Proc.s.c index 0b02797..66b3d81 100644 --- a/APELib/Receiver_sync_first/src/receiver_Sync_First_Proc.s.c +++ b/APELib/Receiver_sync_first/src/receiver_Sync_First_Proc.s.c @@ -162,15 +162,8 @@ void Receiver_Sync_First_Memory_Free( ) void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_len) { - uint16_t start_slot = TIME_SLOT(); - uint16_t start_us = TIME_US(); - uint16_t end_slot; - uint16_t end_us; + g_time_start[0] = TIME_US(); RUN_CNT(TRACE_RECEIVER_SYNC_FIRST_ADDR, 0); - - - - const uint32_t loop_num = 1; uint32_t ret; @@ -182,12 +175,10 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ uint32_t total_nsample = sample_per_tti + addition_sample; uint32_t sample_per_csu = (total_nsample >> 1); uint32_t nsample_per_section = total_nsample / loop_num; - uint32_t corr_dm_ptr; int32_t *cfg_addr;// 配置地址指针 uint32_t maxPosition = 0; uint32_t maxsum; volatile uint16_t dbg_time0, dbg_time1; - volatile uint16_t dbg_slot0, dbg_slot1; //Proc的DM空间申请 Receiver_Sync_First_Memory_Alloc(); @@ -195,8 +186,7 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ //寻找帧同步头,更新同步信息结构体 //搬移500us+数据供定时同步,奇数slot处理偶buffer数据,反之 - dbg_slot0 = TIME_SLOT(); - dbg_time0 = TIME_US(); + dbg_time0 = Time_offset(0); uint32_t src_addr0; uint32_t src_addr1; if( 1 == (slot & 0x01) ) @@ -255,11 +245,9 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ ape_csu_task_lookup(DMA_TAG_G2L, 1); - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 4, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 4, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_time1; TRACE(TRACE_RECEIVER_SYNC_FIRST_ADDR, 3, 3); SVRReg[0] = MPU_ADDR(cfg_addr); ByteCopyAsm(SVRReg); @@ -271,12 +259,11 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ // receiver_sync_first_temp_dm3_ptr); WAIT_MPU_STOP; - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 5, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 5, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_slot1; - dm_check(0); + // dm_check(0); cfg_addr = (int32_t *)receiver_sync_first_config_dm0_ptr + g_receiver_sync_first_table_param.ConfigSlidingCorrelation_CFG2_Offset; @@ -300,13 +287,11 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ SlidingCorrelationAsm(SVRReg); WAIT_MPU_STOP; - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 6, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 6, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_slot1; TRACE(TRACE_RECEIVER_SYNC_FIRST_ADDR, 3, 5); - dm_check(1); + //dm_check(1); maxPosition = receiver_sync_first_temp_dm3_ptr[0]; maxsum = receiver_sync_first_temp_dm3_ptr[1]; @@ -322,12 +307,9 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ 0); ape_csu_task_lookup(DMA_TAG_G2L, 1); - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 7, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 7, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_slot1; - @@ -365,22 +347,18 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ MPU_ADDR(receiver_sync_first_temp_dm2_ptr), MPU_ADDR(receiver_sync_first_temp_dm3_ptr)); WAIT_MPU_STOP; - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 8, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 8, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_slot1; TRACE(TRACE_RECEIVER_SYNC_FIRST_ADDR, 3, 6); - dm_check(2); + //dm_check(2); SVRReg[0] = MPU_ADDR(cfg_addr); SlidingCorrelationSecondAsm(SVRReg); WAIT_MPU_STOP; - dbg_slot1 = TIME_SLOT(); - dbg_time1 = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 9, TIME_DIFF(dbg_slot0, dbg_time0, dbg_slot1, dbg_time1) ); + dbg_time1 = Time_offset(0); + TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 9, dbg_time1-dbg_time0 ); dbg_time0 = dbg_time1; - dbg_slot0 = dbg_slot1; TRACE(TRACE_RECEIVER_SYNC_FIRST_ADDR, 3, 7); @@ -390,7 +368,7 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ maxsum = receiver_sync_first_temp_dm3_ptr[1]; } - dm_check(3); + //dm_check(3); //TODO:后续需要添加门限判断条件 uint32_t threshold = 1; if(threshold) @@ -425,8 +403,6 @@ void Receiver_First_Sync_Proc(receiver_sync2first_sync_t* msg_ptr, uint32_t msg_ RUN_CNT(TRACE_RECEIVER_SYNC_FIRST_ADDR, 1); - end_slot = TIME_SLOT(); - end_us = TIME_US(); - TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 2, TIME_DIFF(start_slot, start_us, end_slot, end_us) ); + TRACE_MAX(TRACE_RECEIVER_SYNC_FIRST_ADDR, 2, Time_offset(0)); return; } diff --git a/APELib/TestTask/src/Frame_test.s.c b/APELib/TestTask/src/Frame_test.s.c index b3d0519..4a72175 100644 --- a/APELib/TestTask/src/Frame_test.s.c +++ b/APELib/TestTask/src/Frame_test.s.c @@ -4,9 +4,7 @@ void Test_Task() { uint16_t start_slot = TIME_SLOT(); - uint16_t start_us = TIME_US(); - uint16_t end_slot; - uint16_t end_us; + g_time_start[0] = TIME_US(); RUN_CNT(TRACE_TESTTASK_ADDR, 0); uint32_t cur_sfn = get_rx_nr_sfn(); @@ -75,7 +73,5 @@ void Test_Task() TRACE(TRACE_TESTTASK_ADDR, 3, 4); RUN_CNT(TRACE_TESTTASK_ADDR, 1); - end_slot = TIME_SLOT(); - end_us = TIME_US(); - TRACE_MAX(TRACE_TESTTASK_ADDR, 2, TIME_DIFF(start_slot, start_us, end_slot, end_us) ); + TRACE_MAX(TRACE_TESTTASK_ADDR, 2, Time_offset(0) ); } diff --git a/APELib/Transmitter/src/transmitter_Task.s.c b/APELib/Transmitter/src/transmitter_Task.s.c index a36085d..3c80fea 100644 --- a/APELib/Transmitter/src/transmitter_Task.s.c +++ b/APELib/Transmitter/src/transmitter_Task.s.c @@ -28,9 +28,7 @@ void Transmitter_Task() //时间统计 uint16_t start_slot = TIME_SLOT(); - uint16_t start_us = TIME_US(); - uint16_t end_slot; - uint16_t end_us; + g_time_start[1] = TIME_US(); uint16_t time0_us, time1_us; uint16_t time0_slot, time1_slot; RUN_CNT(TRACE_TRANSMITTER_ADDR, 0); @@ -132,10 +130,9 @@ void Transmitter_Task() transmitter_temp_dm2_ptr = (int32_t *)ADDR_ALIGN(transmitter_malloc_dm2_ptr, 14); //起始地址16k对齐 TRACE(TRACE_TRANSMITTER_ADDR, 3, 2); - time1_slot = TIME_SLOT(); - time1_us = TIME_US(); + time1_us = Time_offset(1); - TRACE_MAX(TRACE_TRANSMITTER_ADDR, 4, TIME_DIFF(start_slot, start_us,time1_slot, time1_us)); + TRACE_MAX(TRACE_TRANSMITTER_ADDR, 4, time1_us); time0_slot = time1_slot; time0_us = time1_us; //6. 计算流程 @@ -149,10 +146,8 @@ void Transmitter_Task() transmitter_cur_sfn ); - time1_slot = TIME_SLOT(); - time1_us = TIME_US(); - TRACE_MAX(TRACE_TRANSMITTER_ADDR, 5, TIME_DIFF(time0_slot, time0_us,time1_slot, time1_us)); - time0_slot = time1_slot; + time1_us = Time_offset(1); + TRACE_MAX(TRACE_TRANSMITTER_ADDR, 5, time1_us - time0_us); time0_us = time1_us; @@ -179,9 +174,7 @@ void Transmitter_Task() TRACE(TRACE_TRANSMITTER_ADDR, 3, 1024); RUN_CNT(TRACE_TRANSMITTER_ADDR, 1); - end_slot = TIME_SLOT(); - end_us = TIME_US(); - TRACE_MAX(TRACE_TRANSMITTER_ADDR, 2, TIME_DIFF(start_slot, start_us, end_slot, end_us) ); - LOG_ERROR_S("DM0:%d:%d, DM1:%d:%d,DM2:%d:%d,DM3:%d:%d\n",result00,result01,result10,result11,result20,result21,result30,result31); + TRACE_MAX(TRACE_TRANSMITTER_ADDR, 2, Time_offset(1) ); + //LOG_ERROR_S("DM0:%d:%d, DM1:%d:%d,DM2:%d:%d,DM3:%d:%d\n",result00,result01,result10,result11,result20,result21,result30,result31); return; } diff --git a/Common/inc/log_interface.h b/Common/inc/log_interface.h index 8e2a3af..0b56d52 100644 --- a/Common/inc/log_interface.h +++ b/Common/inc/log_interface.h @@ -12,7 +12,6 @@ #ifndef LOG_INTERFACE_H #define LOG_INTERFACE_H #include -#include "osp_interface.h" #include "common.h" diff --git a/Common/inc/mem_def.h b/Common/inc/mem_def.h index 63de491..b3a3104 100644 --- a/Common/inc/mem_def.h +++ b/Common/inc/mem_def.h @@ -86,8 +86,9 @@ #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_TRANSMITTER_ADDR (TRACE_RECEIVER_SYNC_FINE_ADDR + TRACE_GRP_LEN) // 0x88701000 -#define TRACE_TRANS_INIT_ADDR (TRACE_TRANSMITTER_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 #endif diff --git a/Common/inc/task_define.h b/Common/inc/task_define.h index 3531d53..eb9ddfb 100644 --- a/Common/inc/task_define.h +++ b/Common/inc/task_define.h @@ -12,7 +12,6 @@ #ifndef TASK_DEFINE_H #define TASK_DEFINE_H #include -#include "osp_interface.h" #include "osp_ape.h" typedef enum diff --git a/Common/inc/trace.h b/Common/inc/trace.h index 8500980..d4b4266 100644 --- a/Common/inc/trace.h +++ b/Common/inc/trace.h @@ -28,14 +28,15 @@ #define RUN_CNT(base, offset) STORE_EX_W( (void*)((base) + 4*(offset)), LOAD_EX_W( (void*)((base) + 4*(offset)) ) + 1 ) #define TIME_SLOT() (get_tx_nr_slot() ) -#define TIME_US() (uint16_t)((get_tx_nr_slot_cycle() * 2097) >> 21) +#define TIME_US() (uint32_t)((GET_STC_CNT()* 2097) >> 21) +#define TIME_NS() (uint32_t)((GET_STC_CNT()) #define TIME_DIFF(start_slot, start_us, end_slot, end_us) ((start_slot) <= (end_slot) )? \ (( (end_slot) - (start_slot) ) * 500 + ( (end_us) - (start_us) )): \ ((NR_SFN_SLOT_NUM + (end_slot) - (start_slot) )* 500 + (end_us) - (start_us) ) \ - - +extern uint32_t g_time_start[3]; +extern uint32_t Time_offset(uint32_t idx); //#define TIME_RECORD(base, offset, time0) STORE_EX_W( (void*)((base) + 4*(offset)), GET_STC_CNT() - time0) #endif \ No newline at end of file diff --git a/Common/src/trace.s.c b/Common/src/trace.s.c new file mode 100644 index 0000000..f5401d0 --- /dev/null +++ b/Common/src/trace.s.c @@ -0,0 +1,12 @@ +#include "trace.h" + +uint32_t g_time_start[3]; +__attribute__((always_inline)) uint32_t Time_offset(uint32_t idx) +{ + #ifndef IDE_TEST + uint32_t cur_cycle = TIME_US(); + return (cur_cycle < g_time_start[idx]) ? (cur_cycle + (0x389aca00 - g_time_start[idx])) : (cur_cycle - g_time_start[idx]); + #else + return 0; + #endif +} \ No newline at end of file diff --git a/Interface/interface_rec_sync2_rec_sync_first.h b/Interface/interface_rec_sync2_rec_sync_first.h index 94bf899..30808d3 100644 --- a/Interface/interface_rec_sync2_rec_sync_first.h +++ b/Interface/interface_rec_sync2_rec_sync_first.h @@ -6,7 +6,7 @@ typedef struct receiver_sync_status_s { uint32_t cylic_buffer_data_offset;//循环buffer指示数据存入的头相对buffer_ptr[0]偏移 - uint32_t cylic_buffer_proc_data_offset;//循环buffer指示数据处理的头相对buffer_ptr[0]偏移 + int32_t cylic_buffer_proc_data_offset;//循环buffer指示数据处理的头相对buffer_ptr[0]偏移 uint32_t cylic_buffer_data_len;//单位是Word uint32_t sync_status;//参见receiver_sync_status_e uint32_t frame_head_offset;//每个500us中帧头的偏移值,范围0~61439