<?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>ram retention nrf52</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/18686/ram-retention-nrf52</link><description>Hello, 
 I&amp;#39;ve taken the example from the SDK 12.0.0 for RAM retention. I&amp;#39;ve added additional NRF_LOG statements to check if the RAM retention is happening. I do not have the softdevice enabled for my application. But it is not working. 
 See the main</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 12 Apr 2017 08:51:42 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/18686/ram-retention-nrf52" /><item><title>RE: ram retention nrf52</title><link>https://devzone.nordicsemi.com/thread/72145?ContentTypeID=1</link><pubDate>Wed, 12 Apr 2017 08:51:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:27abb7c7-6f57-4484-a800-825d764d773c</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Sorry for the late response ManishK. I just tried your main.c and yes there are compilation errors because the peripheral examples are not constructed for logging. You can fix this by comparing the sdk_config-h file from example that has logging like sdk\examples\ble_peripheral. A lot of macros are missing in the sdk_config.h file in the ram_retention example.&lt;/p&gt;
&lt;p&gt;you also need to add files like nrf_log_frontend.c and other dependencies to the project.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ram retention nrf52</title><link>https://devzone.nordicsemi.com/thread/72147?ContentTypeID=1</link><pubDate>Sat, 01 Apr 2017 15:26:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6dfc9e92-d07d-4a2e-b193-0071eb6ca00c</guid><dc:creator>ManishK</dc:creator><description>&lt;p&gt;Hi Aryan,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve taken the example of RAM retention from SDK 12.0.0. I just added some NRF_LOG statements to check if I can see after system wakeup, if we have the right values in pointer p_ram_test. I was doing this using eclipse platform. There I had the NRF logging on serial port enabled. With this, it was not working.&lt;/p&gt;
&lt;p&gt;But upon your request for the project, I ran the keil project from &amp;quot;..\nRF5_SDK_12.0.0_12f24da\examples\peripheral\ram_retention\pca10040\blank\arm5_no_packs\ram_retention_pca10040.uvprojx&amp;quot; using the same &lt;strong&gt;main.c&lt;/strong&gt; which I had already attached previously. But for some reason, when I try to enable NRF logging from Keil project, I get errors.&lt;/p&gt;
&lt;p&gt;Could you please use the &lt;strong&gt;main.c&lt;/strong&gt; file which I&amp;#39;ve attached here and then try the same on the existing keil project with NRF logging enabled? If you see that the values are ok, then I know that there is something wrong in my eclipse settings. The nRF hardware which I&amp;#39;ve is nRF52832.&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ram retention nrf52</title><link>https://devzone.nordicsemi.com/thread/72144?ContentTypeID=1</link><pubDate>Sat, 01 Apr 2017 06:20:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9db87081-88b0-4b83-b2b3-5794858ebbd3</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Hi Manishk,&lt;/p&gt;
&lt;p&gt;I was not offended, but just trying to maintain some etiquette. Since you are new to this forum, i can understand that you did not knew about this. This is very well behaved decent and professional forum and we would like to maintain it this way. Thanks for understanding that.&lt;/p&gt;
&lt;p&gt;Please create a support case and attach your project there. We can find the problem sooner this way and we will update the answer here when we can can find what was wrong.
Do not forget to give exact nRF hardware revision you are using&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ram retention nrf52</title><link>https://devzone.nordicsemi.com/thread/72142?ContentTypeID=1</link><pubDate>Tue, 28 Mar 2017 16:46:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:46e5f444-ff0f-47d9-9ca6-0e0167e741a2</guid><dc:creator>ManishK</dc:creator><description>&lt;p&gt;Hello Aryan,
I took the hint from your reply to have a section of NOINIT in linker file. I did not use the logic provided above to determine where the variable is placed. I forced it to this NOINIT section while defining it.
To make it clear, I edited my question to make it clear what exactly I did.
I&amp;#39;m sorry if you are offended that I did not reply to your answer. Please excuse me for that.
But even after doing all this, I still do not have an answer how to make the RAM retention work without softdevice. Please let me know if you can support.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ram retention nrf52</title><link>https://devzone.nordicsemi.com/thread/72146?ContentTypeID=1</link><pubDate>Tue, 28 Mar 2017 16:45:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:015f2e9c-27ed-4a57-b86c-9d19e0b82f50</guid><dc:creator>ManishK</dc:creator><description>&lt;p&gt;Hello Aryan,&lt;/p&gt;
&lt;p&gt;I took the hint from your reply to have a section of NOINIT in linker file. I did not use the logic provided above to determine where the variable is placed. I forced it to this NOINIT section while defining it.&lt;/p&gt;
&lt;p&gt;To make it clear, I edited my question to make it clear what exactly I did.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m sorry if you are offended that I did not reply to your answer. Please excuse me for that.&lt;/p&gt;
&lt;p&gt;But even after doing all this, I still do not have an answer how to make the RAM retention work without softdevice. Please let me know if you can support.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ram retention nrf52</title><link>https://devzone.nordicsemi.com/thread/72141?ContentTypeID=1</link><pubDate>Tue, 28 Mar 2017 12:35:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5967ab8b-4353-4021-949a-eedafcba2fcc</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Instead of commenting to my answer,  you are broadcasting again for help editing your question.  If my answer did not help you,  it would be nice to tell me what you tried and what was the outcome&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ram retention nrf52</title><link>https://devzone.nordicsemi.com/thread/72143?ContentTypeID=1</link><pubDate>Mon, 02 Jan 2017 09:13:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:00e5bf12-dc49-4d08-94d3-dade46d1366b</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Hi Manish.&lt;/p&gt;
&lt;p&gt;RAM in nRF52 can be subdivided into RAM slave blocks. Each slave block are divided 2 into 4KB sections (1 slave = 2 sections =  2 * 4KB = 8KB)&lt;/p&gt;
&lt;p&gt;Read the memory address pointed by the pointer p_ram_test  and calculate which slave and section it belongs.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#define RAM_START_ADDRESS  0x20000000

uint32_t p_offset = (p_ram_test - RAM_START_ADDRESS);
uint8_t ram_slave_n    = (p_offset / 8192);  
uint8_t ram_section_n = (p_offset % 8192)/4096;

NRF_POWER-&amp;gt;RAM[ram_slave_n].POWERSET = ((1 &amp;lt;&amp;lt; ram_section_n) &amp;lt;&amp;lt; POWER_RAMON_OFFRAM0_Pos);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you are using softdevice and have enabled it, then at the time of this writing, softdevice still does not support RAM[0], instead it supports legacy interface RAMON register. So you have to use
&lt;code&gt;sd_power_ramon_set&lt;/code&gt; to control it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sd_power_ramon_set(((1 &amp;lt;&amp;lt; ram_section_n) &amp;lt;&amp;lt; POWER_RAMON_OFFRAM0_Pos));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You have to make sure that this part of RAM slave have been selected for NOINIT section in your project or scatter file.&lt;/p&gt;
&lt;p&gt;Note: I did not test this code in any program even though i think it should work, just use this as a pseudo code to get the idea.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>