<?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>MQX Software SolutionsのトピックRe: ESDHC Timeout Error</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763187#M17802</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From reading the MQX reference manual, user's guide, and comments within the code, the lwevent waits for the events to be set, OR&amp;nbsp;the timeout based on the tick value.&amp;nbsp; If a tick of 0 is give, the task will wait indefinitely for the lwevent bits to be set.&amp;nbsp; So, the code is waiting for the event bits to be set, OR the timeout in ticks specified by ESDHC_CMD12_TIMEOUT_TICKS.&amp;nbsp; This time is the MAXIMUM number of ticks to wait for the event bits to be set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If a timeout does occur, _lwevent_wait...() returns&amp;nbsp;LWEVENT_WAIT_TIMEOUT.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the specified lw_event bits were set before the timeout, the _lwevent_wait...() function will return MQX_OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From lwevent.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/*!
 * \brief Used by a task to wait for the event for the number of ticks.
 *
 * \param[in] event_ptr Pointer to the lightweight event.
 * \param[in] bit_mask Bit mask. Each set bit represents an event bit to wait for.
 * \param[in] all TRUE (wait for all bits in bit_mask to be set),
 * FALSE (wait for any bit in bit_mask to be set).
 * \param[in] timeout_in_ticks The maximum number of ticks to wait for the events
 * to be set. If the value is 0, then the timeout will be infinite.
 *
 * \return MQX_OK
 * \return LWEVENT_WAIT_TIMEOUT (The time elapsed before an event signalled.)
 * \return MQX_LWEVENT_INVALID (Lightweight event is no longer valid or was never
 * valid.)
 * \return MQX_CANNOT_CALL_FUNCTION_FROM_ISR (Function cannot be called from an ISR.)
 *
 * \see _lwevent_create
 * \see _lwevent_destroy
 * \see _lwevent_set
 * \see _lwevent_set_auto_clear
 * \see _lwevent_clear
 * \see _lwevent_wait_for
 * \see _lwevent_wait_until
 * \see _lwevent_get_signalled
 * \see LWEVENT_STRUCT
 */&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like to know how the timeout values were chosen when the function was developed.&amp;nbsp; What SD card spec was used to determine these timeouts?&amp;nbsp; I am also failing to understand the commented values of the original timeouts, since the tick time default of 5 ms would not provide the timeout specified by the comment.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you show me an example of an SD specification that would give me enough information to choose these timeout values?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 11 Apr 2018 12:58:00 GMT</pubDate>
    <dc:creator>jschepler</dc:creator>
    <dc:date>2018-04-11T12:58:00Z</dc:date>
    <item>
      <title>ESDHC Timeout Error</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763185#M17800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using MQX for KSDK 1.3.0 on a K64F processor.&amp;nbsp; I am using the MFS file system and writing to an SD card.&amp;nbsp; I noticed a post mentioning there is a 32-bit / 64-bit issue and designed a simple test to evaluate the changes.&amp;nbsp; (See &lt;A _jive_internal="true" href="https://community.nxp.com/thread/452368" rel="nofollow noopener noreferrer" target="_blank"&gt;here&lt;/A&gt;) However, during this testing I noticed that writing to the SD card will fail because of a timeout.&amp;nbsp; I traced this timeout into esdhc.c and found it is the NIO_ETIMEDOUT error.&amp;nbsp; It seems to occur randomly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My test code for the issue is the following:&lt;/P&gt;&lt;P&gt;1. Create a new text file.&lt;/P&gt;&lt;P&gt;2. Write 1 KB of data into the file.&lt;/P&gt;&lt;P&gt;3. After 1024 Writes (1 MB), close the file.&lt;/P&gt;&lt;P&gt;4. Open the same file, seek to the end.&lt;/P&gt;&lt;P&gt;5. Perform steps 2 - 4 until I write 1 GB to the file.&lt;/P&gt;&lt;P&gt;6. After 1 GB has been written, close the current file and create a new one. Repeat steps 2-4 until 8 files have been created. (We are using a 16 GB card)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The error occurs when I write to the file.&amp;nbsp; The section of code it fails on is the following in esdhc.c (~line 1795):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;PRE&gt;/* Wait for transfer to complete. Timeout depends on number of blocks. */
 if (_lwevent_wait_ticks(&amp;amp;esdhc_device_ptr-&amp;gt;LWEVENT, (ESDHC_LWEVENT_TRANSFER_DONE | ESDHC_LWEVENT_TRANSFER_ERROR), FALSE, /*(esdhc_device_ptr-&amp;gt;BUFFERED_CMD.BLOCKS &amp;gt; 1)? */ ESDHC_CMD12_TICK_TIMEOUT /*: ESDHC_CMD_TICK_TIMEOUT*/) != MQX_OK)
 {
&amp;nbsp;&amp;nbsp; if (error)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *error = NIO_ETIMEDOUT;
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; return -1;
 }&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;The event timeout value used is&amp;nbsp;ESDHC_CMD12_TICK_TIMEOUT.&amp;nbsp; I found the following definition in esdhc_prv.h:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;PRE&gt;#define ESDHC_CMD_TICK_TIMEOUT 20 // 40ms?
#define ESDHC_CMD12_TICK_TIMEOUT 200 //500ms
#define ESDHC_TRANSFER_TIMEOUT_MS 750 //750ms&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I am confused on the comments of these defines.&amp;nbsp;&amp;nbsp;A tick timeout of 200 would only be 500 ms if the tick time was set to 2.5 ms.&amp;nbsp; I think the default tick time for the K64F processor is 5 ms.&amp;nbsp; So 200 * 5 = 1 second timeout.&amp;nbsp; I have re-defined the tick time for my application to be 1 ms.&amp;nbsp; So the timeout value is actually 200 ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The data is setup to transfer via ADMA a couple of lines before we wait for it to complete.&amp;nbsp; I added some code in this area to provide feedback on the amount of time it takes to transfer the data to the SD card.&amp;nbsp; I found that ~ every 400 writes to the SD card it would take &amp;gt; 10 ms for the write to complete. All other transfers took less than 10 ms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, occasionally it takes longer than 200 ms to complete the transfer, and the write fails.&amp;nbsp; I have seen this happen when writing the 87th MB to the file all the way up to the 500th MB.&amp;nbsp; I have yet to be able to complete all writes to the first file without this timeout occurring.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can there be so much variability in the time it takes to transfer the data?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How was the value of the CMD12 tick timeout assigned?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What should the timeout value, in milliseconds, be for the CMD12 and CMD timeouts?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Apr 2018 14:09:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763185#M17800</guid>
      <dc:creator>jschepler</dc:creator>
      <dc:date>2018-04-04T14:09:46Z</dc:date>
    </item>
    <item>
      <title>Re: ESDHC Timeout Error</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763186#M17801</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&amp;nbsp; &lt;A _jive_internal="true" class="" data-content-finding="Community" data-userid="230295" data-username="jschepler" href="https://community.nxp.com/people/jschepler"&gt;jschepler&lt;/A&gt;:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;_lwevent_wait_ticks is a block function, which puts the calling task to the timeout queue. When timeout exceeds for the task (measured by the BSP tick timer, 5ms period timer interrupt)&amp;nbsp; the task is put back to ready queue. Then RTOS scheduler runs and selects next active task to run depending on scheduling rules.&amp;nbsp;&amp;nbsp; It depends on what are other ready tasks at the moment and their priorities and what interrupts are running at the moment.&lt;/P&gt;&lt;P&gt;&amp;nbsp;_lwevent_wait_ticks is specified to gurantee minimum time, not maximum. Maximum depends on the application. That is normal RTOS behaviour.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regarding how to assign the right tick timeout value, I would suggest you check the sd card spec. You can modify the macros according to your requirements.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Daniel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer or helpful. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Apr 2018 06:03:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763186#M17801</guid>
      <dc:creator>danielchen</dc:creator>
      <dc:date>2018-04-11T06:03:43Z</dc:date>
    </item>
    <item>
      <title>Re: ESDHC Timeout Error</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763187#M17802</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From reading the MQX reference manual, user's guide, and comments within the code, the lwevent waits for the events to be set, OR&amp;nbsp;the timeout based on the tick value.&amp;nbsp; If a tick of 0 is give, the task will wait indefinitely for the lwevent bits to be set.&amp;nbsp; So, the code is waiting for the event bits to be set, OR the timeout in ticks specified by ESDHC_CMD12_TIMEOUT_TICKS.&amp;nbsp; This time is the MAXIMUM number of ticks to wait for the event bits to be set.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If a timeout does occur, _lwevent_wait...() returns&amp;nbsp;LWEVENT_WAIT_TIMEOUT.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the specified lw_event bits were set before the timeout, the _lwevent_wait...() function will return MQX_OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From lwevent.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/*!
 * \brief Used by a task to wait for the event for the number of ticks.
 *
 * \param[in] event_ptr Pointer to the lightweight event.
 * \param[in] bit_mask Bit mask. Each set bit represents an event bit to wait for.
 * \param[in] all TRUE (wait for all bits in bit_mask to be set),
 * FALSE (wait for any bit in bit_mask to be set).
 * \param[in] timeout_in_ticks The maximum number of ticks to wait for the events
 * to be set. If the value is 0, then the timeout will be infinite.
 *
 * \return MQX_OK
 * \return LWEVENT_WAIT_TIMEOUT (The time elapsed before an event signalled.)
 * \return MQX_LWEVENT_INVALID (Lightweight event is no longer valid or was never
 * valid.)
 * \return MQX_CANNOT_CALL_FUNCTION_FROM_ISR (Function cannot be called from an ISR.)
 *
 * \see _lwevent_create
 * \see _lwevent_destroy
 * \see _lwevent_set
 * \see _lwevent_set_auto_clear
 * \see _lwevent_clear
 * \see _lwevent_wait_for
 * \see _lwevent_wait_until
 * \see _lwevent_get_signalled
 * \see LWEVENT_STRUCT
 */&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like to know how the timeout values were chosen when the function was developed.&amp;nbsp; What SD card spec was used to determine these timeouts?&amp;nbsp; I am also failing to understand the commented values of the original timeouts, since the tick time default of 5 ms would not provide the timeout specified by the comment.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you show me an example of an SD specification that would give me enough information to choose these timeout values?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Apr 2018 12:58:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763187#M17802</guid>
      <dc:creator>jschepler</dc:creator>
      <dc:date>2018-04-11T12:58:00Z</dc:date>
    </item>
    <item>
      <title>Re: ESDHC Timeout Error</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763188#M17803</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Our hardware uses an SDCard that is inserted into the board at production time and will never be taken out.&amp;nbsp; (It is inside an enclosure and not visible to the customer)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each board uses the same manufacturer and part number for the SD card.&amp;nbsp; Knowing this, I looked up the data sheet for the part number and did not see any information related to timeouts.&amp;nbsp; I then contacted the manufacturer and asked them to provide me with the specification document.&amp;nbsp; I explained that I was writing embedded software which must interface with the card and I needed to know timeout values.&amp;nbsp; I am now waiting for them to send me the document.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I searched online for example SDHC spec documents and found one.&amp;nbsp; In the document, they have a table that defines suggested maximum timeout values for waiting for a command response, reading data after issuing a command, and a busy status change.&amp;nbsp; I expect the document provided by the manufacturer for the SD cards we use to provide the same information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also will change the #defines for timeouts to be dependent on the BSP_ALARM_FREQ.&amp;nbsp; I do not understand how the timeouts were allowed to be defined without dependence on this value.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;The SD manufacturer should provide this timeout in seconds or milliseconds, so I will create two additional #defines:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="property macro token"&gt;#define ESDHC_CMD_DATASHT_TIMEOUT_MS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;// Desired timeout in ms&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define ESDHC_CMD12_DATASHT_TIMEOUT_MS&amp;nbsp;&amp;nbsp; 1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="comment token"&gt;// Desired timeout in ms‍‍&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will then calculate the number of milliseconds per tick based on BSP_ALARM_FREQ, which is defined in bsp_config.h:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="property macro token"&gt;#define ESDHC_MS_PER_TICK&amp;nbsp;&amp;nbsp; ((1000) / BSP_ALARM_FREQ)&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will then change the TICK timeout defines to be dependent upon the tick time:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="property macro token"&gt;#define ESDHC_CMD_TICK_TIMEOUT&amp;nbsp;&amp;nbsp;&amp;nbsp; ((ESDHC_CMD_DATSHT_TIMEOUT_MS) / ESDHC_MS_PER_TICK)&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define ESDHC_CMD12_TICK_TIMEOUT&amp;nbsp; ((ESDHC_CMD12_DATASHT_TIMEOUT_MS) / ESDHC_MS_PER_TICK)‍‍‍‍‍‍&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Apr 2018 12:55:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/ESDHC-Timeout-Error/m-p/763188#M17803</guid>
      <dc:creator>jschepler</dc:creator>
      <dc:date>2018-04-13T12:55:27Z</dc:date>
    </item>
  </channel>
</rss>

