按照状态寄存器里各个fifo的剩余字节工作,测试代码完成。测试主站正常工作

This commit is contained in:
2025-02-12 17:52:55 +08:00
parent 45f470dc19
commit 80010b89e9
2 changed files with 29 additions and 23 deletions

View File

@@ -77,27 +77,28 @@ uint32_t HLM_poll(uint32_t mode)
{ {
status = *HLM_status; status = *HLM_status;
if (((tx_index * 4) < tx_pkt_len) && (!(status & HLM_TX0_FIFO_FULL))) for (i = 0; i < HLM_TX_FIFO_LEN - HLM_TX0_FIFO_LEFT(status); i++)
{
if ((tx_index * 4) < tx_pkt_len)
{ {
*tx0_txFifo = tx_data_ptr[tx_index]; *tx0_txFifo = tx_data_ptr[tx_index];
tx_index++; tx_index++;
} }
else
status = *HLM_status; break;
if (((tx_index * 4) < tx_pkt_len) && (!(status & HLM_TX0_FIFO_FULL)))
{
*tx0_txFifo = tx_data_ptr[tx_index];
tx_index++;
} }
if ((rx_start) && (status & HLM_RX1_VALID)) for (i = 0; i < HLM_RX1_FIFO_LEFT(status); i++)
{
//if ((rx_start) && (status & HLM_RX1_VALID))
if (rx_start)
{ {
rx_data_ptr[rx_index] = *rx1_rxFifo; rx_data_ptr[rx_index] = *rx1_rxFifo;
if (rx_index == 0) if (rx_index == 0)
rx_pkt_len = (rx_data_ptr[rx_index] >> 20) + 4; rx_pkt_len = (rx_data_ptr[rx_index] >> 20) + 4;
rx_index++; rx_index++;
if (rx_pkt_len <= (rx_index * 4)) if (rx_pkt_len <= (rx_index * 4))
{ {
rx_start = 0; rx_start = 0;
@@ -105,6 +106,7 @@ uint32_t HLM_poll(uint32_t mode)
break; break;
} }
} }
}
if (isr_flag[CDR_INT_RX1START]) if (isr_flag[CDR_INT_RX1START])
{ {

View File

@@ -47,6 +47,10 @@
#define HLM_RX0_VALID (1U<<6U) #define HLM_RX0_VALID (1U<<6U)
#define HLM_RX1_VALID (1U<<7U) #define HLM_RX1_VALID (1U<<7U)
#define HLM_RX0_FIFO_LEFT(s) (((s) >> 8) & 0x1f)
#define HLM_RX1_FIFO_LEFT(s) (((s) >> (8 + 5)) & 0x1f)
#define HLM_TX0_FIFO_LEFT(s) (((s) >> (8 + 10)) & 0x1f)
#define HLM_TX1_FIFO_LEFT(s) (((s) >> (8 + 15)) & 0x1f)
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
extern volatile uint32_t * const tx0_softReset; extern volatile uint32_t * const tx0_softReset;