<?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>Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/40785/porting-sdk14-project-to-sdk15-2---irq-handlers-and-other-issues</link><description>I&amp;#39;m in the process of trying to port my SDK 14 project to SDK 15.2. I&amp;#39;ve made a pretty good amount of progress, but I have two issues that I can&amp;#39;t seem to figure out. 
 The first is somewhat minor but very annoying. For some reason since I replaced the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 19 Feb 2019 14:09:01 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/40785/porting-sdk14-project-to-sdk15-2---irq-handlers-and-other-issues" /><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171916?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 14:09:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:84cebcde-54cf-4ec0-8e0e-963af81c7dbc</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;I only present you options. &amp;nbsp;How you you want to solve the issue is up to you. &amp;nbsp;Of course you can base on that and write your own nrfx version. &amp;nbsp;When there is will, there is a mean.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171914?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 14:06:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7eac56c4-bc27-403c-9c6f-f78462005ce5</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;Then you are out of luck. SPI3 is DMA only.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171905?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 13:34:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5121d621-0a2e-4158-b7b7-60e943058927</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello &lt;a href="https://devzone.nordicsemi.com/members/gauthamranganathan"&gt;gauthamranganathan&lt;/a&gt;,&lt;/p&gt;
&lt;p&gt;This is not really related to porting from SDK14 to SDK15. Please create a new ticket.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171839?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 09:39:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:40b5354a-eaec-46ee-989f-49a75bbdce78</guid><dc:creator>gauthamranganathan</dc:creator><description>&lt;p&gt;thank you for your reply Edvin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I understand that SPI 3 is only master. I am okay with that. But i don&amp;#39;t see an instance for SPI 3 (as seen in screenshot above).&lt;/p&gt;
&lt;p&gt;I do not want to use spim as that would enable DMA controller. This will increase my current consumption.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171807?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 07:56:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:164e5e8d-d9a8-4bda-84c9-c60b24cc9aff</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;From e.g. the SPI section in the nRF52840 there is a section regarding &lt;a href="https://www.nordicsemi.com/DocLib/Content/Product_Spec/nRF52840/latest/spi?716#concept_hj5_444_sr"&gt;Shared Resources&lt;/a&gt;. In this section there is a link to &lt;a href="https://www.nordicsemi.com/DocLib/Content/Product_Spec/nRF52840/latest/memory#topic"&gt;Instantation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So basically, in the last link, you can&amp;#39;t have two peripherals sharing the same ID from the table active at once.&lt;/p&gt;
&lt;p&gt;If you need 2xSPI and 2xTWI, then you can use e.g:&lt;/p&gt;
&lt;p&gt;TWI0, TWI1, SPI2, SPI3. Note that SPI3 is only master, not SPI slave.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Are you aware of that you can have several devices connected to one SPI bus and several devices connected to one TWI bus? That is the nature of these protocols. With the TWI you only need to connect all devices with the two wires, while on SPI you would need a chip select (CS) line for each slave, and then they share the other lines (MOSI, MISO, CLK).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171786?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 05:11:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8e7fd1f5-4bb2-4d20-8a05-6b5264b8a7b4</guid><dc:creator>gauthamranganathan</dc:creator><description>&lt;p&gt;Thank you for your reply nguyen hoan hoang. Our project is more than half way through now and we have been using nordic drivers. I would like to implement two instances of TWI and two instances of SPI.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171784?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 05:05:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2705965c-f8ef-4d88-8d5c-9a3972881d17</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;Don&amp;#39;t know about the Nordic driver implementation. &amp;nbsp;But data sheet said it and this driver has support for it. &amp;nbsp;&lt;a href="https://github.com/I-SYST/EHAL/blob/master/ARM/Nordic/src/spi_nrf5x.cpp"&gt;https://github.com/I-SYST/EHAL/blob/master/ARM/Nordic/src/spi_nrf5x.cpp&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171783?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 05:00:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:62c0c184-8b49-4f08-a5a1-d12cea0086be</guid><dc:creator>gauthamranganathan</dc:creator><description>&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1550552417288v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;I can&amp;#39;t seem to find SPI 3&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171782?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 04:54:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f5876eae-f1c7-4081-af1e-02e12e489ff7</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;The 840 has 4 spi so you can have 2 twi &amp;amp; 2 spi at the same time. &amp;nbsp;SPI0 &amp;amp; 1 are shared with TWI0 &amp;amp; 2. &amp;nbsp;SPI2 &amp;amp; 3 are independent. &amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171780?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 04:44:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2973af84-8a59-4cb3-9e0a-88d011797110</guid><dc:creator>gauthamranganathan</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/edvin-holmseth"&gt;Edvin&lt;/a&gt; I also have one additional query. If it is in fact not possible to have 2 TWI and 2 SPI instances running simultaneously, I expect the system to give me a fault at run-time when I initialise all the ports. I do not expect a build break. Is it possible to get a build through? as I will ensure that I de-initialze the SPI and TWI instances so as to ensure that only 1 SPI ever runs simultaneously with 2 TWI instances.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171779?ContentTypeID=1</link><pubDate>Tue, 19 Feb 2019 04:36:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ec597e90-cd42-4696-ac2c-e00dbfdbf846</guid><dc:creator>gauthamranganathan</dc:creator><description>&lt;p&gt;Thank you for your reply Edvin.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So you are telling me that it&amp;#39;s impossible to have two instances of SPI and 2 instances of TWI running simultaneoulsy on nrf52840?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171732?ContentTypeID=1</link><pubDate>Mon, 18 Feb 2019 19:39:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7728e960-1ad5-4cd9-83ee-5f518232c1e6</guid><dc:creator>Nguyen Hoan Hoang</dc:creator><description>&lt;p&gt;For the uint32_t in Eclipse, I found something on StackOverflow that might help&amp;nbsp;&lt;a href="https://stackoverflow.com/questions/11666094/eclipse-does-not-recognize-types-from-stdint-h-for-arm-windows-gcc-toolchain"&gt;https://stackoverflow.com/questions/11666094/eclipse-does-not-recognize-types-from-stdint-h-for-arm-windows-gcc-toolchain&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171610?ContentTypeID=1</link><pubDate>Mon, 18 Feb 2019 11:52:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ca251d7-48dc-4564-972f-e28aca74219e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;SPI (SPIM and SPIS) and TWI (TWIS and TWIM) all share the same IRQ Handler. This means that if you use TWI0, you can&amp;#39;t use SPI0. If you use TWI1, you can&amp;#39;t use SPI1, and vice versa.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So if you need two TWIs and one SPI, you can use TWI0, TWI1 and SPI&lt;strong&gt;2&lt;/strong&gt;, not SPI&lt;strong&gt;1&lt;/strong&gt;, because TWI1 is already using the SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler, so SPI1 can&amp;#39;t use this.&lt;/p&gt;
&lt;p&gt;&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: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/171579?ContentTypeID=1</link><pubDate>Mon, 18 Feb 2019 10:05:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7a53441-f59e-47c5-8116-d07956b8c0ba</guid><dc:creator>gauthamranganathan</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/edvin-holmseth"&gt;Edvin&lt;/a&gt;Hello Edvin, I am facing the same issue right now. I am trying to using TWI0 TWI1 and SPI 1. I have the following linker error. (SDK 15.2)&lt;/p&gt;
&lt;p&gt;.\_build\nrf52840_xxaa.axf: Error: L6200E: Symbol SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler multiply defined (by nrfx_spi.o and nrfx_twi.o).&lt;/p&gt;
&lt;p&gt;Can you please tell me how I can fix it? I don&amp;#39;t mind using any other SPI instance if necessary.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/160902?ContentTypeID=1</link><pubDate>Mon, 10 Dec 2018 09:29:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:82f5082b-7349-43bf-bf98-697fde58e80d</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;TWI0 and SPIM1 is a valid combination, as you say. If you can send a project that I can compile, e.g. using segger embedded studio, or any of the other IDEs used in the SDK(or armgcc), I&amp;#39;d be happy to take a look.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/160802?ContentTypeID=1</link><pubDate>Fri, 07 Dec 2018 19:22:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ee86a840-a553-4750-9dcd-89465e972130</guid><dc:creator>Sydney</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I understand that the examples ultimately use the nrfx drivers, but my issue when trying to reproduce the IRQ handler issue with one of the examples is that none of the examples use the nrfx drivers _directly_. Like you said, the examples all use the nrf_drv -&amp;gt; nrfx legacy translation layer, which reconfigures a lot of the #defines and makes it hard to do an apples-to-apples comparison with my app because my app was ported to use the nrfx drivers directly. I spent a bit of time trying to port an example to use the nrfx drivers directly without the legacy layer, but I ran into some issues.&lt;/p&gt;
&lt;p&gt;Ultimately my expectation is that if one of the TWI or SPI SDK 15.2 examples was ported to use nrfx directly and modified to enable both TWI0 and SPIM1, you would run into the same IRQ handler compilation error I&amp;#39;m seeing. It seems like a bug in the SDK because TWI0 and SPIM1 is supposed to be a valid combination. If it is an SDK bug, I&amp;#39;m okay patching&amp;nbsp;it myself, but I need to make sure I actually understand the problem before I can have confidence that my fix is sufficient.&lt;/p&gt;
&lt;p&gt;Regarding the TWI clear bus function, I did notice that it&amp;#39;s still in the legacy translation layer, but I&amp;#39;m curious why it was removed from the actual nrfx driver. Doesn&amp;#39;t Nordic recommend using the nrfx drivers directly in new applications instead of using the legacy layer? Does Nordic expect that new applications that use the nrfx TWI driver directly won&amp;#39;t/shouldn&amp;#39;t need the clear bus function?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/160718?ContentTypeID=1</link><pubDate>Fri, 07 Dec 2018 11:56:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:56ce53cf-53a4-483d-9c56-11db943f628e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;All of the examples from SDK15.2.0 uses the nrfx drivers. They use the old names, but if you follow the definitions for these, you will find that they are redefined to the nrfx_ drivers. It is convenient if you try to port your applications, but it can be a bit confusing with the defines in sdk_config.h. If you look at the file apply_old_config.h you will see what that is happening when both the old legacy defines are defined, and the new nrfx defines are defined. Maybe this file is causing some issues with your project.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regarding the clear_bus function, it is present, but not in the nrfx part. It is found on line 173 in nrf_drv_twi.c, and is used in e.g. the twi_master_using_nrf_twi_mngr example in SDK15.2.0.&lt;/p&gt;
&lt;p&gt;so depending on nrf_drv_twi_init(..., p_config, ...) is called with p_config-&amp;gt;clear_bus_init = 0 or 1, it will clear the bus before calling nrfx_twi(m)_init().&lt;/p&gt;
&lt;p&gt;&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: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/160502?ContentTypeID=1</link><pubDate>Thu, 06 Dec 2018 06:20:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0749db8a-b33b-40d0-9f0a-4f2e4fe0fcfd</guid><dc:creator>Sydney</dc:creator><description>&lt;p&gt;I ran into another issue/question regarding porting my TWI&amp;nbsp; usage from SDK 14 to SDK 15.2, but I&amp;#39;m not sure if it belongs here or in a new ticket. I noticed when porting my application from the nrf_drv_x driver interface to the new nrfx_x interface, nrfx_twi_config_t no longer has the clear_bus_init option that nrf_drv_twi_config_t had. If I include the legacy layer and continue to use nrf_drv_twi, the legacy nrf_drv_twi.c layer has a local twi_clear_bus() function that implements the bus clear option. But if I use nrfx_twi directly, I don&amp;#39;t appear to have access to the bus clearing function.&lt;/p&gt;
&lt;p&gt;Am I correct in my understanding that the new nrfx_twi driver doesn&amp;#39;t have the bus clearing function? What was the thinking behind removing it? My SDK 14 application always had that option enabled, so I&amp;#39;m a bit worried that I may be exposing myself to stuck bus issues with SDK 15.2.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/160500?ContentTypeID=1</link><pubDate>Thu, 06 Dec 2018 06:09:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab44a2af-b9c1-4b12-9a32-0d6b66dc8f5e</guid><dc:creator>Sydney</dc:creator><description>&lt;p&gt;But I _haven&amp;#39;t_ enabled two of SPIx0/TWIx0 or SPIx1/TWIx1. I&amp;#39;ve enabled TWI0 and SPIM1 (and SPIM2, but that doesn&amp;#39;t seem to be related). TWI0 and SPIM1 do not share resources, so there shouldn&amp;#39;t be any conflicts. I had no issues with this exact same configuration in SDK14. It really seems like I&amp;#39;m either still missing something or there&amp;#39;s some sort of issue with SDK 15.2. I can&amp;#39;t imagine that it should be expected that I would get basic compilation issues when trying to use TWI0 and SPIM1 at the same time, so I still feel like I&amp;#39;m missing something, which makes me feel uneasy putting this code into production without actually understanding the issue.&lt;/p&gt;
&lt;p&gt;I spent some time tonight trying to reproduce the issue with one of the examples. I hoped to find either a TWI or SPIM example and edit it so that both TWI0 and SPIM1 are enabled to see if the issue would occur. But&amp;nbsp;surprisingly&amp;nbsp;none of the examples use the new nrfx_x drivers directly. They all seem to use the legacy nrf_drv_x interface.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/160173?ContentTypeID=1</link><pubDate>Tue, 04 Dec 2018 10:41:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b5522cb0-62ee-4271-b875-fabf2b711cd5</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;You are correct. It could have been like your second snippet. The thing is that even though it has the prototypes, it doesn&amp;#39;t actually use them unless they are implemented in a .c file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;span&gt;SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler is used if one of these are enabled, and that is fine. If two of them are enabled, then you will get a compiling error, which is expected. This is also correct, since these instances share resources, and you can only use one of them.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But if the last snippet from your reply solves your issue, I don&amp;#39;t see any problems using that.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Edvin&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/160065?ContentTypeID=1</link><pubDate>Mon, 03 Dec 2018 17:18:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ed7bb218-8c95-47bc-bc00-8c70bf20d41e</guid><dc:creator>Sydney</dc:creator><description>&lt;p&gt;Correct me if I&amp;#39;m wrong, but the part you just cited is where the irq_handlers[] array of function pointers is initialized to include each of the enabled IRQ handlers. I&amp;#39;m talking about the prototypes in the header files. So for example, lines 384-387 of nrfx_spim.h looks like this by default:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;void nrfx_spim_0_irq_handler(void);
void nrfx_spim_1_irq_handler(void);
void nrfx_spim_2_irq_handler(void);
void nrfx_spim_3_irq_handler(void);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Why shouldn&amp;#39;t it look like this instead?&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#if NRFX_CHECK(NRFX_SPIM0_ENABLED)
void nrfx_spim_0_irq_handler(void);
#endif
#if NRFX_CHECK(NRFX_SPIM1_ENABLED)
void nrfx_spim_1_irq_handler(void);
#endif
#if NRFX_CHECK(NRFX_SPIM2_ENABLED)
void nrfx_spim_2_irq_handler(void);
#endif
#if NRFX_CHECK(NRFX_SPIM3_ENABLED)
void nrfx_spim_3_irq_handler(void);
#endif&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Similarly, nrfx_twi.h has prototypes for nrfx_twi_0_irq_handler(void) and nrfx_twi_1_irq_handler(void) with no NRFX_CHECKs to make sure which of those modules are actually enabled. So when nrfx_irqs_nrf52832.h is included, line 66 and line 71 cause nrfx_spim_0_irq_handler and nrfx_twi_0_irq_handler to _both_ be replaced by&amp;nbsp;SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler, which causes the compiler to think that&amp;nbsp;&lt;span&gt;SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler has two prototypes in two different locations (nrfx_spim.h and nrf_twi.h). Same for spim_1 on line 78 and twi_1 on line 83.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Do I have this right? What am I missing? Is there any reason why the prototypes in nrfx_spim.h and nrfx_twi.h (and probably also other header files that I&amp;#39;m not using in my project) are not gated behind NRFX_CHECKs like the definitions are? Is editing the SDK to add those NRFX_CHECKs a correct way to fix the issue, or is there some bigger underlying issue I&amp;#39;m just covering up by doing this?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Regarding your SES question, again, I&amp;#39;m not sure what you mean. Is there some generic SES project and makefile that I&amp;#39;m not aware of? Or are you suggesting that I try to reproduce this with one of the examples?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/159915?ContentTypeID=1</link><pubDate>Mon, 03 Dec 2018 09:38:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7a68553b-5a6f-4b1c-9f4a-4a567e5e84b0</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;What do you mean by prototypes for SPIM0, SPIM1, SPIM2 and SPIM3? It doesn&amp;#39;t look like to me that it gates all the nrfx_spim_x_irq_handler(void) when you enable one of them. They are all behind an&lt;/p&gt;
&lt;p&gt;#if NRFX_CHECK(NRFX_SPIX_ENABLED)&lt;br /&gt;nrfx_spim_x_irq_handler,&lt;br /&gt;#endif&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Can you see if you get the same issue if you try the segger embedded studio (ses) project from SDK15.2.0?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&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: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/159859?ContentTypeID=1</link><pubDate>Mon, 03 Dec 2018 06:16:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:78df885e-b0f8-430c-b43a-654425c42af6</guid><dc:creator>Sydney</dc:creator><description>&lt;p&gt;Sorry about the delayed response.&amp;nbsp;I&amp;#39;m not sure I understand exactly what you mean. Do you mean to try to reproduce it with the armgcc makefile&amp;nbsp;in one of the examples? Unfortunately the structure of my project&amp;#39;s makefiles are pretty different from the example makefiles so I think there would be a non-trivial amount of work involved. Would it be sufficient to attach my config files? I have attached them just in case.&lt;/p&gt;
&lt;p&gt;In looking into this with fresh eyes just now, it seems odd to me that nrfx_spim.h includes prototypes for SPIM0, SPIM1, SPIM2, and SPIM3 regardless of which SPIM modules are enabled. And nrfx_twi.h includes prototypes for TWI0 and TWI1, regardless of which TWI modules are enabled. If I undo my previous comments/edits to nrfx_irqs_nrf52832.h as previously mentioned and instead gate all the nrfx_spim_x_irq_handler(void) and nrfx_twi_x_irq_handler(void) IRQ handler prototypes behind corresponding&amp;nbsp;&lt;span&gt;#if&lt;/span&gt; NRFX_CHECK(NRFX_XXXX_ENABLED) (like the corresponding IRQ handler definitions are gated), my project compiles. Shouldn&amp;#39;t the IRQ handler prototypes be gated behind NRFX_CHECKS so that they&amp;#39;re not duplicated when nrfx_irqs_nrf52832.h is included?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/2664.sdk_5F00_config.h"&gt;devzone.nordicsemi.com/.../2664.sdk_5F00_config.h&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nrfx_5F00_config.h"&gt;devzone.nordicsemi.com/.../nrfx_5F00_config.h&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/159205?ContentTypeID=1</link><pubDate>Tue, 27 Nov 2018 11:29:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18530754-0d8d-4ca8-a43b-adcb736bd244</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Is it possible to reproduce the issue with the armgcc folder, so that I can try to replicate it just using the makefile from the armgcc folder?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If so, could you send the project?&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: Porting SDK14 project to SDK15.2 - IRQ handlers and other issues</title><link>https://devzone.nordicsemi.com/thread/158893?ContentTypeID=1</link><pubDate>Fri, 23 Nov 2018 18:45:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b2e85c49-06fd-4eb3-8dbe-70e7575ca42b</guid><dc:creator>Sydney</dc:creator><description>&lt;p&gt;Understood about Eclipse not being officially supported. I wouldn&amp;#39;t have posted about it except that I was going to be posting about this IRQ issue anyway, so I was just hoping someone in the community had come across this issue before and knew how to sort it out.&lt;/p&gt;
&lt;p&gt;The only places TWI0/TWI1/SPIM0/SPIM1/SPIM2_ENABLED are defined are in my working copy of sdk_config.h in my application directory in the &amp;quot;legacy layer&amp;quot; sections. But they&amp;#39;re all set to 0. I noticed SPI_0_USE_EASY_DMA was set to 1, so I tried setting it to 0 just in case, but I still get the same issue. Also, as mentioned previously, apply_old_config.h has been renamed to apply_old_config.h.orig to prevent inclusion.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t have two files called nrfx_config.h. I copied the one from inside the SDK into my application&amp;nbsp;directory and renamed the original file nrfx_config.h.orig to avoid the issue you described.&lt;/p&gt;
&lt;p&gt;The compiler output in my original post is from after renaming those three files. I have since gone back and renamed all sdk_config.h and nrfx_config.h files in the SDK (not including examples), even in directories for&amp;nbsp;nRF52840 and nRF52810 just to be sure&amp;nbsp;that my compiler isn&amp;#39;t looking to those, and it didn&amp;#39;t help.&lt;/p&gt;
&lt;p&gt;In trying things out, I&amp;#39;ve found that in nrfx_irqs_nrf52832.h, if I comment out line 66 (&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; nrfx_spim_0_irq_handler &amp;nbsp; &amp;nbsp; SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler) since I&amp;#39;m not trying to use SPIM0 and line 83 (&lt;/span&gt;&lt;span&gt;#define&lt;/span&gt;&lt;span&gt; nrfx_twi_1_irq_handler&amp;nbsp; &amp;nbsp; &amp;nbsp; SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler) since I&amp;#39;m not trying to use TWI1, my code compiles and things seem to work. But this doesn&amp;#39;t seem like the correct solution and leaves me wondering what other problems might be caused by the underlying issue. (If I comment out these lines, the next thing I notice is issues with SAADC events, but I&amp;#39;ll worry about that later in case I still have bigger issues with interrupts in general than I realize.)&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>