diff --git a/datalink814_ge/unit_test/linklayer_emulate_unit_test.c b/datalink814_ge/unit_test/linklayer_emulate_unit_test.c index 2408a45..0c1984b 100644 --- a/datalink814_ge/unit_test/linklayer_emulate_unit_test.c +++ b/datalink814_ge/unit_test/linklayer_emulate_unit_test.c @@ -8,27 +8,31 @@ #include "linklayer/linklayer814.h" #include "linklayer/msg_def.h" -#define TIME_INT_REG (0x00000008>>2) -#define TIME_FRAC_REG (0x0000000C>>2) -#define TIME_ADJ_INT (0x0000001C>>2) -#define TIME_ADJ_FRAC (0x00000020>>2) -#define TIME_ADJ_TRIG (0x00000024>>2) -#define CNTSTEP_OPT (0x00000028>>2) +#define TIME_INT_REG (0x00000008 >> 2) +#define TIME_FRAC_REG (0x0000000C >> 2) +#define TIME_ADJ_INT (0x0000001C >> 2) +#define TIME_ADJ_FRAC (0x00000020 >> 2) +#define TIME_ADJ_TRIG (0x00000024 >> 2) +#define CNTSTEP_OPT (0x00000028 >> 2) -TIMECTRL_INST* tmcInstPtr = NULL; -PHY_INST* phyInstPtr = NULL; -L2_INST* linkInstPtr = NULL; +TIMECTRL_INST *tmcInstPtr = NULL; +PHY_INST *phyInstPtr = NULL; +L2_INST *linkInstPtr = NULL; uint32_t tmcReg[32] = {0}; uint32_t phycReg[512] = {0}; -uint8_t bmTemplate[INTRA_BM_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = { + +uint8_t bmTemplate[INTRA_BM_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = +{ 0x08, 0x21, 0x04, 0x06, 0x00, 0xF3, 0xA8, 0xCB, 0x00, 0xA0, 0x49, 0x00, 0x9A, 0x04, 0x13, 0x1E, 0x45, 0xE7, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA }; -uint8_t w2acqTemplate[INTRA_W2ACQ_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = { + +uint8_t w2acqTemplate[INTRA_W2ACQ_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = +{ 0xCC, 0x71, 0x21, 0xA8, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xF0, 0xF0, 0x2A, 0x0F, 0x0F, 0xF0, 0x0F, 0x00, @@ -62,7 +66,9 @@ uint8_t w2acqTemplate[INTRA_W2ACQ_FRAME_LENGTH_MAX] __attribute__ ((aligned (8)) 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA }; -uint8_t mgmtTemplate[INTRA_MGMT_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = { + +uint8_t mgmtTemplate[INTRA_MGMT_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = +{ 0xCC, 0xC3, 0x99, 0x99, 0x83, 0x99, 0x99, 0x99, 0x99, 0xA5, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBA, 0xBB, 0x9B, 0x19, 0xCC, 0xCC, 0xDD, 0xDD, 0xEE, @@ -96,7 +102,9 @@ uint8_t mgmtTemplate[INTRA_MGMT_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -uint8_t rttTemplate[INTRA_RTT_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = { + +uint8_t rttTemplate[INTRA_RTT_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = +{ 0xDC, 0xA3, 0x10, 0x44, 0x98, 0x99, 0x99, 0x99, 0x99, 0x05, 0x00, 0x00, 0x00, 0x50, 0x32, 0x01, 0x00, 0x90, 0x99, 0xFF, 0xFF, 0xFF, 0x99, 0x99, @@ -130,7 +138,9 @@ uint8_t rttTemplate[INTRA_RTT_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -uint8_t svcTemplate[INTRA_SVC_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = { + +uint8_t svcTemplate[INTRA_SVC_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = +{ 0xF0, 0xFF, 0x00, 0x21, 0x88, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -165,8 +175,8 @@ uint8_t svcTemplate[INTRA_SVC_FRAME_LENGTH_MAX] __attribute__ ((aligned (8))) = 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xB5, }; - -L2_CONFIG l2Config = { +L2_CONFIG l2Config = +{ .myType = L2_NODE_HEAD, .isInterHead = false, .myId = 1, @@ -178,7 +188,8 @@ L2_CONFIG l2Config = { .tmcInstPtr = NULL }; -PHY_CONFIG l1Config = { +PHY_CONFIG l1Config = +{ .devId = 0, .txBramId = 0, .rxBramId = 0, @@ -186,17 +197,21 @@ PHY_CONFIG l1Config = { .baseAddr = (uintptr_t)phycReg }; -TIMECTRL_CONFIG tmcConfig = { +TIMECTRL_CONFIG tmcConfig = +{ .baseAddr = (uintptr_t)tmcReg, .reset = 10 }; -inline uint32_t rand_range(uint32_t a, uint32_t b){ +int32_t rand_range(uint32_t a, uint32_t b); +inline int32_t rand_range(uint32_t a, uint32_t b) +{ ASSERT(b > a); return (rand() % (b + 1 - a) + a); } -void linklayer_setup(void){ +void linklayer_setup(void) +{ int32_t Status; Status = TimeCtrl_Init(&tmcInstPtr, &tmcConfig); ASSERT_EQUAL(SUCCESS, Status); @@ -211,18 +226,20 @@ void linklayer_setup(void){ ASSERT_EQUAL(SUCCESS, Status); } -void linklayer_teardown(void){ +void linklayer_teardown(void) +{ Linklayer_Destroy(linkInstPtr); Phy_Destroy(phyInstPtr); TimeCtrl_Destroy(tmcInstPtr); } -void forge_bm_frame(uint8_t* buff, uint8_t nodeId, uint16_t clustId, uint16_t headId, uint64_t time) { +void forge_bm_frame(uint8_t *buff, uint8_t nodeId, uint16_t clustId, uint16_t headId, uint64_t time) +{ BIT_ARRAY bitarr = { - .words = (uint64_t*)buff, - .num_of_bits = INTRA_BM_FRAME_LENGTH_MAX*8, - .num_of_words = roundup_bits2words64(INTRA_BM_FRAME_LENGTH_MAX*8), - .capacity_in_words = roundup_bits2words64(INTRA_BM_FRAME_LENGTH_MAX*8), + .words = (uint64_t *)buff, + .num_of_bits = INTRA_BM_FRAME_LENGTH_MAX * 8, + .num_of_words = roundup_bits2words64(INTRA_BM_FRAME_LENGTH_MAX * 8), + .capacity_in_words = roundup_bits2words64(INTRA_BM_FRAME_LENGTH_MAX * 8), }; memcpy(buff, bmTemplate, INTRA_BM_FRAME_LENGTH_MAX); uint64_t dataChunk; @@ -249,13 +266,14 @@ void forge_bm_frame(uint8_t* buff, uint8_t nodeId, uint16_t clustId, uint16_t he L2_CrcAppend(buff, BM_MSG_CRC_OFFSET / 8, BM_MSG_CRC_OFFSET / 8, L2_CRC8_31); } -void forge_w2acq_frame(uint8_t* buff, L2_NODE_TYPE nodeType, uint16_t srcId, uint16_t destId, - uint16_t clustId, uint32_t netStartTime, L2_NODE_STATE state) { +void forge_w2acq_frame(uint8_t *buff, L2_NODE_TYPE nodeType, uint16_t srcId, uint16_t destId, + uint16_t clustId, uint32_t netStartTime, L2_NODE_STATE state) +{ BIT_ARRAY bitarr = { - .words = (uint64_t*)buff, - .num_of_bits = INTRA_W2ACQ_FRAME_LENGTH_MAX*8, - .num_of_words = roundup_bits2words64(INTRA_W2ACQ_FRAME_LENGTH_MAX*8), - .capacity_in_words = roundup_bits2words64(INTRA_W2ACQ_FRAME_LENGTH_MAX*8), + .words = (uint64_t *)buff, + .num_of_bits = INTRA_W2ACQ_FRAME_LENGTH_MAX * 8, + .num_of_words = roundup_bits2words64(INTRA_W2ACQ_FRAME_LENGTH_MAX * 8), + .capacity_in_words = roundup_bits2words64(INTRA_W2ACQ_FRAME_LENGTH_MAX * 8), }; memcpy(buff, w2acqTemplate, INTRA_W2ACQ_FRAME_LENGTH_MAX); @@ -272,7 +290,8 @@ void forge_w2acq_frame(uint8_t* buff, L2_NODE_TYPE nodeType, uint16_t srcId, uin dataChunk = (destId & 0x001F) | ((clustId & 0x001F) << 5); FrameInsertChunk(&bitarr, NS_MSG_INI_LEN_OFFSET, NS_MSG_INI_LEN_LEN, dataChunk); /* current net stage */ - switch (state) { + switch (state) + { case L2_INIT_STATE: dataChunk = NET_INI_STAGE; break; @@ -296,17 +315,19 @@ void forge_w2acq_frame(uint8_t* buff, L2_NODE_TYPE nodeType, uint16_t srcId, uin L2_CrcAppend(buff, W2ACQ_FRAME_CRC_DLEN, W2ACQ_FRAME_CRC_POS, L2_CRC16_8005); } -void forge_mgmt_frame(uint8_t* buff, L2_NODE_STATE state) { +void forge_mgmt_frame(uint8_t *buff, L2_NODE_STATE state) +{ BIT_ARRAY bitarr = { - .words = (uint64_t*)buff, - .num_of_bits = INTRA_MGMT_FRAME_LENGTH_MAX*8, - .num_of_words = roundup_bits2words64(INTRA_MGMT_FRAME_LENGTH_MAX*8), - .capacity_in_words = roundup_bits2words64(INTRA_MGMT_FRAME_LENGTH_MAX*8), + .words = (uint64_t *)buff, + .num_of_bits = INTRA_MGMT_FRAME_LENGTH_MAX * 8, + .num_of_words = roundup_bits2words64(INTRA_MGMT_FRAME_LENGTH_MAX * 8), + .capacity_in_words = roundup_bits2words64(INTRA_MGMT_FRAME_LENGTH_MAX * 8), }; memcpy(buff, mgmtTemplate, INTRA_MGMT_FRAME_LENGTH_MAX); uint64_t dataChunk; - switch (state) { + switch (state) + { case L2_INIT_STATE: dataChunk = NET_INI_STAGE; break; @@ -329,13 +350,14 @@ void forge_mgmt_frame(uint8_t* buff, L2_NODE_STATE state) { } } -void forge_rtt_frame(uint8_t* buff, uint16_t srcId, uint16_t destId, - uint16_t clustId, const TIME_WORD* timeStamp, uint32_t doppler) { +void forge_rtt_frame(uint8_t *buff, uint16_t srcId, uint16_t destId, + uint16_t clustId, const TIME_WORD *timeStamp, uint32_t doppler) +{ BIT_ARRAY bitarr = { - .words = (uint64_t*)buff, - .num_of_bits = INTRA_BM_FRAME_LENGTH_MAX*8, - .num_of_words = roundup_bits2words64(INTRA_BM_FRAME_LENGTH_MAX*8), - .capacity_in_words = roundup_bits2words64(INTRA_BM_FRAME_LENGTH_MAX*8), + .words = (uint64_t *)buff, + .num_of_bits = INTRA_BM_FRAME_LENGTH_MAX * 8, + .num_of_words = roundup_bits2words64(INTRA_BM_FRAME_LENGTH_MAX * 8), + .capacity_in_words = roundup_bits2words64(INTRA_BM_FRAME_LENGTH_MAX * 8), }; memcpy(buff, rttTemplate, INTRA_BM_FRAME_LENGTH_MAX); uint64_t dataChunk;