Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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µ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 CPU’s integrated interrupt controllers should be cleared from within the network device’s 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.