You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 5
Next »
Handling a Wireless Device ISR
NetDev_ISR_Handler()
is the device interrupt handler. In general, the device interrupt handler must perform the following functions:
1 Determine which type of interrupt event occurred by switching on the ISR type argument. The ISR handler should not access the SPI bus for reading an interrupt status register.
2 If a receive event has occurred, the driver must post the interface number to the µC/TCP-IP Receive task by calling NetOS_IF_RxTaskSignal()
for each new frame received (management or packet).
3 If a transmit complete event has occurred and it is specified in the ISR type argument, the driver must perform the following items for each transmitted packet.
a Post the address of the data area that has completed transmission to the transmit buffer de-allocation task by calling NetOS_IF_TxDeallocTaskPost()
with the pointer to the data area that has completed transmission.
b Call NetOS_Dev_TxRdySignal()
with the interface number that has just completed transmission.
4 Interrupt flags on the wireless device should not be cleared. CPU’s integrated interrupt controllers should be cleared from within the network device’s BSP-level ISR after NetDev_WiFi_ISR_Handler()
returns.
Additionally, it is highly recommended that device driver ISR handlers be kept as short as possible to reduce the amount of interrupt latency in the system.