Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 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.

     
    • No labels