<?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 USB device code for LPC15xx on Keil MDK4 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/USB-device-code-for-LPC15xx-on-Keil-MDK4/m-p/513491#M197</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by aykutkes on Mon Jul 21 02:42:49 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can't find any sample project about using USB for LPC15xx on keil MDK4. I've been try to complie sample project written for lpcespresso ( usbd_rom_hid_generic) on my MDK4 but it does'nt work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anybody can help me?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There is a start code running after reset and there is some definitons coming from Linker. And i couldn't find equvilants on MDK4.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The definitions are;&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;extern unsigned int __data_section_table;
extern unsigned int __data_section_table_end;
extern unsigned int __bss_section_table;
extern unsigned int __bss_section_table_end;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code is;&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;
//*****************************************************************************
// Functions to carry out the initialization of RW and BSS data sections. These
// are written as separate functions rather than being inlined within the
// ResetISR() function in order to cope with MCUs with multiple banks of
// memory.
//*****************************************************************************
__attribute__ ((section(".after_vectors")))
void data_init(unsigned int romstart, unsigned int start, unsigned int len) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int *pulDest = (unsigned int*) start;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int *pulsrc=(unsigned int*) romstart;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int loop;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (loop = 0; loop &amp;lt; len; loop = loop + 4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *pulDest++ = *pulSrc++;
}

__attribute__ ((section(".after_vectors")))
void bss_init(unsigned int start, unsigned int len) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int *pulDest = (unsigned int*) start;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int loop;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (loop = 0; loop &amp;lt; len; loop = loop + 4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *pulDest++ = 0;
}

//*****************************************************************************
// The following symbols are constructs generated by the linker, indicating
// the location of various points in the "Global Section Table". This table is
// created by the linker via the Code Red managed linker script mechanism. It
// contains the load address, execution address and length of each RW data
// section and the execution and length of each BSS (zero initialized) section.
//*****************************************************************************
extern unsigned int __data_section_table;
extern unsigned int __data_section_table_end;
extern unsigned int __bss_section_table;
extern unsigned int __bss_section_table_end;


//*****************************************************************************
// Reset entry point for your code.
// Sets up a simple runtime environment and initializes the C/C++
// library.
//*****************************************************************************
__attribute__ ((section(".after_vectors")))
void
ResetISR(void) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Copy the data sections from flash to SRAM.
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int LoadAddr, ExeAddr, SectionLen;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int *SectionTableAddr;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Load base address of Global Section Table
&amp;nbsp;&amp;nbsp;&amp;nbsp; SectionTableAddr = &amp;amp;__data_section_table;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Copy the data sections from flash to SRAM.
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (SectionTableAddr &amp;lt; &amp;amp;__data_section_table_end) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoadAddr = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExeAddr = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectionLen = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data_init(LoadAddr, ExeAddr, SectionLen);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; // At this point, SectionTableAddr = &amp;amp;__bss_section_table;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Zero fill the bss segment
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (SectionTableAddr &amp;lt; &amp;amp;__bss_section_table_end) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExeAddr = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectionLen = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bss_init(ExeAddr, SectionLen);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
#if defined (__USE_CMSIS) || defined (__USE_LPCOPEN)
&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemInit();
#endif

#if defined (__cplusplus)
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Call C++ library initialisation
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; __libc_init_array();
#endif

#if defined (__REDLIB__)
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Call the Redlib library, which in turn calls main()
&amp;nbsp;&amp;nbsp;&amp;nbsp; __main() ;
#else
&amp;nbsp;&amp;nbsp;&amp;nbsp; main();
#endif

&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; // main() shouldn't return, but if it does, we'll just enter an infinite loop
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've found similiar code for MDK4 on internet. Looks like doing same job. But not work properly;&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;
extern unsigned int Load$$RW_IRAM1$$Base;
extern unsigned int Image$$RW_IRAM1$$RW$$Base;
extern unsigned int Image$$RW_IRAM1$$RW$$Length;
extern unsigned int Image$$RW_IRAM1$$ZI$$Base;
extern unsigned int Image$$RW_IRAM1$$ZI$$Length;

void&amp;nbsp; Prepare_Zero( unsigned int&amp;nbsp; * dst, unsigned int&amp;nbsp; len )
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(len)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *dst++ = 0;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len -= 4;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

void Prepare_Copy( unsigned int&amp;nbsp; * src, unsigned int&amp;nbsp; * dst, unsigned int&amp;nbsp; len )
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dst != src)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(len)
&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;&amp;nbsp;&amp;nbsp; *dst++ = *src++;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len -= 4;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

Prepare_Copy((unsigned int *)&amp;amp;Load$$RW_IRAM1$$Base,(unsigned int *)&amp;amp;Image$$RW_IRAM1$$RW$$Base,(unsigned int)&amp;amp;Image$$RW_IRAM1$$RW$$Length);
Prepare_Zero((unsigned int *)&amp;amp;Image$$RW_IRAM1$$ZI$$Base,(unsigned int)&amp;amp;Image$$RW_IRAM1$$ZI$$Length);
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can I find an USB HID code running on LPC15xx for MDK4 or a way to transfer lpcexpresso project to MDK4 ??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks to everybody...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:11:19 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:11:19Z</dc:date>
    <item>
      <title>USB device code for LPC15xx on Keil MDK4</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/USB-device-code-for-LPC15xx-on-Keil-MDK4/m-p/513491#M197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by aykutkes on Mon Jul 21 02:42:49 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I can't find any sample project about using USB for LPC15xx on keil MDK4. I've been try to complie sample project written for lpcespresso ( usbd_rom_hid_generic) on my MDK4 but it does'nt work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anybody can help me?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There is a start code running after reset and there is some definitons coming from Linker. And i couldn't find equvilants on MDK4.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The definitions are;&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;extern unsigned int __data_section_table;
extern unsigned int __data_section_table_end;
extern unsigned int __bss_section_table;
extern unsigned int __bss_section_table_end;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code is;&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;
//*****************************************************************************
// Functions to carry out the initialization of RW and BSS data sections. These
// are written as separate functions rather than being inlined within the
// ResetISR() function in order to cope with MCUs with multiple banks of
// memory.
//*****************************************************************************
__attribute__ ((section(".after_vectors")))
void data_init(unsigned int romstart, unsigned int start, unsigned int len) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int *pulDest = (unsigned int*) start;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int *pulsrc=(unsigned int*) romstart;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int loop;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (loop = 0; loop &amp;lt; len; loop = loop + 4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *pulDest++ = *pulSrc++;
}

__attribute__ ((section(".after_vectors")))
void bss_init(unsigned int start, unsigned int len) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int *pulDest = (unsigned int*) start;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int loop;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (loop = 0; loop &amp;lt; len; loop = loop + 4)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *pulDest++ = 0;
}

//*****************************************************************************
// The following symbols are constructs generated by the linker, indicating
// the location of various points in the "Global Section Table". This table is
// created by the linker via the Code Red managed linker script mechanism. It
// contains the load address, execution address and length of each RW data
// section and the execution and length of each BSS (zero initialized) section.
//*****************************************************************************
extern unsigned int __data_section_table;
extern unsigned int __data_section_table_end;
extern unsigned int __bss_section_table;
extern unsigned int __bss_section_table_end;


//*****************************************************************************
// Reset entry point for your code.
// Sets up a simple runtime environment and initializes the C/C++
// library.
//*****************************************************************************
__attribute__ ((section(".after_vectors")))
void
ResetISR(void) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Copy the data sections from flash to SRAM.
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int LoadAddr, ExeAddr, SectionLen;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int *SectionTableAddr;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Load base address of Global Section Table
&amp;nbsp;&amp;nbsp;&amp;nbsp; SectionTableAddr = &amp;amp;__data_section_table;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Copy the data sections from flash to SRAM.
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (SectionTableAddr &amp;lt; &amp;amp;__data_section_table_end) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoadAddr = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExeAddr = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectionLen = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data_init(LoadAddr, ExeAddr, SectionLen);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; // At this point, SectionTableAddr = &amp;amp;__bss_section_table;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Zero fill the bss segment
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (SectionTableAddr &amp;lt; &amp;amp;__bss_section_table_end) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExeAddr = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectionLen = *SectionTableAddr++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bss_init(ExeAddr, SectionLen);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
#if defined (__USE_CMSIS) || defined (__USE_LPCOPEN)
&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemInit();
#endif

#if defined (__cplusplus)
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Call C++ library initialisation
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; __libc_init_array();
#endif

#if defined (__REDLIB__)
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Call the Redlib library, which in turn calls main()
&amp;nbsp;&amp;nbsp;&amp;nbsp; __main() ;
#else
&amp;nbsp;&amp;nbsp;&amp;nbsp; main();
#endif

&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; // main() shouldn't return, but if it does, we'll just enter an infinite loop
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've found similiar code for MDK4 on internet. Looks like doing same job. But not work properly;&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;
extern unsigned int Load$$RW_IRAM1$$Base;
extern unsigned int Image$$RW_IRAM1$$RW$$Base;
extern unsigned int Image$$RW_IRAM1$$RW$$Length;
extern unsigned int Image$$RW_IRAM1$$ZI$$Base;
extern unsigned int Image$$RW_IRAM1$$ZI$$Length;

void&amp;nbsp; Prepare_Zero( unsigned int&amp;nbsp; * dst, unsigned int&amp;nbsp; len )
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(len)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *dst++ = 0;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len -= 4;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

void Prepare_Copy( unsigned int&amp;nbsp; * src, unsigned int&amp;nbsp; * dst, unsigned int&amp;nbsp; len )
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(dst != src)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(len)
&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;&amp;nbsp;&amp;nbsp; *dst++ = *src++;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len -= 4;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

Prepare_Copy((unsigned int *)&amp;amp;Load$$RW_IRAM1$$Base,(unsigned int *)&amp;amp;Image$$RW_IRAM1$$RW$$Base,(unsigned int)&amp;amp;Image$$RW_IRAM1$$RW$$Length);
Prepare_Zero((unsigned int *)&amp;amp;Image$$RW_IRAM1$$ZI$$Base,(unsigned int)&amp;amp;Image$$RW_IRAM1$$ZI$$Length);
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can I find an USB HID code running on LPC15xx for MDK4 or a way to transfer lpcexpresso project to MDK4 ??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks to everybody...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:11:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/USB-device-code-for-LPC15xx-on-Keil-MDK4/m-p/513491#M197</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:11:19Z</dc:date>
    </item>
  </channel>
</rss>

