<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>How can I do software interrupt in nRF Connect SDK v2.9.0</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/118740/how-can-i-do-software-interrupt-in-nrf-connect-sdk-v2-9-0</link><description>Hello, I am using nRF Connect SDK version 2.9.0, and I want to know how to perform the software interrupt. 
 Where can I find the driver of the software interrupt to know its APIs and use them?</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 11 Feb 2025 20:49:29 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/118740/how-can-i-do-software-interrupt-in-nrf-connect-sdk-v2-9-0" /><item><title>RE: How can I do software interrupt in nRF Connect SDK v2.9.0</title><link>https://devzone.nordicsemi.com/thread/522524?ContentTypeID=1</link><pubDate>Tue, 11 Feb 2025 20:49:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:66cbc434-e2ac-49b6-b79c-5f9c76b37d0b</guid><dc:creator>Jakob Ruhe</dc:creator><description>&lt;p&gt;Perhaps you can use a&amp;nbsp;&lt;a href="https://docs.zephyrproject.org/latest/kernel/services/timing/timers.html"&gt;Zephyr timer&lt;/a&gt;&amp;nbsp;instead?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I do software interrupt in nRF Connect SDK v2.9.0</title><link>https://devzone.nordicsemi.com/thread/522486?ContentTypeID=1</link><pubDate>Tue, 11 Feb 2025 15:02:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1839c449-c3cf-4fd6-8469-3d4e50f869a1</guid><dc:creator>Nedaa_H_Ahmed</dc:creator><description>&lt;p&gt;It is triggered by a timer&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I do software interrupt in nRF Connect SDK v2.9.0</title><link>https://devzone.nordicsemi.com/thread/522461?ContentTypeID=1</link><pubDate>Tue, 11 Feb 2025 14:13:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0fd1196c-aa6e-4a76-92bf-bb097ad07e63</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Zephyr (used in NCS) has it&amp;#39;s own priorities.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;E.g. if you are running a thread, you can set the &lt;a href="https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/kernel/services/threads/index.html#thread_priorities"&gt;thread priority&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But you didn&amp;#39;t answer the question. What do you use to trigger the interrupt? Is it a button press? A Timer?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I do software interrupt in nRF Connect SDK v2.9.0</title><link>https://devzone.nordicsemi.com/thread/522181?ContentTypeID=1</link><pubDate>Mon, 10 Feb 2025 12:26:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c639b62e-9378-43de-b389-52ec7d7fede8</guid><dc:creator>Nedaa_H_Ahmed</dc:creator><description>&lt;p&gt;I&amp;nbsp;had my own driver of software interrupt when I was working on SDK16. Now, I am trying to migrate from SDK16 to nRF Connect SDK v2.9.0. I need to know if there are new APIs that I should use from the nRF Connect SDK to complete this migration&lt;br /&gt;Also&lt;span&gt;, I found these application priorities&amp;nbsp;in SDK 16, and I was using APP_IRQ_PRIORITY_HIGH&amp;nbsp;to set the priority of software interrupt as HIGH, but, I couldn`t find the application priorities like this in the nRF Connect SDK v2.9.0&lt;/span&gt;&lt;br /&gt;&lt;span&gt;//lint -save -e113 -e452&lt;/span&gt;&lt;br /&gt;&lt;span&gt;/**@brief The interrupt priorities available to the application while the SoftDevice is active. */&lt;/span&gt;&lt;br /&gt;&lt;span&gt;typedef enum&lt;/span&gt;&lt;br /&gt;&lt;span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#ifndef SOFTDEVICE_PRESENT&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_HIGHEST = _PRIO_SD_HIGH,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#else&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_HIGHEST = _PRIO_APP_HIGH,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_HIGH = _PRIO_APP_HIGH,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#ifndef SOFTDEVICE_PRESENT&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_MID = _PRIO_SD_LOW,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#else&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_MID = _PRIO_APP_MID,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_LOW_MID = _PRIO_APP_LOW_MID,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_LOW = _PRIO_APP_LOW,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_LOWEST = _PRIO_APP_LOWEST,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;APP_IRQ_PRIORITY_THREAD = _PRIO_THREAD /**&amp;lt; &amp;quot;Interrupt level&amp;quot; when running in Thread Mode. */&lt;/span&gt;&lt;br /&gt;&lt;span&gt;} app_irq_priority_t;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I do software interrupt in nRF Connect SDK v2.9.0</title><link>https://devzone.nordicsemi.com/thread/522147?ContentTypeID=1</link><pubDate>Mon, 10 Feb 2025 09:21:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7fdfd76e-3b8a-4df8-8e76-9fda604fc422</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Can you be a bit more specific on what you want to do?&lt;/p&gt;
&lt;p&gt;I assume you want to run a piece of software after some event. What do you want to trigger this event? A button press? A timer? An event on one of the HW peripherals (UART, SPI, I2C, ...)?&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I do software interrupt in nRF Connect SDK v2.9.0</title><link>https://devzone.nordicsemi.com/thread/522109?ContentTypeID=1</link><pubDate>Sun, 09 Feb 2025 16:55:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1d5d1466-20f6-4c01-8932-b95e20267a94</guid><dc:creator>Nedaa_H_Ahmed</dc:creator><description>&lt;p&gt;I was using SDK16, and now I am trying to migrate from SDK16 to nRF Connect SDK v2.9.0.&amp;nbsp;&lt;br /&gt;I saw that nRF Connect SDK depends on Zephyr.&amp;nbsp;&lt;br /&gt;Now, to do the migration, I used Zephyr/irq.h to implement the software interrupt. But I am not sure if this is the best way or if there is another better way. Also, I found these application priorities&amp;nbsp;in the SDK 16&lt;br /&gt;//lint -save -e113 -e452&lt;br /&gt;/**@brief The interrupt priorities available to the application while the SoftDevice is active. */&lt;br /&gt;typedef enum&lt;br /&gt;{&lt;br /&gt;#ifndef SOFTDEVICE_PRESENT&lt;br /&gt; APP_IRQ_PRIORITY_HIGHEST = _PRIO_SD_HIGH,&lt;br /&gt;#else&lt;br /&gt; APP_IRQ_PRIORITY_HIGHEST = _PRIO_APP_HIGH,&lt;br /&gt;#endif&lt;br /&gt; APP_IRQ_PRIORITY_HIGH = _PRIO_APP_HIGH,&lt;br /&gt;#ifndef SOFTDEVICE_PRESENT&lt;br /&gt; APP_IRQ_PRIORITY_MID = _PRIO_SD_LOW,&lt;br /&gt;#else&lt;br /&gt; APP_IRQ_PRIORITY_MID = _PRIO_APP_MID,&lt;br /&gt;#endif&lt;br /&gt; APP_IRQ_PRIORITY_LOW_MID = _PRIO_APP_LOW_MID,&lt;br /&gt; APP_IRQ_PRIORITY_LOW = _PRIO_APP_LOW,&lt;br /&gt; APP_IRQ_PRIORITY_LOWEST = _PRIO_APP_LOWEST,&lt;br /&gt; APP_IRQ_PRIORITY_THREAD = _PRIO_THREAD /**&amp;lt; &amp;quot;Interrupt level&amp;quot; when running in Thread Mode. */&lt;br /&gt;} app_irq_priority_t;&lt;br /&gt;&lt;br /&gt;But, I couldn`t find the application priorities like this in the nRF Connect SDK v2.9.0&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How can I do software interrupt in nRF Connect SDK v2.9.0</title><link>https://devzone.nordicsemi.com/thread/522105?ContentTypeID=1</link><pubDate>Sun, 09 Feb 2025 15:43:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:64962991-2a0d-49bf-9eee-2ba5b0a3af3b</guid><dc:creator>Jakob Ruhe</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The documentation for interrupts can be found here: &lt;a href="https://docs.zephyrproject.org/latest/kernel/services/interrupts.html"&gt;docs.zephyrproject.org/latest/kernel/services/interrupts.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is an example of a how interrupts can be used by a driver (the nRF5x UART driver in this case): &lt;a href="https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/serial/uart_nrfx_uart.c"&gt;github.com/zephyrproject-rtos/zephyr/blob/main/drivers/serial/uart_nrfx_uart.c&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are many drivers written already so you might not need to access the IRQ API directly. But I have no clue about what problem you are solving so it is hard to tell. I hope the supplied links helps you to move forward!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>