<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Kinetis Design Studio中的主题 Re: freertos xSemaphoreTake stuck</title>
    <link>https://community.nxp.com/t5/Kinetis-Design-Studio/freertos-xSemaphoreTake-stuck/m-p/491511#M5923</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Daniel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is exactly how I am using the interrupt&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Zohar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 25 Mar 2016 14:51:00 GMT</pubDate>
    <dc:creator>zohargolan</dc:creator>
    <dc:date>2016-03-25T14:51:00Z</dc:date>
    <item>
      <title>freertos xSemaphoreTake stuck</title>
      <link>https://community.nxp.com/t5/Kinetis-Design-Studio/freertos-xSemaphoreTake-stuck/m-p/491509#M5921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a problem with the MCU On eclipse freeRtos component.&lt;/P&gt;&lt;P&gt;I am using k20fx512 device with the MCU On Eclipse component on KDS 3.0.0.&lt;/P&gt;&lt;P&gt;the freeRtos version is v8.2.0.&lt;/P&gt;&lt;P&gt;I have a periodic hardware interrupt which is pulsing every ~20 ms. This interrupt is giving a semaphore using&lt;/P&gt;&lt;P&gt;xSemaphoreGiveFromIsr&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the back end I have a task which is waiting for this semaphore in a for loop.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;for (;;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; font-size: 10pt;"&gt;if&lt;/STRONG&gt;&lt;SPAN style="font-size: 10pt;"&gt;(xSemaphoreTake(SemaphoreName, (&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;TickType_t&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;) 25) != pdTRUE)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #2a00ff; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Missed a frame interrupt.\n"&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; font-size: 10pt;"&gt;else&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; task body&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030; font-size: 10pt;"&gt;This mechanism is working perfectly until something happens and the task is not processing the task body anymore.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030;"&gt;The interrupt is still working and when the semaphore is given in the ISR, it is returning an error, because it is already given.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030;"&gt;the semaphore take just missed and the semaphore is still waiting endlessly.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030;"&gt;Please advise&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030;"&gt;Zohar&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Mar 2016 18:54:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Design-Studio/freertos-xSemaphoreTake-stuck/m-p/491509#M5921</guid>
      <dc:creator>zohargolan</dc:creator>
      <dc:date>2016-03-19T18:54:55Z</dc:date>
    </item>
    <item>
      <title>Re: freertos xSemaphoreTake stuck</title>
      <link>https://community.nxp.com/t5/Kinetis-Design-Studio/freertos-xSemaphoreTake-stuck/m-p/491510#M5922</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Zohar:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please refer to the following example to use xSempaphoreGiveFromISR()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void vISR(void *pvParameters)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BaseType_t xHigherPriorityTaskWoken = pdFALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*The event has occurr3d, use teh semaphore to unblock the task so the task can process the event*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xSemaphoreGiveFromISR(xSemaphore, &amp;amp;HigherPriorityTaskWoken);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear the interrupt here */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; portYIELD_FROM_ISR(xHigherPriorityTaskWoken);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Define a task that performs an action each time an interrupt occurs. */&lt;/P&gt;&lt;P&gt;void vATask(void * pvParameters)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*it is assumed the semaphore has already been created outside of this task*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (;;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*wait for the next event*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( xSemaphoreTake(xSemaphore, portMAX_DELAY) == pdTURE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The event has occurred, process it here*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Processing is complete, return to wait for the next event*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Mar 2016 04:46:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Design-Studio/freertos-xSemaphoreTake-stuck/m-p/491510#M5922</guid>
      <dc:creator>danielchen</dc:creator>
      <dc:date>2016-03-25T04:46:30Z</dc:date>
    </item>
    <item>
      <title>Re: freertos xSemaphoreTake stuck</title>
      <link>https://community.nxp.com/t5/Kinetis-Design-Studio/freertos-xSemaphoreTake-stuck/m-p/491511#M5923</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Daniel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is exactly how I am using the interrupt&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Zohar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Mar 2016 14:51:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Design-Studio/freertos-xSemaphoreTake-stuck/m-p/491511#M5923</guid>
      <dc:creator>zohargolan</dc:creator>
      <dc:date>2016-03-25T14:51:00Z</dc:date>
    </item>
  </channel>
</rss>

