From 5feefd8bd6730893c317f47886d8dce78560aab4 Mon Sep 17 00:00:00 2001 From: yuanQie Date: Tue, 27 May 2025 18:41:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=90=9B=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=8F=98=E9=87=8F=E5=A3=B0=E6=98=8E?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/case52/src/testcase52.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/test/case52/src/testcase52.c b/test/case52/src/testcase52.c index 05c8bf4..fd6b95c 100755 --- a/test/case52/src/testcase52.c +++ b/test/case52/src/testcase52.c @@ -187,6 +187,10 @@ void *handleUdpTransmission(void *arg) } printf("[tx]:初始10块写入完成,当前地址块=%zu,数据索引=%zu\n", wr_cunt, data_index); printf("[while(1)]:/*************************************/\n"); + size_t current_pos = 0; + uint16_t value_mem = 0; + uint8_t block_n = 0; + uint8_t cut_i = 0; while (1) { if (1 == slot_ind_flag) @@ -195,24 +199,24 @@ void *handleUdpTransmission(void *arg) slot_ind_flag = 0; /************************************************************************************** */ // wr 16016*20(byte),一次while循环会写入 1/20 的数据,触发条件为slot_ind_flag - const size_t current_pos = wr_cunt * 16016; + current_pos = wr_cunt * 16016; for (int i = 0; i < 8008; ++i) { - const uint16_t value = txt_buffer[(data_index + i) % 65535]; - memcpy((char*)map_base_tx_case52 + current_pos + i*2, &value, 2); + value_mem = txt_buffer[(data_index + i) % 65535]; + memcpy((char*)map_base_tx_case52 + current_pos + i*2, &value_mem, 2); } data_index = (data_index + 8008) % 65535; wr_cunt = (wr_cunt + 1) % 20; /************************************************************************************** */ // 更新生产者计数 - uint8_t w_idx = __atomic_load_n( + w_idx = __atomic_load_n( (volatile uint8_t *)(map_base_rxf_case52 + 0), __ATOMIC_ACQUIRE ); - // uint8_t w_idx = *((volatile uint8_t *)map_base_rxf_case52); + // w_idx = *((volatile uint8_t *)map_base_rxf_case52); /************************************************************************************** */ // 尝试读取 - uint8_t block_n = 0; + block_n = 0; if (w_idx == r_idx){ printf("[while(1)]: w_idx = %hhu, r_idx = %hhu\n", w_idx, r_idx); printf("[while(1)]: pass\n"); @@ -221,7 +225,7 @@ void *handleUdpTransmission(void *arg) printf("[while(1)]: w_idx = %hhu, r_idx = %hhu\n", w_idx, r_idx); printf("[while(1)]: r_idx < w_idx\n"); block_n = w_idx - r_idx; - for (uint8_t cut_i = 0; cut_i < block_n; cut_i++) + for (cut_i = 0; cut_i < block_n; cut_i++) { memcpy(udp_data_buffer, (char*)map_base_rx_case52 + r_idx * 16016, @@ -252,7 +256,7 @@ void *handleUdpTransmission(void *arg) printf("[while(1)]: w_idx < r_idx\n"); printf("[while(1)]: w_idx = %hhu, r_idx = %hhu\n", w_idx, r_idx); // 取完末尾 - for (uint8_t cut_i = 0; cut_i < (8-r_idx); cut_i++) + for (cut_i = 0; cut_i < (8-r_idx); cut_i++) { memcpy(udp_data_buffer, (char*)map_base_rx_case52 + r_idx * 16016, @@ -279,7 +283,7 @@ void *handleUdpTransmission(void *arg) } r_idx = r_idx % 8; // 取从头开始 - for (uint8_t cut_i = 0; cut_i < w_idx; cut_i++) + for (cut_i = 0; cut_i < w_idx; cut_i++) { memcpy(udp_data_buffer, (char*)map_base_rx_case52 + cut_i * 16016,