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