diff options
| author | Alex <[email protected]> | 2015-05-13 08:50:14 +0800 |
|---|---|---|
| committer | Alex <[email protected]> | 2015-05-13 08:50:14 +0800 |
| commit | b25e602afb4cb01974e19edd95ab701c55b3ca53 (patch) | |
| tree | ef17dd58bcafc3bcbc0bdfe4661d1f999d3a4958 /bsp/CME_M7/drivers | |
| parent | a58078d18aa12446464e7b832bcc4c5d9e5cd34f (diff) | |
fix a eth driver bug to avoid crush
fix a eth driver bug to avoid crush
Diffstat (limited to 'bsp/CME_M7/drivers')
| -rw-r--r-- | bsp/CME_M7/drivers/emac.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/bsp/CME_M7/drivers/emac.c b/bsp/CME_M7/drivers/emac.c index 3de53142b9..a8837d44ce 100644 --- a/bsp/CME_M7/drivers/emac.c +++ b/bsp/CME_M7/drivers/emac.c @@ -205,14 +205,14 @@ static rt_err_t rt_cme_eth_init(rt_device_t dev) RxDescChainInit(); TxDescChainInit(); - ETH_EnableInt(ETH_INT_BUS_FATAL_ERROR, TRUE); + ETH_ITConfig(ETH_INT_BUS_FATAL_ERROR, TRUE); - ETH_EnableInt(ETH_INT_RX_COMPLETE_FRAME, TRUE); - ETH_EnableInt(ETH_INT_RX_BUF_UNAVAI, TRUE); - ETH_EnableInt(ETH_INT_RX_STOP, TRUE); + ETH_ITConfig(ETH_INT_RX_COMPLETE_FRAME, TRUE); + ETH_ITConfig(ETH_INT_RX_BUF_UNAVAI, TRUE); + ETH_ITConfig(ETH_INT_RX_STOP, TRUE); ETH_StartRx(); - ETH_EnableInt(ETH_INT_TX_COMPLETE_FRAME, TRUE); + ETH_ITConfig(ETH_INT_TX_COMPLETE_FRAME, TRUE); ETH_StartTx(); return RT_EOK; @@ -318,8 +318,8 @@ struct pbuf *rt_cme_eth_rx(rt_device_t dev) desc = ETH_AcquireFreeRxDesc(); if(desc == RT_NULL) { - ETH_EnableInt(ETH_INT_RX_COMPLETE_FRAME, TRUE); - ETH_EnableInt(ETH_INT_RX_BUF_UNAVAI, TRUE); + ETH_ITConfig(ETH_INT_RX_COMPLETE_FRAME, TRUE); + ETH_ITConfig(ETH_INT_RX_BUF_UNAVAI, TRUE); ETH_ResumeRx(); goto _exit; } @@ -414,28 +414,28 @@ void ETH_IRQHandler(void) /* enter interrupt */ rt_interrupt_enter(); - if (ETH_GetIntStatus(ETH_INT_TX_COMPLETE_FRAME)) + if (ETH_GetITStatus(ETH_INT_TX_COMPLETE_FRAME)) { rt_sem_release(&cme_eth_device.tx_buf_free); - ETH_ClearInt(ETH_INT_TX_COMPLETE_FRAME); + ETH_ClearITPendingBit(ETH_INT_TX_COMPLETE_FRAME); } - if (ETH_GetIntStatus(ETH_INT_RX_STOP)) + if (ETH_GetITStatus(ETH_INT_RX_STOP)) { CME_ETH_PRINTF("ETH_INT_RX_STOP\n"); - ETH_ClearInt(ETH_INT_RX_STOP); + ETH_ClearITPendingBit(ETH_INT_RX_STOP); } - if ((ETH_GetIntStatus(ETH_INT_RX_BUF_UNAVAI)) || - (ETH_GetIntStatus(ETH_INT_RX_COMPLETE_FRAME))) + if ((ETH_GetITStatus(ETH_INT_RX_BUF_UNAVAI)) || + (ETH_GetITStatus(ETH_INT_RX_COMPLETE_FRAME))) { /* a frame has been received */ eth_device_ready(&(cme_eth_device.parent)); - ETH_EnableInt(ETH_INT_RX_COMPLETE_FRAME, FALSE); - ETH_EnableInt(ETH_INT_RX_BUF_UNAVAI, FALSE); - ETH_ClearInt(ETH_INT_RX_BUF_UNAVAI); - ETH_ClearInt(ETH_INT_RX_COMPLETE_FRAME); + ETH_ITConfig(ETH_INT_RX_COMPLETE_FRAME, FALSE); + ETH_ITConfig(ETH_INT_RX_BUF_UNAVAI, FALSE); + ETH_ClearITPendingBit(ETH_INT_RX_BUF_UNAVAI); + ETH_ClearITPendingBit(ETH_INT_RX_COMPLETE_FRAME); } /* leave interrupt */ |
