<?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>SOFT DEVICE : INVALID MEMORY ACCESS  -  START CLOCK AND SOFT DEVICE not working together.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/39717/soft-device-invalid-memory-access---start-clock-and-soft-device-not-working-together</link><description>Hi! 
 I am working on NRF 52840 Controller and Soft Device Version 6.0.0. Coding using Keil IDE in C. 
 Also developing using Free RTOS. 
 According to the requirement I need to use a Timer Module as a Counter (through PPI) to cause an interrupt. I am</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 31 Oct 2018 04:11:08 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/39717/soft-device-invalid-memory-access---start-clock-and-soft-device-not-working-together" /><item><title>RE: SOFT DEVICE : INVALID MEMORY ACCESS  -  START CLOCK AND SOFT DEVICE not working together.</title><link>https://devzone.nordicsemi.com/thread/155247?ContentTypeID=1</link><pubDate>Wed, 31 Oct 2018 04:11:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f86bb54-8d29-4f69-9ca4-bd2d7bc7074e</guid><dc:creator>TEJASWINI J</dc:creator><description>&lt;p&gt;nrf_drv_timer_config_t timer_cfg = NRF_DRV_TIMER_DEFAULT_CONFIG;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code = nrf_drv_timer_init( &amp;amp;m_timer2, &amp;amp;timer_cfg, sample_counter_event_handler );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_ERROR_CHECK( err_code );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_timer_clear( &amp;amp;m_timer2 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_timer_extended_compare( &amp;amp;m_timer2, NRF_TIMER_CC_CHANNEL0, XXX, NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK, true );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //XXX is the data count we want to ready from the Channel&amp;nbsp; Register.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Configuring the PPI used for automating the data streaming&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code = nrf_drv_ppi_channel_alloc( &amp;amp;m_ppi_channel );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_ERROR_CHECK( err_code );&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set up PPI Chn0 for triggering of SPIM start when DR pin event occurs (set up for falling edge event)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code = nrf_drv_ppi_channel_assign( m_ppi_channel,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_gpiote_in_event_addr_get( AFE_DR_PIN ),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_spim_task_address_get( nrfbusHandle-&amp;gt;busIdentifier.u.spim.p_reg, NRF_SPIM_TASK_START ) );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_ERROR_CHECK( err_code );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Fork PPI to also trigger count on timer2 to keep track of number of samples.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code = nrf_drv_ppi_channel_fork_assign( m_ppi_channel,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_timer_task_address_get( &amp;amp;m_timer2, NRF_TIMER_TASK_COUNT ) );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_ERROR_CHECK( err_code );&lt;/p&gt;
&lt;p&gt;nrf_drv_timer_clear( &amp;amp;m_timer2 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nrf_drv_timer_enable( &amp;amp;m_timer2 );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code = nrf_drv_ppi_channel_enable( m_ppi_channel );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_ERROR_CHECK(err_code);&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This is the code. The last second line is causing a Problem.&lt;/p&gt;
&lt;p&gt;My code is not executed Further.&lt;/p&gt;
&lt;p&gt;I tried disabling the Soft device also, but the code was still hung.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SOFT DEVICE : INVALID MEMORY ACCESS  -  START CLOCK AND SOFT DEVICE not working together.</title><link>https://devzone.nordicsemi.com/thread/155043?ContentTypeID=1</link><pubDate>Tue, 30 Oct 2018 09:28:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:68135990-52da-40e6-bba5-6227141d9b1d</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Please post your code showing how you configure/enable timer. You can also upload your entire project for us to help you debug the issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SOFT DEVICE : INVALID MEMORY ACCESS  -  START CLOCK AND SOFT DEVICE not working together.</title><link>https://devzone.nordicsemi.com/thread/155036?ContentTypeID=1</link><pubDate>Tue, 30 Oct 2018 09:12:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ea82b679-1623-4959-863c-4f9289c65a30</guid><dc:creator>TEJASWINI J</dc:creator><description>&lt;p&gt;Hi Jorgen!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;No its not in a Loop... I am trying to initialize a PPI.&lt;/p&gt;
&lt;p&gt;First I init the Timer and perform a NRF Extended Compare.&lt;/p&gt;
&lt;p&gt;Then I am enabling the Timer. My code is hung at this point.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I tried to debug , but this can take place only when i Issue a BLE Command. I am not finding a uniform behavior to share with you.&lt;/p&gt;
&lt;p&gt;Could please help in telling me where to look at.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt; Tejaswini &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SOFT DEVICE : INVALID MEMORY ACCESS  -  START CLOCK AND SOFT DEVICE not working together.</title><link>https://devzone.nordicsemi.com/thread/155014?ContentTypeID=1</link><pubDate>Tue, 30 Oct 2018 08:34:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6439c81c-8243-4257-ba1c-c99f3662d5eb</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;What do you mean by the following?&lt;/p&gt;
[quote user="TEJASWINI J"]&amp;quot;nrf_drv_timer_extended_compare&amp;quot; is causing my code to hang.[/quote]
&lt;p&gt;&amp;nbsp;Is the application stuck in some loop? Have you tried &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/10729/my-device-is-freezing-and-restarting"&gt;debugging&lt;/a&gt; to check for error codes?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SOFT DEVICE : INVALID MEMORY ACCESS  -  START CLOCK AND SOFT DEVICE not working together.</title><link>https://devzone.nordicsemi.com/thread/154980?ContentTypeID=1</link><pubDate>Tue, 30 Oct 2018 05:32:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6d038c11-05c1-4057-97be-4c3394b6bf68</guid><dc:creator>TEJASWINI J</dc:creator><description>&lt;p&gt;Hi Jorgen!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank You for your timely reply.&amp;nbsp;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I am using Timer - 2 as a Counter.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;nrf_drv_timer_extended_compare&amp;quot; is causing my code to hang. Can you please help me in understanding.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;:) Tejaswini :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SOFT DEVICE : INVALID MEMORY ACCESS  -  START CLOCK AND SOFT DEVICE not working together.</title><link>https://devzone.nordicsemi.com/thread/154003?ContentTypeID=1</link><pubDate>Tue, 23 Oct 2018 08:47:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1d4b88a3-0b1b-4e9b-a612-f494b7ddc48f</guid><dc:creator>J&amp;#248;rgen Holmefjord</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The softdevice will block or restrict access to some &lt;a title="Hardware peripherals" href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.sds/dita/softdevices/s130/sd_resource_reqs/hw_block_interrupt_vector.html?cp=2_3_2_0_6_0"&gt;Hardware peripherals&lt;/a&gt; when it is enabled, including the CLOCK peripheral. Trying to access the peripheral registers directly will result in invalid address access.&lt;/p&gt;
&lt;p&gt;The restricted peripherals can be accessed through the &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v6.1.0/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html?cp=2_3_2_1_0_2_7_2"&gt;softdevice API&lt;/a&gt;, specifically you can use&amp;nbsp;&lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v6.1.0/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html#ga3e5afb495a1b0307c749cc268df94a74"&gt;sd_clock_hfclk_request&lt;/a&gt;&lt;span&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s140.api.v6.1.0/group___n_r_f___s_o_c___f_u_n_c_t_i_o_n_s.html#ga7dcec5b896ce32fe70e9b54d7b523f55"&gt;sd_clock_hfclk_release&lt;/a&gt;&amp;nbsp;to start and stop the HF clock.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;br /&gt;Jørgen&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>