<?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>FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/30103/freertos-on-nrf52810</link><description>Hello, 
 Does anyone know if the FreeRTOS port that&amp;#39;s distributed with the nRF5_SDK_14.2.0 is intended to support nRF52810 chips (which have no hardware FPU)? I started working on an application that would be easier to implement using FreeRTOS but can</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 14 May 2019 02:28:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/30103/freertos-on-nrf52810" /><item><title>RE: FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/thread/186802?ContentTypeID=1</link><pubDate>Tue, 14 May 2019 02:28:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:847727cb-0841-4d39-a3ae-4e061fb0a89d</guid><dc:creator>yangshuanghua</dc:creator><description>&lt;p&gt;great answer very useful !!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/thread/134105?ContentTypeID=1</link><pubDate>Thu, 31 May 2018 02:29:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a620985-b5d1-46f9-a050-0de42e3d5e4b</guid><dc:creator>stone.xiang</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I got these errors when compiling the project within FREE RTOS&amp;nbsp;&amp;nbsp;&lt;span&gt;distributed with nrf52810.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;compiling port_cmsis_systick.c...&lt;br /&gt;..\..\..\..\..\..\external\freertos\portable\CMSIS\nrf52\port_cmsis_systick.c(124): error: #20: identifier &amp;quot;NRF_RTC2&amp;quot; is undefined&lt;br /&gt; uint32_t systick_counter = nrf_rtc_counter_get(&lt;br /&gt;ortNRF_RTC_REG);&lt;br /&gt;..\..\..\..\..\..\external\freertos\portable\CMSIS\nrf52\port_cmsis_systick.c(171): error: #20: identifier &amp;quot;NRF_RTC2&amp;quot; is undefined&lt;br /&gt; nrf_rtc_prescaler_set(&lt;br /&gt;ortNRF_RTC_REG, portNRF_RTC_PRESCALER);&lt;br /&gt;..\..\..\..\..\..\external\freertos\portable\CMSIS\nrf52\port_cmsis_systick.c(177): error: #20: identifier &amp;quot;RTC2_IRQn&amp;quot; is undefined&lt;br /&gt; NVIC_SetPriority(&lt;br /&gt;ortNRF_RTC_IRQn, configKERNEL_INTERRUPT_PRIORITY);&lt;br /&gt;..\..\..\..\..\..\external\freertos\portable\CMSIS\nrf52\port_cmsis_systick.c: 0 warnings, 3 errors&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Could you please teach me how to solve these problems, I think you may also encountered the same problem.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Kind regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;THANKS.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/thread/120684?ContentTypeID=1</link><pubDate>Tue, 13 Feb 2018 09:49:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:67fcdb9e-2576-4f2a-983a-dc72911153d8</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;you might have to comment this out in port_cmsis.c&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void vPortEnableVFP( void )
{
    //SCB-&amp;gt;CPACR |= 0xf &amp;lt;&amp;lt; 20;
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/thread/120491?ContentTypeID=1</link><pubDate>Sun, 11 Feb 2018 13:51:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f71a2b89-eb6e-4d99-9315-b3864b20b83a</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;awesome..&amp;nbsp; thanks for confirming that it worked.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/thread/120188?ContentTypeID=1</link><pubDate>Thu, 08 Feb 2018 00:07:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:599519fd-5cd0-487d-a7bd-98f93bc896fe</guid><dc:creator>Nebojsa_J</dc:creator><description>&lt;p style="color:#000000;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-style:normal;font-weight:400;letter-spacing:normal;margin-top:0px;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;Thanks Aryan,&lt;/p&gt;
&lt;p style="color:#000000;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;With your input above, I was able to get FreeRtos to run on nRF52810.... with the following additional changes:&lt;/p&gt;
&lt;p style="color:#000000;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;* Made the same changes you have above to the corresponding port files for the GCC compiler (since that&amp;#39;s what I am using)&lt;/p&gt;
&lt;p style="color:#000000;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;* After including the softDevice (running s112) and the FreeRtos files, I ran into a couple of double function definitions that I had to resolve.... One of the double definitions was the &amp;quot;SD_EVT_IRQHandler&amp;quot; function which is in both the nrf_sdh.c and nrf_sdh_frertos.c. Can&amp;#39;t remember the other, but it should be obvious if anyone else runs into this....&lt;/p&gt;
&lt;p style="color:#000000;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;"&gt;Again, thanks for your help!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/thread/119944?ContentTypeID=1</link><pubDate>Tue, 06 Feb 2018 13:20:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1c6bb38-a626-4934-accf-0192eeda6a47</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Nordic FreeRTOS port does not use FPU for anything. All it does is push the FPU context of the task that is using it to the stack when it is starting the scheduler using PendSV interrupt handler. The best would have been to fence under a macro.&lt;/p&gt;
&lt;p&gt;Comment out below in port_cmsis.c&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#if !(__FPU_USED) &amp;amp;&amp;amp; !(__LINT__)
    #error This port can only be used when the project options are configured to enable hardware floating point support.
#endif&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;replace&amp;nbsp;xPortPendSVHandler in port.c with this&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;__asm void xPortPendSVHandler( void )
{
    extern uxCriticalNesting;
    extern pxCurrentTCB;
    extern vTaskSwitchContext;

    PRESERVE8

    mrs r0, psp
    isb
    /* Get the location of the current TCB. */
    ldr r3, =pxCurrentTCB
    ldr r2, [r3]

    /* Is the task using the FPU context?  If so, push high vfp registers. */
#if (__FPU_PRESENT == 1U) &amp;amp;&amp;amp; (__FPU_USED == 1U)
    tst r14, #0x10
    it eq
    vstmdbeq r0!, {s16-s31}
#endif
    
    /* Save the core registers. */
    stmdb r0!, {r4-r11, r14}

    /* Save the new top of stack into the first member of the TCB. */
    str r0, [r2]

    stmdb sp!, {r3}
    mov r0, #(configMAX_SYSCALL_INTERRUPT_PRIORITY &amp;lt;&amp;lt; (8 - configPRIO_BITS))
    msr basepri, r0
    dsb
    isb
    bl vTaskSwitchContext
    mov r0, #0
    msr basepri, r0
    ldmia sp!, {r3}

    /* The first item in pxCurrentTCB is the task top of stack. */
    ldr r1, [r3]
    ldr r0, [r1]

    /* Pop the core registers. */
    ldmia r0!, {r4-r11, r14}

    /* Is the task using the FPU context?  If so, pop the high vfp registers
    too. */
#if (__FPU_PRESENT == 1U) &amp;amp;&amp;amp; (__FPU_USED == 1U)
    tst r14, #0x10
    it eq
    vldmiaeq r0!, {s16-s31}
#endif
    msr psp, r0
    isb

    bx r14

    ALIGN
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The rest of the port is independent of FPU. This should work, given that you have enough space in that chip to run freertos and your appliction&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/thread/119440?ContentTypeID=1</link><pubDate>Thu, 01 Feb 2018 22:44:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:52b01ab4-8c1e-4716-9188-f78208bd5268</guid><dc:creator>Nebojsa_J</dc:creator><description>&lt;p&gt;Thanks @RK...&lt;/p&gt;
&lt;p&gt;I think this info confirms that the FreeRTOS port will not work for nRF52810 as is in SDK14.2.... If anyone has pointers on how to fix this, please share the wisdom.. :)&amp;nbsp; It will be appreciated.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FreeRTOS on nRF52810</title><link>https://devzone.nordicsemi.com/thread/119434?ContentTypeID=1</link><pubDate>Thu, 01 Feb 2018 21:33:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:84634584-9610-4f5f-9fdd-8713c3b90b40</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;I don&amp;#39;t think so - I get that from&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/28088/how-to-disable-fpu-on-freertos-nrf52-project/110729#110729"&gt;devzone.nordicsemi.com/.../110729&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;that thread which discussed disabling FPU on FreeRTOS on the nRF52840.&amp;nbsp; The port used was the M4 port which naturally comes with FPU support enabled. This ought not to be that hard to fix yourself but I don&amp;#39;t think the Nordic port out of the box will work for you.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>