<?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>LPC MicrocontrollersのトピックLPCUSBLib Generic HID ROM Driver Bugs</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525298#M7934</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by neilt6 on Wed Jul 17 14:19:32 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I've just spent an enraging 2 full days trying to get a generic HID device to work properly on an LPC11U35 using the on-chip ROM drivers with LPCUSBLib... In that time I've encountered so many bugs, and glitches, and "things that make you go hmm", it's not even funny. Before I start ranting, I should mention I'm doing the same thing on an ATmega32U4 running LUFA (Which LPCUSBLib is based on), and it works just fine. I'll start from the beginning:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First I created a new workspace and imported the LPC11U14 USB examples. Compiled the GenericHID example unmodified, 14KB later, surprise it works, so I move on to enabling the ROM drivers. This is where the fun starts... The first thing I did was change device symbol on all the projects to __LPC11U2X_3X__, then I changed the MCU selection to LPC11U35/401, and finally changed USE_USB_ROM_STACK to 1, crossed my fingers, and hit Build. CRASH, BOOM, BANG, undefined reference to `Generic_HID_Interface'! Hmm... So I tried building the other examples, most of them failed, but the CDC example built ok. Turns out, Generic_HID_Interface has been declared "static"... So I fixed that, and now it builds and runs. Hooray I thought, progress! So I opened up HIDClient.exe, and starting spamming things. Sigh... The button report won't work... I scratched my head over this one for a while, and ended up comparing the example to the older one that came with nxpUSBlib. Turns out GenericReport, DeviceDescriptor, and ConfigurationDescriptor are supposed to be "const"... So I changed those in Descriptors.c, and UsbRom.c, rebuilt, and tried it again. This time everything seemed to work, or so I thought. This is where things start getting really weird... The ATmega32U4 I'm replacing is using 64 byte reports, so I changed GENERIC_EPSIZE, and GENERIC_REPORT_SIZE to 64 in Descriptors.h, and rebuilt. Windows no longer receives the product string! Instead, HIDClient.exe lists it as "Device 1". Both reports still work though, so I rebuilt it using the software drivers. Windows now recognizes the product string, but the LED report no longer works, or at least, not all the time... And that's when I flipped the table over (figuratively speaking of course), and came here for help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So the question is, what exactly am I doing wrong? Why have I had to make so many changes to the example just to get it to run properly, and how do I fix this new issue?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 16:52:58 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T16:52:58Z</dc:date>
    <item>
      <title>LPCUSBLib Generic HID ROM Driver Bugs</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525298#M7934</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by neilt6 on Wed Jul 17 14:19:32 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I've just spent an enraging 2 full days trying to get a generic HID device to work properly on an LPC11U35 using the on-chip ROM drivers with LPCUSBLib... In that time I've encountered so many bugs, and glitches, and "things that make you go hmm", it's not even funny. Before I start ranting, I should mention I'm doing the same thing on an ATmega32U4 running LUFA (Which LPCUSBLib is based on), and it works just fine. I'll start from the beginning:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First I created a new workspace and imported the LPC11U14 USB examples. Compiled the GenericHID example unmodified, 14KB later, surprise it works, so I move on to enabling the ROM drivers. This is where the fun starts... The first thing I did was change device symbol on all the projects to __LPC11U2X_3X__, then I changed the MCU selection to LPC11U35/401, and finally changed USE_USB_ROM_STACK to 1, crossed my fingers, and hit Build. CRASH, BOOM, BANG, undefined reference to `Generic_HID_Interface'! Hmm... So I tried building the other examples, most of them failed, but the CDC example built ok. Turns out, Generic_HID_Interface has been declared "static"... So I fixed that, and now it builds and runs. Hooray I thought, progress! So I opened up HIDClient.exe, and starting spamming things. Sigh... The button report won't work... I scratched my head over this one for a while, and ended up comparing the example to the older one that came with nxpUSBlib. Turns out GenericReport, DeviceDescriptor, and ConfigurationDescriptor are supposed to be "const"... So I changed those in Descriptors.c, and UsbRom.c, rebuilt, and tried it again. This time everything seemed to work, or so I thought. This is where things start getting really weird... The ATmega32U4 I'm replacing is using 64 byte reports, so I changed GENERIC_EPSIZE, and GENERIC_REPORT_SIZE to 64 in Descriptors.h, and rebuilt. Windows no longer receives the product string! Instead, HIDClient.exe lists it as "Device 1". Both reports still work though, so I rebuilt it using the software drivers. Windows now recognizes the product string, but the LED report no longer works, or at least, not all the time... And that's when I flipped the table over (figuratively speaking of course), and came here for help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So the question is, what exactly am I doing wrong? Why have I had to make so many changes to the example just to get it to run properly, and how do I fix this new issue?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:52:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525298#M7934</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:52:58Z</dc:date>
    </item>
    <item>
      <title>Re: LPCUSBLib Generic HID ROM Driver Bugs</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525299#M7935</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by neilt6 on Wed Jul 17 15:26:06 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: neilt6&lt;/STRONG&gt;&lt;BR /&gt;I've just spent an enraging 2 full days trying to get a generic HID device to work properly on an LPC11U35 using the on-chip ROM drivers with LPCUSBLib... In that time I've encountered so many bugs, and glitches, and "things that make you go hmm", it's not even funny. Before I start ranting, I should mention I'm doing the same thing on an ATmega32U4 running LUFA (Which LPCUSBLib is based on), and it works just fine. I'll start from the beginning:&lt;BR /&gt;&lt;BR /&gt;First I created a new workspace and imported the LPC11U14 USB examples. Compiled the GenericHID example unmodified, 14KB later, surprise it works, so I move on to enabling the ROM drivers. This is where the fun starts... The first thing I did was change device symbol on all the projects to __LPC11U2X_3X__, then I changed the MCU selection to LPC11U35/401, and finally changed USE_USB_ROM_STACK to 1, crossed my fingers, and hit Build. CRASH, BOOM, BANG, undefined reference to `Generic_HID_Interface'! Hmm... So I tried building the other examples, most of them failed, but the CDC example built ok. Turns out, Generic_HID_Interface has been declared "static"... So I fixed that, and now it builds and runs. Hooray I thought, progress! So I opened up HIDClient.exe, and starting spamming things. Sigh... The button report won't work... I scratched my head over this one for a while, and ended up comparing the example to the older one that came with nxpUSBlib. Turns out GenericReport, DeviceDescriptor, and ConfigurationDescriptor are supposed to be "const"... So I changed those in Descriptors.c, and UsbRom.c, rebuilt, and tried it again. This time everything seemed to work, or so I thought. This is where things start getting really weird... The ATmega32U4 I'm replacing is using 64 byte reports, so I changed GENERIC_EPSIZE, and GENERIC_REPORT_SIZE to 64 in Descriptors.h, and rebuilt. Windows no longer receives the product string! Instead, HIDClient.exe lists it as "Device 1". Both reports still work though, so I rebuilt it using the software drivers. Windows now recognizes the product string, but the LED report no longer works, or at least, not all the time... And that's when I flipped the table over (figuratively speaking of course), and came here for help.&lt;BR /&gt;&lt;BR /&gt;So the question is, what exactly am I doing wrong? Why have I had to make so many changes to the example just to get it to run properly, and how do I fix this new issue?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It gets more interesting... I Just noticed that in the nxpUSBlib example, StringDescriptor was also "const", so I changed it in the LPCOpen example. Now the product string is received correctly, but the code hard faults as soon as it runs:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;if (memcmp(&amp;amp;report, Generic_HID_Interface.Config.PrevReportINBuffer, Generic_HID_Interface.Config.PrevReportINBufferSize))&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Interesting... So I dumped the "const" on StringDescriptor, and rebuilt with the whole "#if defined(USB_DEVICE_ROM_DRIVER)" block commented out of main. The product string now comes through...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:52:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525299#M7935</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:52:59Z</dc:date>
    </item>
    <item>
      <title>Re: LPCUSBLib Generic HID ROM Driver Bugs</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525300#M7936</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by neilt6 on Fri Jul 19 07:59:51 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Well, after stepping through the library code several times I'm still clueless as to why this is hard faulting on memcmp(). nxpUSBlib v0.98 doesn't appear to have the same problem, but when I step through it I don't notice any code differences. One thing that seemed odd is that both libraries only allocate 8 bytes for the HID driver, when a quick call to GetMemSize() specifies 56 bytes... Anyway, since I clearly can't rely on LPCUSBLib and nobody here seems eager to help me, I'm being forced to build my own library around the older ROM driver example code. Now I've just got a few questions about the ROM driver's memory model. For reference, I'm using an LPC11U35/401:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[list=1]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; [*]The examples just set mem_base and mem_size to the upper 4KB of RamLoc8, isn't it possible that the linker could put something there that the ROM drivers would clobber?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; [*]What's the 2KB of USB RAM at 0x20004000 used for? Is it used for endpoints only, or can I allocate memory for the drivers in there too?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/list]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:52:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525300#M7936</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:52:59Z</dc:date>
    </item>
    <item>
      <title>Re: LPCUSBLib Generic HID ROM Driver Bugs</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525301#M7937</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Tsuneo on Fri Jul 19 15:14:35 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;Anyway, since I clearly can't rely on LPCUSBLib and nobody here seems eager to help me&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Agree.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I never use LPCOpen for USB.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I look in LPCOpen, just when someone asks on it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;1. The examples just set mem_base and mem_size to the upper 4KB of RamLoc8, isn't it possible that the linker could put something there that the ROM drivers would clobber?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It's possible. The space should be reserved for the ROM driver by linker script (or IDE setting).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;2. What's the 2KB of USB RAM at 0x20004000 used for? Is it used for endpoints only, or can I allocate memory for the drivers in there too?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Though it has name "USB RAM", it isn't actually bound to USB. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;USB engine places endpoint status block on the RAM specified by EPLISTSTART register. The endpoint buffers are specified by DATABUFSTART (page address) and the offset field of endpoint status. These blocks are assigned to any RAM bank.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here are examples on HID ROM driver.&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
a) usb_param.mem_base = 0x10001000;
EPLISTSTART&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10001000
DATABUFSTART&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10000000
EPBUFCFG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x000003FC (BUF_SB = 0xFF: double buffer enabled)

USB EP Command/Status FIFO (at EPLISTSTART)
0x00 EP0OUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00400048(0x0x10001200 - buffer address)
0x04 EP0SETUP&amp;nbsp;&amp;nbsp; 0x00400049(0x0x10001240)
0x08 EP0IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00400048(0x0x10001200)
0x0C Reserved&amp;nbsp;&amp;nbsp; 0x40000000
0x10 EP1OUT_0&amp;nbsp;&amp;nbsp; 0x9004004C(0x0x10001300)
0x14 EP1OUT_1&amp;nbsp;&amp;nbsp; 0x8004004D(0x0x10001340)
0x18 EP1IN_0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0000004A(0x0x10001280)
0x1C EP1IN_1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0000004B(0x0x100012C0)

b) usb_param.mem_base = 0x20004000;
EPLISTSTART&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20004000
DATABUFSTART&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20000000
EPBUFCFG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x000003FC (BUF_SB = 0xFF: double buffer enabled)

USB EP Command/Status FIFO (at EPLISTSTART)
0x00 EP0OUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00400108(0x0x20004200 - buffer address)
0x04 EP0SETUP&amp;nbsp;&amp;nbsp; 0x00400109(0x0x20004240)
0x08 EP0IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00400108(0x0x20004200)
0x0C Reserved&amp;nbsp;&amp;nbsp; 0x40000000
0x10 EP1OUT_0&amp;nbsp;&amp;nbsp; 0x9004010C(0x0x20004300)
0x14 EP1OUT_1&amp;nbsp;&amp;nbsp; 0x8004010D(0x0x20004340)
0x18 EP1IN_0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0000010A(0x0x20004280)
0x1C EP1IN_1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0000010B(0x0x200042C0)
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Tsuneo&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:53:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525301#M7937</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:53:00Z</dc:date>
    </item>
    <item>
      <title>Re: LPCUSBLib Generic HID ROM Driver Bugs</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525302#M7938</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by neilt6 on Tue Jul 23 09:38:37 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Tsuneo&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;Anyway, since I clearly can't rely on LPCUSBLib and nobody here seems eager to help me&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;Agree.&lt;BR /&gt;I never use LPCOpen for USB.&lt;BR /&gt;I look in LPCOpen, just when someone asks on it.&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;1. The examples just set mem_base and mem_size to the upper 4KB of RamLoc8, isn't it possible that the linker could put something there that the ROM drivers would clobber?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;It's possible. The space should be reserved for the ROM driver by linker script (or IDE setting).&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;2. What's the 2KB of USB RAM at 0x20004000 used for? Is it used for endpoints only, or can I allocate memory for the drivers in there too?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;Though it has name "USB RAM", it isn't actually bound to USB. &lt;BR /&gt;USB engine places endpoint status block on the RAM specified by EPLISTSTART register. The endpoint buffers are specified by DATABUFSTART (page address) and the offset field of endpoint status. These blocks are assigned to any RAM bank.&lt;BR /&gt;&lt;BR /&gt;Here are examples on HID ROM driver.&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
a) usb_param.mem_base = 0x10001000;
EPLISTSTART&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10001000
DATABUFSTART&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10000000
EPBUFCFG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x000003FC (BUF_SB = 0xFF: double buffer enabled)

USB EP Command/Status FIFO (at EPLISTSTART)
0x00 EP0OUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00400048(0x0x10001200 - buffer address)
0x04 EP0SETUP&amp;nbsp;&amp;nbsp; 0x00400049(0x0x10001240)
0x08 EP0IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00400048(0x0x10001200)
0x0C Reserved&amp;nbsp;&amp;nbsp; 0x40000000
0x10 EP1OUT_0&amp;nbsp;&amp;nbsp; 0x9004004C(0x0x10001300)
0x14 EP1OUT_1&amp;nbsp;&amp;nbsp; 0x8004004D(0x0x10001340)
0x18 EP1IN_0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0000004A(0x0x10001280)
0x1C EP1IN_1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0000004B(0x0x100012C0)

b) usb_param.mem_base = 0x20004000;
EPLISTSTART&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20004000
DATABUFSTART&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20000000
EPBUFCFG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x000003FC (BUF_SB = 0xFF: double buffer enabled)

USB EP Command/Status FIFO (at EPLISTSTART)
0x00 EP0OUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00400108(0x0x20004200 - buffer address)
0x04 EP0SETUP&amp;nbsp;&amp;nbsp; 0x00400109(0x0x20004240)
0x08 EP0IN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00400108(0x0x20004200)
0x0C Reserved&amp;nbsp;&amp;nbsp; 0x40000000
0x10 EP1OUT_0&amp;nbsp;&amp;nbsp; 0x9004010C(0x0x20004300)
0x14 EP1OUT_1&amp;nbsp;&amp;nbsp; 0x8004010D(0x0x20004340)
0x18 EP1IN_0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0000010A(0x0x20004280)
0x1C EP1IN_1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0000010B(0x0x200042C0)
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;Tsuneo&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cool, thanks for the clarification! Anyway, I just discovered USBPort by DZX Designs while I was searching this site for more info. It's awesome! Just include the files, edit the string descriptors, and it goes. They've got a secondary bootloader as well that makes programmatic firmware updates really easy. I figured for the amount of time I've wasted on USB, $499 per product is nothing to complain about. This is what I'm going to recommend to people who're just looking for driverless communication from now on.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:53:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525302#M7938</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:53:01Z</dc:date>
    </item>
    <item>
      <title>Re: LPCUSBLib Generic HID ROM Driver Bugs</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525303#M7939</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ray@photosonix.com on Sun Oct 12 20:47:18 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Does anyone know of a case where the USB ROM for the LPC1347 was used successfully?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is a description available of how INIT sets up buffer pointers and buffers in the RAM assigned to the USB stack? The USB handle points to some possible buffer addresses, and there are lots of values stored there, but what WriteEP does won't work no matter how I try to correct the values INIT has left there. Before wasting more time I would like to get convinced that it can be made to work.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:53:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPCUSBLib-Generic-HID-ROM-Driver-Bugs/m-p/525303#M7939</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:53:01Z</dc:date>
    </item>
  </channel>
</rss>

