按照状态寄存器里各个fifo的剩余字节工作,测试代码完成。测试主站正常工作
This commit is contained in:
@@ -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])
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user