增加代码,验证cdr的status寄存器,功能正确了
This commit is contained in:
@@ -93,7 +93,7 @@ uint32_t HLM_poll(uint32_t mode)
|
|||||||
|
|
||||||
|
|
||||||
//开始发送工作
|
//开始发送工作
|
||||||
*tx0_txLen = tx_pkt_len + 8;
|
*tx0_txLen = tx_pkt_len + 4;
|
||||||
*tx0_txFifo = (tx_pkt_len << 20) | (0 << 16) | 0;
|
*tx0_txFifo = (tx_pkt_len << 20) | (0 << 16) | 0;
|
||||||
|
|
||||||
uint32_t tx_index = 0;
|
uint32_t tx_index = 0;
|
||||||
@@ -114,7 +114,7 @@ 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))
|
if (((tx_index * 4) < tx_pkt_len) && (!(status & HLM_TX0_FIFO_FULL)))
|
||||||
{
|
{
|
||||||
*tx0_txFifo = tx_data_ptr[tx_index];
|
*tx0_txFifo = tx_data_ptr[tx_index];
|
||||||
tx_index++;
|
tx_index++;
|
||||||
@@ -161,16 +161,16 @@ uint32_t HLM_poll(uint32_t mode)
|
|||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
//status = *HLM_status;
|
status = *HLM_status;
|
||||||
|
|
||||||
if (rx_start)// && (status & HLM_RX0_VALID))
|
if (rx_start && (status & HLM_RX0_VALID))
|
||||||
{
|
{
|
||||||
uint32_t data;
|
uint32_t data;
|
||||||
data = *rx0_rxFifo;
|
data = *rx0_rxFifo;
|
||||||
if (rx_index == 0)
|
if (rx_index == 0)
|
||||||
{
|
{
|
||||||
rx_pkt_len = (data >> 20) + 4;
|
rx_pkt_len = (data >> 20) + 4;
|
||||||
*tx1_txLen = rx_pkt_len + 4;
|
*tx1_txLen = rx_pkt_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
rx_index++;
|
rx_index++;
|
||||||
@@ -178,19 +178,6 @@ uint32_t HLM_poll(uint32_t mode)
|
|||||||
if (rx_pkt_len <= (rx_index * 4))
|
if (rx_pkt_len <= (rx_index * 4))
|
||||||
{
|
{
|
||||||
rx_start = 0;
|
rx_start = 0;
|
||||||
#if 0
|
|
||||||
*plic_enable_0_31 = 1 << CDR_INT_TX0END
|
|
||||||
| 1 << CDR_INT_TX1END
|
|
||||||
|
|
||||||
| 1 << CDR_INT_RX0ERROR
|
|
||||||
| 1 << CDR_INT_RX1ERROR
|
|
||||||
|
|
||||||
| 1 << CDR_INT_RX0START
|
|
||||||
| 1 << CDR_INT_RX1START
|
|
||||||
|
|
||||||
| 1 << CDR_INT_RX0END
|
|
||||||
| 1 << CDR_INT_RX1END;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,27 +186,7 @@ uint32_t HLM_poll(uint32_t mode)
|
|||||||
{
|
{
|
||||||
isr_flag[CDR_INT_RX0START] = 0;
|
isr_flag[CDR_INT_RX0START] = 0;
|
||||||
rx_start = 1;
|
rx_start = 1;
|
||||||
//*plic_enable_0_31 = 0;
|
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
//rx1 上行
|
|
||||||
if (isr_flag[CDR_INT_RX1START])
|
|
||||||
{
|
|
||||||
isr_flag[CDR_INT_RX1START] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isr_flag[CDR_INT_RX0END])
|
|
||||||
{
|
|
||||||
isr_flag[CDR_INT_RX0END] = 0;
|
|
||||||
//break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isr_flag[CDR_INT_RX1END])
|
|
||||||
{
|
|
||||||
isr_flag[CDR_INT_RX1END] = 0;
|
|
||||||
//break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user