增加代码,调试延迟释放;对比波形,延迟释放功能正确
This commit is contained in:
@@ -77,7 +77,7 @@ uint32_t HLM_poll(uint32_t mode)
|
||||
{
|
||||
if (mode == WORKMODE_MASTER)
|
||||
{
|
||||
uint32_t tx_pkt_len = 128;
|
||||
uint32_t tx_pkt_len = 256;
|
||||
uint32_t rx_pkt_len = 0;
|
||||
uint32_t rx_start = 0;
|
||||
uint32_t status;
|
||||
@@ -94,7 +94,7 @@ uint32_t HLM_poll(uint32_t mode)
|
||||
|
||||
//开始发送工作
|
||||
*tx0_txLen = tx_pkt_len + 4;
|
||||
*tx0_txFifo = (tx_pkt_len << 20) | (0 << 16) | 0;
|
||||
*tx0_txFifo = (tx_pkt_len << 20) | 0;
|
||||
|
||||
uint32_t tx_index = 0;
|
||||
uint32_t rx_index = 0;
|
||||
@@ -120,6 +120,14 @@ uint32_t HLM_poll(uint32_t mode)
|
||||
tx_index++;
|
||||
}
|
||||
|
||||
status = *HLM_status;
|
||||
|
||||
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))
|
||||
{
|
||||
rx_data_ptr[rx_index] = *rx1_rxFifo;
|
||||
@@ -130,6 +138,8 @@ uint32_t HLM_poll(uint32_t mode)
|
||||
if (rx_pkt_len <= (rx_index * 4))
|
||||
{
|
||||
rx_start = 0;
|
||||
rx_index = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,15 +149,6 @@ uint32_t HLM_poll(uint32_t mode)
|
||||
rx_start = 1;
|
||||
rx_index = 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (isr_flag[CDR_INT_RX1_FIFO_ENQ])
|
||||
{
|
||||
isr_flag[CDR_INT_RX1_FIFO_ENQ] = 0;
|
||||
MST_RX_BUF[rx_index] = *rx1_rxFifo;
|
||||
rx_index++;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else if (mode == WORKMODE_SLAVE)
|
||||
@@ -158,6 +159,12 @@ uint32_t HLM_poll(uint32_t mode)
|
||||
uint32_t rx_start = 0;
|
||||
uint32_t status;
|
||||
|
||||
*rx0_rxTxPair = 1;
|
||||
*rx0_rxTimerAim = 0; //240;
|
||||
*rx1_rxTxPair = 0;
|
||||
*rx1_rxTimerAim = 0;
|
||||
*plic_enable_0_31 = 0;
|
||||
|
||||
|
||||
while (1)
|
||||
{
|
||||
@@ -180,13 +187,20 @@ uint32_t HLM_poll(uint32_t mode)
|
||||
rx_start = 0;
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if (status & HLM_RX0_VALID)
|
||||
rx_start = 1;
|
||||
}
|
||||
#if 0
|
||||
//rx0 下行
|
||||
if (isr_flag[CDR_INT_RX0START])
|
||||
{
|
||||
isr_flag[CDR_INT_RX0START] = 0;
|
||||
rx_start = 1;
|
||||
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -140,7 +140,7 @@ int main(int argc, char **argv, char **env) {
|
||||
#endif
|
||||
|
||||
if ( flag_limitEnable ) {
|
||||
if ( main_cycle > 30000 ){
|
||||
if ( main_cycle > 45000 ){
|
||||
std::cout << "Timeout!!!!!" << std::endl;
|
||||
sim_exit();
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user