<?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>Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/5727/softdevice-s310-and-interrupt</link><description>Hi support team, 
 I would like to know if the following behavior is a normal behavior:
My config: NRF51422 AAE0 + S310 V2.0 
 When I enable some inetrrupt like UART for example, soon I enable the softdevice by calling sd_softdevice_enable() function</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 04 Jan 2016 23:11:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/5727/softdevice-s310-and-interrupt" /><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20031?ContentTypeID=1</link><pubDate>Mon, 04 Jan 2016 23:11:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:abbd6d17-febf-47ad-a7fd-62c085c33ff7</guid><dc:creator>bubune</dc:creator><description>&lt;p&gt;Hi I&amp;#39;ve found the problem. The issue happen on the chibios rtos port that I&amp;#39;m working on. Briefly, the problem comes from the task switch context. Chibios is configured to use the PendSV interrupt.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;During the switch context, in the normal port, PendSV bit is set and then interrupt are enable. PendSV Interrupt occurs immedialtly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;With softdevice, interrupt are never disable. Instead, a specific functions are called (sd_nvic_critical_region_exit/enter, with counter to avoid reentrance).
soon PendSV bit is set, interrupt occur, and then never sd_nvic_critical_region_exit is called. that&amp;#39; why some interrupts are disable&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20030?ContentTypeID=1</link><pubDate>Thu, 02 Jul 2015 12:01:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8b72e5fc-3f3f-4188-99d1-b6c88ffc1f1a</guid><dc:creator>bubune</dc:creator><description>&lt;p&gt;Any  news?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20029?ContentTypeID=1</link><pubDate>Wed, 17 Jun 2015 21:57:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:befa6028-db63-40ed-826c-5d8df4351fdd</guid><dc:creator>bubune</dc:creator><description>&lt;p&gt;HI Stephan, I&amp;#39;m nearly sure that I&amp;#39;m doing things correctly. I&amp;#39;ve sent to Vidar my code in may (he was interrested to see the port) but I&amp;#39;ve no news from him. Have you got a chance to look at the code and let me know what&amp;#39;s wrong?&lt;/p&gt;
&lt;p&gt;Regrads,
Bruno&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20028?ContentTypeID=1</link><pubDate>Wed, 29 Apr 2015 12:31:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:59964ed9-bd40-4a46-bad4-ae5144a231d0</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Make sure you use sd_* calls when you set the interrupt priorities with the softdevice enabled, like done in e.g. &lt;a href="https://github.com/NordicSemiconductor/nrf51-ADC-examples/blob/master/adc-example-with-softdevice/main.c"&gt;this example&lt;/a&gt; where the ADC interrupt priority is set in line 825.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20027?ContentTypeID=1</link><pubDate>Thu, 23 Apr 2015 22:22:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b7c59a0-3b80-4f97-8b82-6c24cdaf5e09</guid><dc:creator>bubune</dc:creator><description>&lt;p&gt;Hi Stefan, I&amp;#39;ve tested with S310 v1.0,  S210 v4.0.1 and S210 v3.0.0 and still the same behavior. I&amp;#39;m sure my inetrrupt priory are all set to &amp;#39;3&amp;#39;. Any idea&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20026?ContentTypeID=1</link><pubDate>Fri, 27 Feb 2015 13:14:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:352053a6-4eca-4280-ab15-8dbd31c2ba0f</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;ok, I see. For changes between nRF51422 v2 and nRF51422 v3, look at the &lt;a href="https://www.nordicsemi.com/eng/nordic/Products/nRF51422/PCN-093/38895"&gt;PCN-093 document&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20025?ContentTypeID=1</link><pubDate>Fri, 27 Feb 2015 10:30:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e383e845-8f30-4152-a2a8-254500b177ff</guid><dc:creator>bubune</dc:creator><description>&lt;p&gt;Hi Stefan,&lt;/p&gt;
&lt;p&gt;Thanks for your answer. I don&amp;#39;t use  a specific SDK. I&amp;#39;ve ported a RTOS named Chibios on the NRF51422 with GCC. It&amp;#39;s not enought stable yet with softdevice enabled, but I&amp;#39;m working on it.
With some work around, I&amp;#39;able to  enable S310 v2.0 and get HRM data sent it to the UART.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m going to try  S310 v1.0, see it makes difference. Is there any more difference between NRF51422v2 and v3. I believed it was just RAM size?&lt;/p&gt;
&lt;p&gt;Bruno&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20024?ContentTypeID=1</link><pubDate>Thu, 26 Feb 2015 14:21:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:63b7992b-ff54-48d7-bb6f-290ea36e7211</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;What SDK are you using?  See the &lt;a href="https://www.nordicsemi.com/eng/nordic/Products/nRF51422/ATTN-51/41920"&gt;nRF51 compatibility matrix&lt;/a&gt; for SDK&amp;#39;s compatible with S310 v2.0.&lt;/p&gt;
&lt;p&gt;According to the nRF51 compatibility matrix, S310 v2.0 has not been tested with second revision nRF51 hardware that you have, i.e. nRF51422 QFAAE0, so I would recommend for you to purchase a third revision chip. The nRF51 DK has a third revision nRF51422 chip which is directly compatible with S310 v2.0 and and compatible SDK&amp;#39;s v7.x.&lt;/p&gt;
&lt;p&gt;The examples in SDK 7.1.0/7.2.0, which are compatible with S310 v2.0, are directly compatible with QFAC 32kB RAM chip. If you have 16kB RAM, like the QFAA chip, then you will have to modify the RAM settings in Keil -&amp;gt; Options for Target -&amp;gt; Target tab to match the 16kB RAM.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Softdevice S310 and interrupt</title><link>https://devzone.nordicsemi.com/thread/20023?ContentTypeID=1</link><pubDate>Wed, 25 Feb 2015 09:26:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bab6e2ea-9cab-482d-a6ec-ce26e4ca3499</guid><dc:creator>bubune</dc:creator><description>&lt;p&gt;So, I&amp;#39;ve continued to investigate and I found something very strange. If I try to enable for exeample UART Interrupt by using CMSIS function after to eanbled the softdevice, interrupt is working well. But it&amp;#39;s not the recommanded way. We have to use the SD_nvic functions. So I&amp;#39;ve replaced the CMSIS functions by the sd_nvic function and the interrupt are not set (uart IT is never reached and the corresponding bit in the the Interrupt Enable control register @0xE000E100 is not set).&lt;/p&gt;
&lt;p&gt;Of course, I&amp;#39;ve always checked the result the sd_ functions and they all return &amp;quot;NRF_SUCCESS (0)&amp;quot;&lt;/p&gt;
&lt;p&gt;Any idea?&lt;/p&gt;
&lt;p&gt;Regards,
Bruno&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>