This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF-IEEE-802.15.4-radio-driver SDK for Thread and Zigbee

Dear all,

I would like to implement the IEEE 802.15.4 stack, using the driver inside the SDK for Thread and Zigbee. Unfortunately there aren't any examples ad so everything is way more difficult. I would like to ask you some things about implementation details:

1) If I decide to use the SWI approach, what entity will catch my events? I mean, if I want to receive a message, in which way I will catch the message?(I know that there is must be somewhere a call to nrf_802154_received, but it is automatically done by the drivers o I have to call it somewhere?). Do I have to add somewhere a handler of events (as for example ble_evt_handler in BLE example)?

2) What are the real differences about SWI and direct approach?

3) Is there somewhere an useful example?

Thanks to everyone,

Elia

Parents
  • Hi,

    1. SWI stands for Software Interrupts, and will trigger an interrupt handler in the application if enabled. The interrupt handler can process the events, or call additional handlers/schedulers.
    2. SWI it typically used in operations with a Softdevice (BLE stack). The softdevice is an external application, provided as a precompiled hex-file. Communication with the softdevice happens through Supervisor calls and SWI. The softdevice cannot trigger handlers inside the application/radio driver, but it can trigger an interrupt in the application through SWI. If you are not using a softdevice, the radio driver, which is compiled along with the application, can call handlers directly in the application without the need to go through SWI. See the radio driver documentation for which files to include for the various radio arbiters.
    3. I did create some example projects for an older version of the driver, but they do not provide support for the softdevice arbiter. Should be simple to update to the latest version, but I have not tested this.

    Best regards,
    Jørgen

Reply
  • Hi,

    1. SWI stands for Software Interrupts, and will trigger an interrupt handler in the application if enabled. The interrupt handler can process the events, or call additional handlers/schedulers.
    2. SWI it typically used in operations with a Softdevice (BLE stack). The softdevice is an external application, provided as a precompiled hex-file. Communication with the softdevice happens through Supervisor calls and SWI. The softdevice cannot trigger handlers inside the application/radio driver, but it can trigger an interrupt in the application through SWI. If you are not using a softdevice, the radio driver, which is compiled along with the application, can call handlers directly in the application without the need to go through SWI. See the radio driver documentation for which files to include for the various radio arbiters.
    3. I did create some example projects for an older version of the driver, but they do not provide support for the softdevice arbiter. Should be simple to update to the latest version, but I have not tested this.

    Best regards,
    Jørgen

Children
Related