<?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>topic Re: Re: Queue Data Struct in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453999#M15265</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joel and David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was trying to understand the David's approach when Joel unveiled the problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David, thank you very much for your help but I think MQX needs a better documentation - where are the error codes of '_queue_test()'? A little and silly example will be very appreciated to.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joel, thank you for helping to understand the David's approach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Sandro&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 30 Apr 2015 18:26:40 GMT</pubDate>
    <dc:creator>sandrobastos</dc:creator>
    <dc:date>2015-04-30T18:26:40Z</dc:date>
    <item>
      <title>Queue Data Struct</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453994#M15260</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello everybody,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to use Queue Data Struct in order to implement an alarm history.&lt;/P&gt;&lt;P&gt;The documentation is quite poor and there is not an example.&lt;/P&gt;&lt;P&gt;When I enqueue the second element, I get an 0x1d (29) error code that I could not find its mean anywhere.&lt;/P&gt;&lt;P&gt;After, for example, enqueue 10 elements, the queue size is correct (=10).&lt;/P&gt;&lt;P&gt;When I read the '_queue_head', that should be the first element enqueued, I get the last one (tail).&lt;/P&gt;&lt;P&gt;Then I keep going with '_queue_next' and all elements are the same, i.e. the last one (tail).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A simple code I implemented (based upon MFS code) just to test the feature:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;mqx.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;fio.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef struct _mfs_drive_struct&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATA_START_SECTOR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QUEUE_STRUCT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANDLE_LIST;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FAT_TYPE;&lt;/P&gt;&lt;P&gt;} _MFS_DRIVE_STRUCT,&amp;nbsp;&amp;nbsp;&amp;nbsp; *_MFS_DRIVE_STRUCT_PTR;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;** file handle as defined by MFS&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;typedef struct _mfs_handle&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; QUEUE_ELEMENT_STRUCT&amp;nbsp;&amp;nbsp; HEADER_PTR;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; long&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCATION;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; long&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIZE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALID;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;} _MFS_HANDLE, * _MFS_HANDLE_PTR;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void _test_queue()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _MFS_DRIVE_STRUCT ds;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _MFS_DRIVE_STRUCT_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp; drive_ptr=&amp;amp;ds;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _MFS_HANDLE_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; handle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _MFS_HANDLE&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; hp, q_error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _MFS_HANDLE_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; handle_ptr=&amp;amp;hp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _MFS_HANDLE_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; next_handle;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queue_init(&amp;amp;drive_ptr-&amp;gt;HANDLE_LIST, 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; 10; i++)&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; handle_ptr-&amp;gt;SIZE = i*5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queue_enqueue( &amp;amp;drive_ptr-&amp;gt;HANDLE_LIST, (QUEUE_ELEMENT_STRUCT_PTR) handle_ptr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("erro=0x%02x\n", _queue_test&amp;nbsp;&amp;nbsp; (&amp;amp;drive_ptr-&amp;gt;HANDLE_LIST, (void*)&amp;amp;q_error));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; next_handle =&amp;nbsp; (_MFS_HANDLE_PTR) _queue_head(&amp;amp;drive_ptr-&amp;gt;HANDLE_LIST);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("head: %d\n", next_handle-&amp;gt;SIZE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( next_handle )&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; next_handle =&amp;nbsp; (_MFS_HANDLE_PTR) _queue_next(&amp;amp;drive_ptr-&amp;gt;HANDLE_LIST, (QUEUE_ELEMENT_STRUCT_PTR) next_handle);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("next: %d\n", next_handle-&amp;gt;SIZE);&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;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/bfac"&gt;bfac&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/karinavalencia"&gt;karinavalencia&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/DavidSeymour"&gt;DavidSeymour&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/flaviocaduda"&gt;flaviocaduda&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/fernandaprata"&gt;fernandaprata&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Apr 2015 12:40:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453994#M15260</guid>
      <dc:creator>sandrobastos</dc:creator>
      <dc:date>2015-04-29T12:40:23Z</dc:date>
    </item>
    <item>
      <title>Re: Queue Data Struct</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453995#M15261</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sandro,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not sure your parameters for _queue_test() are correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you have:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13px; font-family: 'courier new', courier;"&gt;_MFS_HANDLE&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; q_error;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13px; font-family: 'courier new', courier;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt; &lt;SPAN style="font-family: 'courier new', courier;"&gt;_queue_test&amp;nbsp; (&amp;amp;drive_ptr-&amp;gt;HANDLE_LIST, (void*)&amp;amp;q_error));&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;But the intent of the second parameter is to return a _pointer_ to the element in error, and not a copy of the full element. Try passing in the address of pointer type:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13px; font-family: 'courier new', courier;"&gt;QUEUE_ELEMENT_STRUCT_PTR&amp;nbsp; q_error;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'courier new', courier; font-size: 13px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;_queue_test(&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13px; font-family: 'courier new', courier;"&gt;&amp;amp;drive_ptr-&amp;gt;HANDLE_LIST, (void*)&amp;amp;q_error));&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;Hope this helps!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;+Joel.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Apr 2015 17:46:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453995#M15261</guid>
      <dc:creator>theJoel</dc:creator>
      <dc:date>2015-04-29T17:46:46Z</dc:date>
    </item>
    <item>
      <title>Re: Queue Data Struct</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453996#M15262</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for contributing.&lt;/P&gt;&lt;P&gt;Yes, you are right, it was a mistake but, unfortunately, it did not change the wrong behavior, I mean, it still returning 0x1d error and I just can read the tail element, not the others.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you and best regards,&lt;/P&gt;&lt;P&gt;Sandro&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Apr 2015 19:07:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453996#M15262</guid>
      <dc:creator>sandrobastos</dc:creator>
      <dc:date>2015-04-29T19:07:28Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Queue Data Struct</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453997#M15263</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sandros,&lt;/P&gt;&lt;P&gt;I took a slightly different approach to work with queues and see how they are working.&lt;/P&gt;&lt;P&gt;I started with: C:\Freescale\Freescale_MQX_4_1_Vybrid\mqx\examples\test\test.c&lt;/P&gt;&lt;P&gt;Borrowed code from: C:\Freescale\Freescale_MQX_4_1_Vybrid\mqx\examples\lwevent\lwevent.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attached is my modified test.c and BSP/user_config.h.&lt;/P&gt;&lt;P&gt;I tested on my TWR-VF65GS10 Rev G tower kit with TWR-SER card so that I could use the DB-9 serial interface to my terminal utility.&lt;/P&gt;&lt;P&gt;I am using ARM DS5 IDE and lasted Vybrid MQX as path shows above.&lt;/P&gt;&lt;P&gt;The project is running test_twrvf65gs10_m4 on the Cortex M4 code and not the Cortex A5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each pass of the code will first call "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = _lwevent_test(&amp;amp;error_ptr, &amp;amp;error2_ptr);" .&lt;/P&gt;&lt;P&gt;The test will check the lwevent queues so if you step into you can see that process.&lt;/P&gt;&lt;P&gt;The code will add lwevent as loop_cnt grows: if (_lwevent_create(&amp;amp;lwevent_array[loop_cnt],0) != MQX_OK)&lt;/P&gt;&lt;P&gt;Using DS5 I can see the OS Data Lightweight Events "Event Group*" grow as well.&lt;/P&gt;&lt;P&gt;After creating 11 new lwevents, the loop_cnt will decrement to 0 each loop and during that portion of the code we destroy lwevents.&lt;/P&gt;&lt;P&gt;Reference: if (_lwevent_destroy(&amp;amp;lwevent_array[loop_cnt]) != MQX_OK) &lt;/P&gt;&lt;P&gt;Stepping into the create and destroy code show how the queue process is being implemented.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Terminal Output:&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 0&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 1&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 2&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 3&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 4&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 5&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 6&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 7&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 8&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 9&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 10&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_create passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 10&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 9&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 8&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 7&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 6&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 5&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 4&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 3&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 2&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 1&lt;/P&gt;&lt;P&gt;_lwevent_test passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_destroy passed...&amp;nbsp;&amp;nbsp;&amp;nbsp; All tests passed with loop_cnt = 0&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;David &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Apr 2015 15:24:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453997#M15263</guid>
      <dc:creator>DavidS</dc:creator>
      <dc:date>2015-04-30T15:24:07Z</dc:date>
    </item>
    <item>
      <title>Re: Queue Data Struct</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453998#M15264</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Interesting. This is the MQX_CORRUPT_QUEUE error code.&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Perhaps the _queue_enqueue cannot handle re-using the same element each time. The QUEUE_ELEMENT_STRUCT pointers are getting mangled in your for loop, here:&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _queue_enqueue( &amp;amp;drive_ptr-&amp;gt;HANDLE_LIST, (QUEUE_ELEMENT_STRUCT_PTR) handle_ptr);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px;"&gt;Can you make hp an array of 10 elements, and change handle_ptr = hp[i]; on each loop?&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px;"&gt;Cheers,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px;"&gt;+Joel.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Apr 2015 16:13:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453998#M15264</guid>
      <dc:creator>theJoel</dc:creator>
      <dc:date>2015-04-30T16:13:10Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Queue Data Struct</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453999#M15265</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Joel and David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was trying to understand the David's approach when Joel unveiled the problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David, thank you very much for your help but I think MQX needs a better documentation - where are the error codes of '_queue_test()'? A little and silly example will be very appreciated to.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joel, thank you for helping to understand the David's approach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards,&lt;/P&gt;&lt;P&gt;Sandro&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Apr 2015 18:26:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Queue-Data-Struct/m-p/453999#M15265</guid>
      <dc:creator>sandrobastos</dc:creator>
      <dc:date>2015-04-30T18:26:40Z</dc:date>
    </item>
  </channel>
</rss>

