<?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のトピックRe: LPC4337 and programming flash in work(IAP)</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4337-and-programming-flash-in-work-IAP/m-p/587248#M21576</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by bavarian on Thu Apr 03 02:37:30 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;If you search for "IAP" on this site you get several threads which explain one or the other problem with IAP in more detail. IAP is similar over most of our MCU families.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Application notes for specific MCUs can be found here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://http://www.lpcware.com/content/nxpfile/an11511-lpc11u6x-application-programming"&gt;http://www.lpcware.com/content/nxpfile/an11511-lpc11u6x-application-programming&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://http://www.lpcware.com/content/nxpfile/an11388-using-lpc800-application-programming"&gt;http://www.lpcware.com/content/nxpfile/an11388-using-lpc800-application-programming&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://http://www.lpcware.com/content/nxpfile/an11387-application-programming-lpc11axx"&gt;http://www.lpcware.com/content/nxpfile/an11387-application-programming-lpc11axx&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You need to place the stuff you want/need to change in its own flash sector, because you can only erase/program on sectors.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NXP Support Team&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:12:14 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:12:14Z</dc:date>
    <item>
      <title>LPC4337 and programming flash in work(IAP)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4337-and-programming-flash-in-work-IAP/m-p/587247#M21575</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by snovik on Wed Apr 02 23:45:43 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 do realization card reader through usb.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In the process work, I need to change the data in the firmware (usb descriptors). I understand this is done through the IAP (In-Application Programming).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;How do I do this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Example of what needs to change:&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;
USB_Descriptor_Device_t MassStorageDeviceDescriptor = {
.Header&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; = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},

.USBSpecification&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = VERSION_BCD(02.00),
.Class&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; = USB_CSCP_NoDeviceClass,
.SubClass&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; = USB_CSCP_NoDeviceSubclass,
.Protocol&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; = USB_CSCP_NoDeviceProtocol,

.Endpoint0Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = FIXED_CONTROL_ENDPOINT_SIZE,

.VendorID&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; = 0x1111,/* TEST!!! */
.ProductID&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; = 0x2222,
.ReleaseNumber&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = VERSION_BCD(01.00),

.ManufacturerStrIndex&amp;nbsp;&amp;nbsp; = 0x01,
.ProductStrIndex&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x02,
.SerialNumStrIndex&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = USE_INTERNAL_SERIAL,

.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
};


/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests
 *&amp;nbsp; the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate
 *&amp;nbsp; via the language ID table available at USB.org what languages the device supports for its string descriptors.
 */
uint8_t MassStorageLanguageString[] = {
USB_STRING_LEN(1),
DTYPE_String,
WBVAL(LANGUAGE_ID_ENG),
};
USB_Descriptor_String_t *MassStorageLanguageStringPtr = (USB_Descriptor_String_t *) MassStorageLanguageString;

/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable
 *&amp;nbsp; form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
 *&amp;nbsp; Descriptor.
 */
uint8_t MassStorageManufacturerString[] = {
USB_STRING_LEN(3),
DTYPE_String,
WBVAL('T'),
WBVAL('T'),
WBVAL('T'),
};
USB_Descriptor_String_t *MassStorageManufacturerStringPtr = (USB_Descriptor_String_t *) MassStorageManufacturerString;

/** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
 *&amp;nbsp; and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
 *&amp;nbsp; Descriptor.
 */
uint8_t MassStorageProductString[] = {
USB_STRING_LEN(21),
DTYPE_String,
WBVAL('T'),
WBVAL('T'),
WBVAL('T'),
WBVAL(' '),
WBVAL('M'),
WBVAL('a'),
WBVAL('s'),
WBVAL('s'),
WBVAL(' '),
WBVAL('S'),
WBVAL('t'),
WBVAL('o'),
WBVAL('r'),
WBVAL('a'),
WBVAL('g'),
WBVAL('e'),
WBVAL(' '),
WBVAL('D'),
WBVAL('e'),
WBVAL('m'),
WBVAL('o'),
};
USB_Descriptor_String_t *MassStorageProductStringPtr = (USB_Descriptor_String_t *) MassStorageProductString;
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:12:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4337-and-programming-flash-in-work-IAP/m-p/587247#M21575</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:12:13Z</dc:date>
    </item>
    <item>
      <title>Re: LPC4337 and programming flash in work(IAP)</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4337-and-programming-flash-in-work-IAP/m-p/587248#M21576</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by bavarian on Thu Apr 03 02:37:30 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;If you search for "IAP" on this site you get several threads which explain one or the other problem with IAP in more detail. IAP is similar over most of our MCU families.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Application notes for specific MCUs can be found here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://http://www.lpcware.com/content/nxpfile/an11511-lpc11u6x-application-programming"&gt;http://www.lpcware.com/content/nxpfile/an11511-lpc11u6x-application-programming&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://http://www.lpcware.com/content/nxpfile/an11388-using-lpc800-application-programming"&gt;http://www.lpcware.com/content/nxpfile/an11388-using-lpc800-application-programming&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://http://www.lpcware.com/content/nxpfile/an11387-application-programming-lpc11axx"&gt;http://www.lpcware.com/content/nxpfile/an11387-application-programming-lpc11axx&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You need to place the stuff you want/need to change in its own flash sector, because you can only erase/program on sectors.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NXP Support Team&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:12:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC4337-and-programming-flash-in-work-IAP/m-p/587248#M21576</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:12:14Z</dc:date>
    </item>
  </channel>
</rss>

