<?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のトピックMQX4.1: USB CDC stack memory allocation failure</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349052#M11255</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone have ever enabled USB CDC device on a MK20DX128VFM5 with 16KB RAM only? I run into memory allocation failure in MAX 4.1 k20d50m BSP usb\device\source\device\dev_main.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB_STATUS _usb_device_init&lt;BR /&gt;&amp;nbsp;&amp;nbsp; (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] the USB device controller to initialize */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct usb_dev_if_struct&amp;nbsp; *usb_if,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [OUT] the USB_USB_dev_initialize state structure */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _usb_device_handle&amp;nbsp;&amp;nbsp; *handle,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] number of endpoints to initialize */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mqx_uint&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; endpoints&lt;BR /&gt;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;{ /* Body */&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Initialize the USB interface. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (dev_if-&amp;gt;DEV_PREINIT != NULL)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;error = dev_if-&amp;gt;DEV_PREINIT((_usb_device_handle *) &amp;amp;usb_dev_ptr);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function call above ends up with a NULL usb_dev_ptr due to a ~3KB memory allocation failure. Since this model of K20 has only 16KB memory, I just want to know if it is feasible to bring up USB CDC stack on this chip.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Added some more details.&lt;/P&gt;&lt;P&gt;The exact failure place is in&amp;nbsp; usb\device\source\device\khci\khci_dev_main.c, where 2432 bytes of memory is allocated:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB_STATUS _usb_dci_usbfs_preinit&lt;BR /&gt;(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] the USB device handle */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _usb_device_handle&amp;nbsp; *handle_ptr&lt;BR /&gt;)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_KHCI_DEV_STATE_STRUCT_PTR usb_dev_ptr = (USB_KHCI_DEV_STATE_STRUCT_PTR) USB_mem_alloc_zero(sizeof(USB_KHCI_DEV_STATE_STRUCT));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KHCI_XD_STRUCT_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCRATCH_STRUCT_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp_scratch_ptr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mqx_uint j;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (NULL != usb_dev_ptr) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Allocate MAX_XDS_FOR_TR_CALLS */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;usb_dev_ptr-&amp;gt;G.XD_BASE = (XD_STRUCT_PTR) USB_mem_alloc_zero(sizeof(KHCI_XD_STRUCT) * MAX_XDS_FOR_TR_CALLS);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (usb_dev_ptr-&amp;gt;G.XD_BASE == NULL)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if DEV_DEBUG&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; printf("2 memalloc failed in _usb_device_init\n");&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; #endif&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 26 Sep 2014 05:51:48 GMT</pubDate>
    <dc:creator>huishao2</dc:creator>
    <dc:date>2014-09-26T05:51:48Z</dc:date>
    <item>
      <title>MQX4.1: USB CDC stack memory allocation failure</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349052#M11255</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone have ever enabled USB CDC device on a MK20DX128VFM5 with 16KB RAM only? I run into memory allocation failure in MAX 4.1 k20d50m BSP usb\device\source\device\dev_main.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB_STATUS _usb_device_init&lt;BR /&gt;&amp;nbsp;&amp;nbsp; (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] the USB device controller to initialize */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct usb_dev_if_struct&amp;nbsp; *usb_if,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [OUT] the USB_USB_dev_initialize state structure */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _usb_device_handle&amp;nbsp;&amp;nbsp; *handle,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] number of endpoints to initialize */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mqx_uint&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; endpoints&lt;BR /&gt;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;{ /* Body */&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Initialize the USB interface. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (dev_if-&amp;gt;DEV_PREINIT != NULL)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;error = dev_if-&amp;gt;DEV_PREINIT((_usb_device_handle *) &amp;amp;usb_dev_ptr);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function call above ends up with a NULL usb_dev_ptr due to a ~3KB memory allocation failure. Since this model of K20 has only 16KB memory, I just want to know if it is feasible to bring up USB CDC stack on this chip.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Added some more details.&lt;/P&gt;&lt;P&gt;The exact failure place is in&amp;nbsp; usb\device\source\device\khci\khci_dev_main.c, where 2432 bytes of memory is allocated:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB_STATUS _usb_dci_usbfs_preinit&lt;BR /&gt;(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] the USB device handle */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _usb_device_handle&amp;nbsp; *handle_ptr&lt;BR /&gt;)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_KHCI_DEV_STATE_STRUCT_PTR usb_dev_ptr = (USB_KHCI_DEV_STATE_STRUCT_PTR) USB_mem_alloc_zero(sizeof(USB_KHCI_DEV_STATE_STRUCT));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KHCI_XD_STRUCT_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCRATCH_STRUCT_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp_scratch_ptr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mqx_uint j;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (NULL != usb_dev_ptr) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Allocate MAX_XDS_FOR_TR_CALLS */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt;usb_dev_ptr-&amp;gt;G.XD_BASE = (XD_STRUCT_PTR) USB_mem_alloc_zero(sizeof(KHCI_XD_STRUCT) * MAX_XDS_FOR_TR_CALLS);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (usb_dev_ptr-&amp;gt;G.XD_BASE == NULL)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if DEV_DEBUG&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; printf("2 memalloc failed in _usb_device_init\n");&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; #endif&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Sep 2014 05:51:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349052#M11255</guid>
      <dc:creator>huishao2</dc:creator>
      <dc:date>2014-09-26T05:51:48Z</dc:date>
    </item>
    <item>
      <title>Re: MQX4.1: USB CDC stack memory allocation failure</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349053#M11256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I got this resolved by disabling unused components from user_config.h and the code that are used for previous k20 project. Now the memory allocation seems to be OK for the tight 16KB RAM. But my CDC device still doesn't get enumerated on PC, will start a new thread for the question.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Sep 2014 21:50:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349053#M11256</guid>
      <dc:creator>huishao2</dc:creator>
      <dc:date>2014-09-26T21:50:12Z</dc:date>
    </item>
    <item>
      <title>Re: MQX4.1: USB CDC stack memory allocation failure</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349054#M11257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Hui Shao,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for share your solution,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards &lt;/P&gt;&lt;P&gt;Sol&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Sep 2014 22:48:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349054#M11257</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2014-09-30T22:48:23Z</dc:date>
    </item>
    <item>
      <title>Re: MQX4.1: USB CDC stack memory allocation failure</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349055#M11258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sol&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Actually my USB device also gets enumerates successfully. The Freescale INF file for Windows had been installed for previous project, that is why Windows doesn't prompt for a new hardware found during USB attachment. It simply shows one more COM port in Device Manager which was overlooked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hui&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Sep 2014 22:55:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/MQX4-1-USB-CDC-stack-memory-allocation-failure/m-p/349055#M11258</guid>
      <dc:creator>huishao2</dc:creator>
      <dc:date>2014-09-30T22:55:53Z</dc:date>
    </item>
  </channel>
</rss>

