<?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>nRF52840 QSPI XIP mode can not work</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/100307/nrf52840-qspi-xip-mode-can-not-work</link><description>Hi, 
 We use 17.0.2 SDK and 52840 DK. 
 qspi_bootloader example use in internal flash and blinky_systick _qspi use for ex-flash as main application. 
 I follow the steps and everything seems to be fine. The LEDs are also blinky. 
 But if I add the source</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 02 Jun 2023 08:12:37 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/100307/nrf52840-qspi-xip-mode-can-not-work" /><item><title>RE: nRF52840 QSPI XIP mode can not work</title><link>https://devzone.nordicsemi.com/thread/428924?ContentTypeID=1</link><pubDate>Fri, 02 Jun 2023 08:12:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:796463a6-26c4-4118-9892-4973ae7fb9f9</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi John,&lt;/p&gt;
&lt;p&gt;My experience has been that xip code works fine as long as it does not include ISRs. I have tested SW crypto libs in the past, and they ran without issues, just slower.&lt;/p&gt;
&lt;p&gt;The errata description says the problem is when code executing from internal flash tries to access data from the xip area.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 QSPI XIP mode can not work</title><link>https://devzone.nordicsemi.com/thread/428873?ContentTypeID=1</link><pubDate>Fri, 02 Jun 2023 01:48:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:53b584c4-84c2-40fb-8dda-311e733a7cd0</guid><dc:creator>JohnCC</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&lt;span&gt;My suggestion would be to move functions that are not frequently used but may have a large code size to the external flash, such as the crypto libraries.&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;-&amp;nbsp;How can I confirm if the code I moved to external flash will not cause 216 errata?&amp;nbsp;It&amp;#39;s like I want to move the whole log&amp;nbsp; library out before,but obviously there will be problems&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;John.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 QSPI XIP mode can not work</title><link>https://devzone.nordicsemi.com/thread/428739?ContentTypeID=1</link><pubDate>Thu, 01 Jun 2023 12:57:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d68b08b0-4b40-47bf-819e-565f621beb91</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi John,&lt;/p&gt;
&lt;p&gt;You&amp;#39;re right, the errata 216 should not be relevant when executing everything from the external flash. However, running the entire application from the external flash is not possible due to the Softdevice being pre-linked to start at address 0x1000. My suggestion would be to move functions that are not frequently used but may have a large code size to the external flash, such as the crypto libraries. XiP execution&amp;nbsp;causes a significant performance penalty compared to running from the internal flash, both in terms of speed and power consumption.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 QSPI XIP mode can not work</title><link>https://devzone.nordicsemi.com/thread/428626?ContentTypeID=1</link><pubDate>Thu, 01 Jun 2023 07:52:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9c0bd698-f656-4360-bd52-b0ad0017f265</guid><dc:creator>JohnCC</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Thanks for your support.&lt;/p&gt;
&lt;p&gt;I have seen your .diff file. I have a few questions&lt;/p&gt;
&lt;p&gt;1. About errata #216.&amp;nbsp;Operations that cause problems are &amp;quot;&lt;span&gt;Code that is executing from internal flash memory or RAM reads data located in the XIP region&amp;quot;. But with my previous architecture, all my code functions are running on external flash. So it shouldn&amp;rsquo;t cause 216 error. The problem should be RAM read xip region. Right?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. In your example, you create a xip region.&amp;nbsp;This region can runs on external flash. I can write the functions that will run on external flash in this region, but how do I know which functions can be placed in this region? And it will not cause 216 error&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;We experimented with the xip function because the code size is too large. But we feel that there are many things that cannot be put into the external flash for execution. And we are not sure which ones can be put and which ones cannot&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;John.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52840 QSPI XIP mode can not work</title><link>https://devzone.nordicsemi.com/thread/428488?ContentTypeID=1</link><pubDate>Wed, 31 May 2023 13:23:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fe77f60f-a6b6-4205-a3e5-20b381e10434</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I suspect the issue is related to errata 216, as mentioned in your previous ticket. I have created a small XIP demo for you based on the ble_app_hrs example in nRF5 SDK 17.1.0. It demonstrates how you can make individual functions execute from external flash instead of running the entire program from it. This approach provides better control over the code that goes into the XIP area, making it easier to avoid conditions that trigger this errata.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ble_5F00_app_5F00_hrs_5F00_xip.zip"&gt;devzone.nordicsemi.com/.../ble_5F00_app_5F00_hrs_5F00_xip.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>