<?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>Kinetis MicrocontrollersのトピックRe: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904699#M53136</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lothar,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please try using the following document? It is intended for KW36 but it should work for KW41Z.&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-342493"&gt;https://community.nxp.com/docs/DOC-342493&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Felipe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 May 2019 17:00:46 GMT</pubDate>
    <dc:creator>FelipeGarcia</dc:creator>
    <dc:date>2019-05-10T17:00:46Z</dc:date>
    <item>
      <title>FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904697#M53134</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I try to use the FRDM-KW41Z with the BLE OTAP client example and configure it to use the internal Flash for temporary storing the image sent over the air (Kinetis Thread Stack Over-the-Air (OTA) Firmware Update User’s Guide, Chapter 3 Software implementation) and&amp;nbsp; (BLEApplicationDevelopersGuide, Chapter11.7.2 The OTAP Client) . I can connect to the OTAP client using the IoT Toolbox. But when I start the upload the uploading stops at 9% and restart at 0% for several cycles. What can I do to get the OTAP client work with this configuration?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 May 2019 07:14:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904697#M53134</guid>
      <dc:creator>lschoenfeld</dc:creator>
      <dc:date>2019-05-08T07:14:31Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904698#M53135</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am implementing the same with&amp;nbsp;FRDM-KW36Z OTAP client internal storage eeprom device internal flash, and have the same issue. Firmware update restarts at 24 percent.&lt;/P&gt;&lt;P&gt;Also i found the progress bar of the&amp;nbsp; Firmware update is fake, even if the device is switched/powered off the App still shows connected and the progress bar increases to the percent last shown and starts again.&lt;/P&gt;&lt;P&gt;NXP please update this and stop misleading us.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 May 2019 12:51:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904698#M53135</guid>
      <dc:creator>pradnyachaudhar</dc:creator>
      <dc:date>2019-05-09T12:51:01Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904699#M53136</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lothar,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please try using the following document? It is intended for KW36 but it should work for KW41Z.&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-342493"&gt;https://community.nxp.com/docs/DOC-342493&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Felipe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 May 2019 17:00:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904699#M53136</guid>
      <dc:creator>FelipeGarcia</dc:creator>
      <dc:date>2019-05-10T17:00:46Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904700#M53137</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Felipe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the document describes the same thinks I did in KW41Z configuration. Sorry but that didn't help me. I tried to replace the Linker file. After building the application with the KW36 linker file I compare the memory configuration in the map file and I get totally confused. The Symbol&amp;nbsp;&lt;STRONG&gt;&lt;SPAN style="text-align: left; color: #3d3d3d; text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; word-spacing: 0px; display: inline !important; white-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; overflow-wrap: break-word; background-color: #ffffff;"&gt;_APP_START_&lt;/SPAN&gt; &lt;/STRONG&gt;is&lt;STRONG&gt;&amp;nbsp;&lt;SPAN style="text-align: left; color: #3d3d3d; text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; word-spacing: 0px; display: inline !important; white-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; overflow-wrap: break-word; background-color: #ffffff;"&gt;0x00000000&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="text-align: left; color: #3d3d3d; text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; word-spacing: 0px; display: inline !important; white-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; overflow-wrap: break-word; background-color: #ffffff;"&gt; and&amp;nbsp;&lt;STRONG style="-webkit-text-stroke-width: 0px; color: #3d3d3d; white-space: normal; letter-spacing: normal; text-decoration: none; display: inline !important; font-size: 15px; font-style: normal; float: none; overflow-wrap: break-word; background-color: #ffffff; text-transform: none; word-spacing: 0px; font-variant: normal; text-indent: 0px; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; orphans: 2; text-align: left; "&gt;__BootFlags_Start__&lt;/STRONG&gt; is&amp;nbsp;&lt;STRONG style="-webkit-text-stroke-width: 0px; color: #3d3d3d; white-space: normal; letter-spacing: normal; text-decoration: none; display: inline !important; font-size: 15px; font-style: normal; float: none; overflow-wrap: break-word; background-color: #ffffff; text-transform: none; word-spacing: 0px; font-variant: normal; text-indent: 0px; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; orphans: 2; text-align: left; "&gt;0x000020c0. &lt;/STRONG&gt;&lt;SPAN style="text-align: left; color: #3d3d3d; text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; word-spacing: 0px; display: inline !important; white-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; overflow-wrap: break-word; background-color: #ffffff;"&gt;How can this be? The Symbol&amp;nbsp;&lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;gUseBootloaderLink_d&lt;/SPAN&gt; is set to 1 in the MCUXpresso.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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; 0x00000400&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; HEAP_SIZE = DEFINED (__heap_size__)?__heap_size__:0x400&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000400&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; STACK_SIZE = DEFINED (__stack_size__)?__stack_size__:0x400&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000&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; M_VECTOR_RAM_SIZE = DEFINED (__ram_vector_table__)?0xc0:0x0&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1fffc000&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; _RAM_START_ = 0x1fffc000&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2000c000&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; _RAM_END_ = 0x2000c000&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000&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; _ROM_START_ = 0x0&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00080000&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; _ROM_END_ = 0x80000&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0007f800&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; FREESCALE_PROD_DATA_BASE_ADDR = 0x7f800&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000800&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; __sector_size__ = 0x800&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x000000c0&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; __vector_table_size__ = 0xc0&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;0x00000000&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; _APP_START_&lt;/STRONG&gt; = DEFINED (gUseBootloaderLink_d)?(_ROM_END_ / 0x40):_ROM_START_&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;0x000020c0&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; __BootFlags_Start__&lt;/STRONG&gt; = (_APP_START_ + __vector_table_size__)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000&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; __BootFlags_Size__ = DEFINED (gUseBootloaderLink_d)?0x20:0x0&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0007f800&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; NV_STORAGE_START_ADDRESS = FREESCALE_PROD_DATA_BASE_ADDR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000800&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; NV_STORAGE_SECTOR_SIZE = __sector_size__&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000004&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; NV_STORAGE_MAX_SECTORS = 0x4&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0007d800&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; NV_STORAGE_END_ADDRESS = (NV_STORAGE_START_ADDRESS - (NV_STORAGE_MAX_SECTORS * NV_STORAGE_SECTOR_SIZE))&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000800&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; INT_STORAGE_SECTOR_SIZE = NV_STORAGE_SECTOR_SIZE&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0007f800&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; INT_STORAGE_START = DEFINED (gUseNVMLink_d)?NV_STORAGE_END_ADDRESS:FREESCALE_PROD_DATA_BASE_ADDR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000&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; INT_STORAGE_SIZE = DEFINED (gUseInternalStorageLink_d)?(INT_STORAGE_SECTOR_SIZE * ((((INT_STORAGE_START - _APP_START_) / 0x2) / INT_STORAGE_SECTOR_SIZE) + 0x1)):0x0&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0003f800&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; INT_STORAGE_END = (INT_STORAGE_START - INT_STORAGE_SIZE)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000400&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; _FLASH_CONFIG_START_ = DEFINED (gUseBootloaderLink_d)?(__BootFlags_Start__ + __BootFlags_Size__):0x400&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000010&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; _FLASH_CONFIG_SIZE_ = 0x10&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x000020f0&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; _TEXT_START_ = (_FLASH_CONFIG_START_ + _FLASH_CONFIG_SIZE_)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0007f800&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; _TEXT_END_ = DEFINED (gUseNVMLink_d)?NV_STORAGE_END_ADDRESS:FREESCALE_PROD_DATA_BASE_ADDR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Second:&lt;/P&gt;&lt;P&gt;I tried to update the &lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #51626f; font-family: inherit; font-size: 100%; font-style: inherit; font-variant: normal; font-weight: inherit; letter-spacing: normal; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;FRDM-KW41Z&lt;/SPAN&gt; using the NXP Test Tool 12 with a&amp;nbsp;&lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #51626f; font-family: inherit; font-size: 100%; font-style: inherit; font-variant: normal; font-weight: inherit; letter-spacing: normal; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;FRDM-KW41Z&lt;/SPAN&gt; Server module. In this case I can do the OTAP Update. So the problem isn't the configuration of the&amp;nbsp;&lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #51626f; font-family: inherit; font-size: 100%; font-style: inherit; font-variant: normal; font-weight: inherit; letter-spacing: normal; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;FRDM-KW41Z&lt;/SPAN&gt; Client it is the iOS IoT OTAP application. Please be so kind and do some test bevor replay to my request.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 May 2019 07:44:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904700#M53137</guid>
      <dc:creator>lschoenfeld</dc:creator>
      <dc:date>2019-05-14T07:44:57Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904701#M53138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lothar,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This issue has been confirmed as an error in the OTAP example when using internal flash. It has been reported internally so it can be fixed for next releases. Thanks for your comments.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Felipe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 May 2019 21:00:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904701#M53138</guid>
      <dc:creator>FelipeGarcia</dc:creator>
      <dc:date>2019-05-17T21:00:41Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904702#M53139</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Felipe,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what issue will be fixed? The OTAP IoT Toolbox problem, the map file or both?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Lothar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 May 2019 04:46:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904702#M53139</guid>
      <dc:creator>lschoenfeld</dc:creator>
      <dc:date>2019-05-20T04:46:25Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904703#M53140</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lothar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The internal team has confirmed Internal Flash Storage is currently not supported on KW41Z linker and bootloader. They will take a look into this, thanks for bringing this issue to our attention.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Felipe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 May 2019 14:32:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904703#M53140</guid>
      <dc:creator>FelipeGarcia</dc:creator>
      <dc:date>2019-05-20T14:32:33Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904704#M53141</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Felipe,&lt;/P&gt;&lt;P&gt;how long does it takt to get a solution? Sorry, but I'm a little bit under pressure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Lothar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 May 2019 14:43:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904704#M53141</guid>
      <dc:creator>lschoenfeld</dc:creator>
      <dc:date>2019-05-20T14:43:39Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904705#M53142</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Lothar,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sorry but I don’t have that information. Sorry for any inconvenience.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Felipe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 May 2019 19:31:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904705#M53142</guid>
      <dc:creator>FelipeGarcia</dc:creator>
      <dc:date>2019-05-20T19:31:19Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904706#M53143</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi , i m interrested in it too. does it mean ota can not work on kw41z please ? what are the news niw ? thanks a lot&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Aug 2019 21:09:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904706#M53143</guid>
      <dc:creator>Olfox</dc:creator>
      <dc:date>2019-08-29T21:09:13Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904707#M53144</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Florian,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in my project the OTAP works with the KW41Z &lt;SPAN style="display: inline !important; float: none; background-color: #ffffff; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;now&lt;/SPAN&gt;. I had to modify the memory layout for the KW41Z.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 11.5pt; color: #3d3d3d;"&gt;I’m able to do firmware update with the OTAP IoT Toolbox&lt;/SPAN&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Lothar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Sep 2019 07:43:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904707#M53144</guid>
      <dc:creator>lschoenfeld</dc:creator>
      <dc:date>2019-09-09T07:43:10Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904708#M53145</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;in one month an application note will be written to merge OTAP example into HRS demo code. I will do the job upfront. I already did on previous sdk. With the new there is few differences. I will upte all my tool and re do the job to start clean. then i will follow this first tutorial:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/docs/DOC-343990"&gt;Reprogramming a FRDM-KW41 board using the OTAP Client Software&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;doo you have the samedi linker fiile than the one in USB sdk now ?Or something quiet similar ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Sep 2019 14:19:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904708#M53145</guid>
      <dc:creator>Olfox</dc:creator>
      <dc:date>2019-09-09T14:19:26Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904709#M53146</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I also started with an usb sdk and had to modify the linker file. The tutorial is helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Sep 2019 15:12:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904709#M53146</guid>
      <dc:creator>lschoenfeld</dc:creator>
      <dc:date>2019-09-09T15:12:55Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904710#M53147</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Lothar,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can you join your linker file please to see what as necessarry to change please ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot it could be very helpfull if the tutorial is not enough :smileyhappy:&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Sep 2019 09:03:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904710#M53147</guid>
      <dc:creator>Olfox</dc:creator>
      <dc:date>2019-09-10T09:03:14Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904711#M53148</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;I hope this will help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV&gt;/*&lt;BR /&gt;* The Clear BSD License&lt;BR /&gt;* Copyright (c) 2014-2015, Freescale Semiconductor, Inc.&lt;BR /&gt;* Copyright 2016-2017 NXP&lt;BR /&gt;* All rights reserved.&lt;BR /&gt;*&lt;BR /&gt;* Redistribution and use in source and binary forms, with or without&lt;BR /&gt;* modification, are permitted (subject to the limitations in the&lt;BR /&gt;* disclaimer below) provided that the following conditions are met:&lt;BR /&gt;* &lt;BR /&gt;* * Redistributions of source code must retain the above copyright&lt;BR /&gt;*&amp;nbsp;&amp;nbsp; notice, this list of conditions and the following disclaimer.&lt;BR /&gt;* &lt;BR /&gt;* * Redistributions in binary form must reproduce the above copyright&lt;BR /&gt;*&amp;nbsp;&amp;nbsp; notice, this list of conditions and the following disclaimer in the&lt;BR /&gt;*&amp;nbsp;&amp;nbsp; documentation and/or other materials provided with the distribution.&lt;BR /&gt;* &lt;BR /&gt;* * Neither the name of the copyright holder nor the names of its&lt;BR /&gt;*&amp;nbsp;&amp;nbsp; contributors may be used to endorse or promote products derived from&lt;BR /&gt;*&amp;nbsp;&amp;nbsp; this software without specific prior written permission.&lt;BR /&gt;* &lt;BR /&gt;* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE&lt;BR /&gt;* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT&lt;BR /&gt;* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED&lt;BR /&gt;* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF&lt;BR /&gt;* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE&lt;BR /&gt;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE&lt;BR /&gt;* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR&lt;BR /&gt;* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF&lt;BR /&gt;* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR&lt;BR /&gt;* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,&lt;BR /&gt;* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE&lt;BR /&gt;* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN&lt;BR /&gt;* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;BR /&gt;*/&lt;/DIV&gt;&lt;DIV&gt;/* Entry Point */&lt;BR /&gt;ENTRY(Reset_Handler)&lt;/DIV&gt;&lt;DIV&gt;/* By default, the Bootloader is not used. */&lt;BR /&gt;/*&lt;BR /&gt;gUseBootloaderLink_d = DEFINED(gUseBootloaderLink_d) ? gUseBootloaderLink_d : 0;&lt;BR /&gt;*/&lt;/DIV&gt;&lt;DIV&gt;/* By default, the NVM is not used. */&lt;BR /&gt;gUseNVMLink_d&amp;nbsp; = DEFINED(gUseNVMLink_d) ? gUseNVMLink_d : 0;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;gNVMSectorCountLink_d = DEFINED(gNVMSectorCountLink_d) ? gNVMSectorCountLink_d : 4;&lt;/DIV&gt;&lt;DIV&gt;/*&lt;BR /&gt;/* By default, the internal storage is not used. */&lt;BR /&gt;/*&lt;BR /&gt;gUseInternalStorageLink_d = DEFINED(gUseInternalStorageLink_d) ? gUseInternalStorageLink_d : 0;&lt;BR /&gt;*/&lt;/DIV&gt;&lt;DIV&gt;__ram_vector_table__ = DEFINED(__ram_vector_table__) ? __ram_vector_table__ : 1;&lt;/DIV&gt;&lt;DIV&gt;/*-Memory Limits-*/&lt;BR /&gt;__region_ROM_start__&amp;nbsp;&amp;nbsp; =&amp;nbsp; (0x00000000);&lt;BR /&gt;__region_ROM_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; (0x0007FFFF);&lt;BR /&gt;/* Workaround for&amp;nbsp; SRAM boundary GCC placement issue,&lt;BR /&gt;&amp;nbsp;not to place variables that are accessed by the code &lt;BR /&gt;&amp;nbsp;overlapping this boundary (forbidden by the Kinetis architecture) */&lt;BR /&gt;__region_RAM1_start__&amp;nbsp; =&amp;nbsp; (0x1FFF8000);&lt;BR /&gt;__region_RAM1_end__&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; (0x1FFFFFFF);&lt;BR /&gt;__region_RAM2_start__&amp;nbsp; =&amp;nbsp; (0x20000000);&lt;BR /&gt;__region_RAM2_end__&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; (0x20017FFF);&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;__vector_table_size__ = (48*4);&lt;BR /&gt;__ram_vector_table_size__ = DEFINED(__ram_vector_table__) ? __vector_table_size__ : 0;&lt;BR /&gt;_RAM_START_&amp;nbsp; = __region_RAM1_start__;&lt;BR /&gt;_RAM_END_&amp;nbsp;&amp;nbsp;&amp;nbsp; = __region_RAM2_end__;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;/*if(gUseBootloaderLink_d == 1) {*/&lt;BR /&gt;&amp;nbsp;m_bootloader_start&amp;nbsp; &amp;nbsp;= (__region_ROM_start__);&lt;BR /&gt;&amp;nbsp;m_bootloader_end&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;= (((__region_ROM_end__ + 1) / 32) - 1);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;m_interrupts_start&amp;nbsp; &amp;nbsp;= (m_bootloader_end + 1);&lt;BR /&gt;&amp;nbsp;m_interrupts_end&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;= (m_interrupts_start + __vector_table_size__ - 1);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;m_bootFlags_start&amp;nbsp;&amp;nbsp; &amp;nbsp;= (m_interrupts_end + 1);&lt;BR /&gt;&amp;nbsp;m_bootFlags_end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;= (m_bootFlags_start + 7);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;__BootFlags_Start__ &amp;nbsp;= m_bootFlags_start;&lt;BR /&gt;/*}*/&lt;BR /&gt;/*else {*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; m_interrupts_start&amp;nbsp;&amp;nbsp;= (__region_ROM_start__);*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; m_interrupts_end&amp;nbsp;&amp;nbsp;= (m_interrupts_start + __vector_table_size__ - 1);*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; m_flash_config_start&amp;nbsp;= (0x400);*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; m_flash_config_end&amp;nbsp;= (0x410);*/&lt;BR /&gt;/*}*/&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;/*-Sizes-*/&lt;BR /&gt;/* 2k flash sector size */&lt;BR /&gt;m_sector_size =&amp;nbsp; ( 2 * 1024 );&lt;/DIV&gt;&lt;DIV&gt;__size_cstack__ = DEFINED(__stack_size__) ? __stack_size__ : 512;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;__size_heap__ = DEFINED(__heap_size__) ? __heap_size__ : 0;&lt;/DIV&gt;&lt;DIV&gt;/*** FSL Product Info region ***/&lt;BR /&gt;m_fsl_prodInfo_start = (__region_ROM_end__ - m_sector_size + 1);&lt;BR /&gt;m_fsl_prodInfo_end&amp;nbsp;&amp;nbsp; = (__region_ROM_end__);&lt;BR /&gt;FREESCALE_PROD_DATA_BASE_ADDR = m_fsl_prodInfo_start;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;/*** NVM Configuration ***/&lt;BR /&gt;/*if(gUseNVMLink_d == 1) {*/&lt;BR /&gt;NV_STORAGE_SECTOR_SIZE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = m_sector_size;&lt;BR /&gt;NV_STORAGE_MAX_SECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = gNVMSectorCountLink_d;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* NV_STORAGE_MAX_SECTORS * NV_STORAGE_SECTOR_SIZE = total NV Storage space */&lt;BR /&gt;NV_STORAGE_START_ADDRESS&amp;nbsp;&amp;nbsp; = m_fsl_prodInfo_start - 1;&lt;BR /&gt;NV_STORAGE_END_ADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NV_STORAGE_START_ADDRESS - (NV_STORAGE_MAX_SECTORS * NV_STORAGE_SECTOR_SIZE) + 1;&lt;BR /&gt;NV_STORAGE_SECTOR_SIZE_C&amp;nbsp;&amp;nbsp; = (m_sector_size);&lt;BR /&gt;NV_STORAGE_MAX_SECTORS_C&amp;nbsp;&amp;nbsp; = (gNVMSectorCountLink_d);&lt;BR /&gt;NV_STORAGE_START_ADDRESS_C = (m_fsl_prodInfo_start - 1);&lt;BR /&gt;NV_STORAGE_END_ADDRESS_C&amp;nbsp;&amp;nbsp; = (NV_STORAGE_START_ADDRESS_C - (NV_STORAGE_MAX_SECTORS_C * NV_STORAGE_SECTOR_SIZE_C) + 1);&lt;BR /&gt;/*}*/&lt;/DIV&gt;&lt;DIV&gt;/*if(gUseInternalStorageLink_d){*/&lt;BR /&gt;/*&amp;nbsp;if(gUseNVMLink_d){*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;INT_STORAGE_START = NV_STORAGE_END_ADDRESS - 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INT_STORAGE_START_C = (NV_STORAGE_END_ADDRESS_C - 1);&lt;BR /&gt;/*&amp;nbsp;}*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; else {*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;INT_STORAGE_START = m_fsl_prodInfo_start - 1;*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INT_STORAGE_START_C = (m_fsl_prodInfo_start - 1);*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; }*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INT_STORAGE_SIZE&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;= m_sector_size * ( ( ( INT_STORAGE_START + 1 - __region_ROM_start__) / 2 ) / m_sector_size + 1 );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INT_STORAGE_END&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;= INT_STORAGE_START - INT_STORAGE_SIZE + 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INT_STORAGE_SECTOR_SIZE &amp;nbsp;= m_sector_size;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INT_STORAGE_SIZE_C&amp;nbsp;&amp;nbsp;&amp;nbsp;= (m_sector_size * ( ( ( INT_STORAGE_START_C + 1 - __region_ROM_start__ ) / 2 ) / m_sector_size + 1 ) );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INT_STORAGE_END_C&amp;nbsp;&amp;nbsp;&amp;nbsp;= (INT_STORAGE_START_C - INT_STORAGE_SIZE_C + 1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INT_STORAGE_SECTOR_SIZE_C&amp;nbsp;= (m_sector_size);&lt;BR /&gt;/*}*/&lt;/DIV&gt;&lt;DIV&gt;/* Define the limits of the memory regions*/&lt;BR /&gt;m_text_start = (m_interrupts_start);&lt;BR /&gt;/*if(gUseInternalStorageLink_d){*/&lt;BR /&gt;&amp;nbsp;m_text_end = (INT_STORAGE_END_C);&lt;BR /&gt;/*}*/&lt;BR /&gt;/*elseif(gUseNVMLink_d) {*/&lt;BR /&gt;/*&amp;nbsp;m_text_end&amp;nbsp;&amp;nbsp; = (NV_STORAGE_END_ADDRESS_C - 1);*/&lt;BR /&gt;/*}*/&lt;BR /&gt;/*else {*/&lt;BR /&gt;/*&amp;nbsp;m_text_end&amp;nbsp;= (m_fsl_prodInfo_start - 1);*/&lt;BR /&gt;/*}*/&lt;/DIV&gt;&lt;DIV&gt;m_interrupts_ram_start = (__region_RAM2_start__);&lt;BR /&gt;m_interrupts_ram_end&amp;nbsp;&amp;nbsp; = (m_interrupts_ram_start + __ram_vector_table_size__ - 1);&lt;/DIV&gt;&lt;DIV&gt;__CSTACK_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (__region_RAM2_end__);&lt;BR /&gt;__CSTACK_start__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (__CSTACK_end__ - __size_cstack__);&lt;BR /&gt;__HEAP_end__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (__CSTACK_start__ - 1);&lt;BR /&gt;__HEAP_start__&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (__HEAP_end__ - __size_heap__ - 0x4);&lt;/DIV&gt;&lt;DIV&gt;m_data1_start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (__region_RAM1_start__);&lt;BR /&gt;m_data1_end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = (__region_RAM1_end__);&lt;BR /&gt;m_data2_start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; (m_interrupts_ram_start);&lt;BR /&gt;m_data2_end&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; (__HEAP_start__ - 1);&lt;/DIV&gt;&lt;DIV&gt;__RAM_VECTOR_TABLE_SIZE = __ram_vector_table_size__;&lt;BR /&gt;__BOOT_STACK_ADDRESS = m_data2_end - 0x0F;&lt;/DIV&gt;&lt;DIV&gt;/* Specify the memory areas */&lt;BR /&gt;MEMORY&lt;BR /&gt;{&lt;/DIV&gt;&lt;DIV&gt;/*if(gUseBootloaderLink_d){*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bootloader_region&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW) : ORIGIN = m_bootloader_start,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LENGTH = (m_bootloader_end - m_bootloader_start)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TEXT_region1&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;&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; (RX) : ORIGIN = m_text_start,&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; LENGTH = (m_bootFlags_start - m_text_start)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BootFlags_region&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;&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; (RX) : ORIGIN = m_bootFlags_start,&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; LENGTH = (m_bootFlags_end - m_bootFlags_start)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TEXT_region2&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;&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; (RX) : ORIGIN = m_bootFlags_end + 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LENGTH = (m_text_end - m_bootFlags_end - 1)&lt;BR /&gt;/*}*/&lt;BR /&gt;/*else{*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TEXT_region1&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;&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; (RX) : ORIGIN = m_text_start,&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; LENGTH = (m_flash_config_start - m_text_start)*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_flash_config_region&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RX) : ORIGIN = m_flash_config_start,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LENGTH = (m_flash_config_end - m_flash_config_start)*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TEXT_region2&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;&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; (RX) : ORIGIN = m_flash_config_end+1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LENGTH = (m_text_end - m_flash_config_end - 1)*/&lt;BR /&gt;/*}*/&lt;/DIV&gt;&lt;DIV&gt;/*if(gUseInternalStorageLink_d){*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternalStorage&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;&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; (RW) : ORIGIN = INT_STORAGE_END_C,&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; LENGTH = (INT_STORAGE_START_C - INT_STORAGE_END_C)&lt;BR /&gt;/*}*/&lt;/DIV&gt;&lt;DIV&gt;/*if(gUseNVMLink_d){*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVM_region&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW) : ORIGIN = NV_STORAGE_END_ADDRESS_C,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LENGTH = (NV_STORAGE_START_ADDRESS_C - NV_STORAGE_END_ADDRESS_C)&lt;BR /&gt;/*}*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATA1_region&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW) : ORIGIN = m_data1_start, LENGTH = (m_data1_end - m_data1_start + 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATA2_region&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RW) : ORIGIN = m_data2_start, LENGTH = (__region_RAM2_end__ - __region_RAM2_start__ + 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRODUCT_INFO_region&amp;nbsp; (RX) : ORIGIN = m_fsl_prodInfo_start, LENGTH = (m_fsl_prodInfo_end - m_fsl_prodInfo_start)&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;/* Define output sections */&lt;BR /&gt;SECTIONS&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; /* Place in the first memory bank the memHeap */&lt;BR /&gt;&amp;nbsp; /*&lt;BR /&gt;&amp;nbsp; .data1 :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ./framework/MemManager/Source/MemManager.o(.bss*)&lt;BR /&gt;&amp;nbsp; } &amp;gt; DATA1_region&lt;BR /&gt;&amp;nbsp; */&lt;BR /&gt;&amp;nbsp; /* The startup code goes first into internal flash */&lt;BR /&gt;&amp;nbsp; .interrupts :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_TABLE = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.isr_vector))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Startup code */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region1&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .freescale_prod_data :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.FREESCALE_PROD_DATA))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp; } &amp;gt; PRODUCT_INFO_region&lt;/DIV&gt;&lt;DIV&gt;/*if(gUseBootloaderLink_d){*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .BootloaderFlags :&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; . = ALIGN(4);&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; KEEP(*(.BootloaderFlags));&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; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; BootFlags_region&lt;BR /&gt;/*}*/&lt;BR /&gt;/*else{*/&lt;BR /&gt;/*&amp;nbsp; .flash_config :*/&lt;BR /&gt;/*&amp;nbsp; {*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);*/&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.FlashConfig))*/&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Flash Configuration Field (FCF) */&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);*/&lt;BR /&gt;/*&amp;nbsp; } &amp;gt; m_flash_config_region*/&lt;BR /&gt;/*}*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* The program code and other data goes into internal flash */&lt;BR /&gt;&amp;nbsp; .text :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text)&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; /* .text sections (code) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text*)&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; /* .text* sections (code) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.rodata)&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; /* .rodata sections (constants, strings, etc.) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.rodata*)&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; /* .rodata* sections (constants, strings, etc.) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.glue_7)&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; /* glue arm to thumb code */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.glue_7t)&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; /* glue thumb to arm code */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.eh_frame)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(.init))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(.fini))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;BR /&gt;&amp;nbsp; .NVM_TABLE :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__start_NVM_TABLE = .);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.NVM_TABLE));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__stop_NVM_TABLE = .);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;BR /&gt;&amp;nbsp; .VERSION_TAGS :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__start_VERSION_TAGS = .);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.VERSION_TAGS));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(__stop_VERSION_TAGS = .);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .ARM.extab :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ARM.extab* .gnu.linkonce.armextab.*)&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .ARM :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __exidx_start = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ARM.exidx*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __exidx_end = .;&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;.ctors :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __CTOR_LIST__ = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* gcc uses crtbegin.o to find the start of&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the constructors, so we make sure it is&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; first.&amp;nbsp; Because this is a wildcard, it&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doesn't matter if the user does not&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; actually link against crtbegin.o; the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; linker won't look for a file to match a&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wildcard.&amp;nbsp; The wildcard also means that it&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doesn't matter which directory crtbegin.o&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is in.&amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*crtbegin.o(.ctors))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*crtbegin?.o(.ctors))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* We don't want to include the .ctor section from&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from the crtend.o file until after the sorted ctors.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The .ctor section from the crtend file contains the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end of ctors marker and it must be last */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(SORT(.ctors.*)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(.ctors))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __CTOR_END__ = .;&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .dtors :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __DTOR_LIST__ = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*crtbegin.o(.dtors))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*crtbegin?.o(.dtors))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(SORT(.dtors.*)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(.dtors))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __DTOR_END__ = .;&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .preinit_array :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE_HIDDEN (__preinit_array_start = .);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(.preinit_array*))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE_HIDDEN (__preinit_array_end = .);&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .init_array :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE_HIDDEN (__init_array_start = .);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(SORT(.init_array.*)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(.init_array*))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE_HIDDEN (__init_array_end = .);&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .fini_array :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE_HIDDEN (__fini_array_start = .);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(SORT(.fini_array.*)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP (*(.fini_array*))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE_HIDDEN (__fini_array_end = .);&lt;BR /&gt;&amp;nbsp; } &amp;gt; TEXT_region2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; __etext = .;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* define a global symbol at end of code */&lt;BR /&gt;&amp;nbsp; __DATA_ROM = .; /* Symbol is used by startup for data initialization */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* reserve MTB memory at the beginning of m_data */&lt;BR /&gt;&amp;nbsp; .mtb : /* MTB buffer address as defined by the hardware */&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mtb_start = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.mtb_buf)) /* need to KEEP Micro Trace Buffer as not referenced by application */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mtb_end = .;&lt;BR /&gt;&amp;nbsp; } &amp;gt; DATA2_region&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .interrupts_ram :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __VECTOR_RAM__ = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __interrupts_ram_start__ = .; /* Create a global symbol at data start */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.m_interrupts_ram)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* This is a user defined section */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . += __ram_vector_table_size__;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __interrupts_ram_end__ = .; /* Define a global symbol at data end */&lt;BR /&gt;&amp;nbsp; } &amp;gt; DATA2_region&lt;BR /&gt;&amp;nbsp; __VECTOR_RAM = __VECTOR_RAM__;&lt;BR /&gt;&amp;nbsp; __RAM_VECTOR_TABLE_SIZE_BYTES = (__interrupts_ram_end__ - __interrupts_ram_start__);&lt;BR /&gt;&amp;nbsp; .data : AT(__DATA_ROM)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __DATA_RAM = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __data_start__ = .;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* create a global symbol at data start */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.data)&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; /* .data sections */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.data*)&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; /* .data* sections */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.jcr*))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __data_end__ = .;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* define a global symbol at data end */&lt;BR /&gt;&amp;nbsp; } &amp;gt; DATA2_region&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);&lt;BR /&gt;&amp;nbsp; text_end = ORIGIN(TEXT_region2) + LENGTH(TEXT_region2);&lt;BR /&gt;&amp;nbsp; ASSERT(__DATA_END &amp;lt;= text_end, "region m_text overflowed with text and data")&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* Uninitialized data section */&lt;BR /&gt;&amp;nbsp; .bss :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* This is used by the startup in order to initialize the .bss section */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __START_BSS = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __bss_start__ = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(COMMON)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(EXCLUDE_FILE (./framework/MemManager/Source/MemManager.o) .bss*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __bss_end__ = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __END_BSS = .;&lt;BR /&gt;&amp;nbsp; } &amp;gt; DATA2_region&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .heap :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __end__ = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(end = .);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __HeapBase = .;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . += __size_heap__;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __HeapLimit = .;&lt;BR /&gt;&amp;nbsp; } &amp;gt; DATA2_region&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .stack :&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . += __size_cstack__;&lt;BR /&gt;&amp;nbsp; } &amp;gt; DATA2_region&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* Initializes stack on the end of block */&lt;BR /&gt;&amp;nbsp; __StackTop&amp;nbsp;&amp;nbsp; = ORIGIN(DATA2_region) + LENGTH(DATA2_region);&lt;BR /&gt;&amp;nbsp; __StackLimit = __StackTop - __size_cstack__;&lt;BR /&gt;&amp;nbsp; PROVIDE(__stack = __StackTop);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .ARM.attributes 0 : { *(.ARM.attributes) }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; /* Remove this section to keep the nvm section on writting the device */&lt;BR /&gt;/*&amp;nbsp; #if gUseNVMLink_d &amp;amp;&amp;amp; gEraseNVMLink_d */&lt;BR /&gt;/*&amp;nbsp; .NVM : */&lt;BR /&gt;/*&amp;nbsp; { */&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; FILL(0xFFFFFFFF); */&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ORIGIN(NVM_region) + LENGTH(NVM_region) - 1; */&lt;BR /&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; BYTE(0xFF) */&lt;BR /&gt;/*&amp;nbsp; } &amp;gt; NVM_region */&lt;BR /&gt;&amp;nbsp; ASSERT(__StackLimit &amp;gt;= __HeapLimit, "region m_data overflowed with stack and heap")&lt;BR /&gt;}&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Sep 2019 14:36:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904711#M53148</guid>
      <dc:creator>lschoenfeld</dc:creator>
      <dc:date>2019-09-10T14:36:18Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904712#M53149</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot Lothar !&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Sep 2019 11:13:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904712#M53149</guid>
      <dc:creator>Olfox</dc:creator>
      <dc:date>2019-09-12T11:13:50Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904713#M53150</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm really surprised that it works fine becuse i compare your file and the one in USB sdk, and i have note some differences like :&lt;/P&gt;&lt;P&gt;___________________________________________&lt;/P&gt;&lt;P&gt;Lothar:&lt;/P&gt;&lt;P&gt;gUseBootloaderLink_d : 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;USB SDK linker file:&lt;/P&gt;&lt;P&gt;gUseBootloaderLink_d : 1;&lt;/P&gt;&lt;P&gt;____________________________________________&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Lothar&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;gUseInternalStorageLink_d : 0;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;USB SDK linker file:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;gUseInternalStorageLink_d : 1;&lt;/P&gt;&lt;P&gt;____________________________________________&lt;/P&gt;&lt;P&gt;&amp;nbsp;m_bootFlags_end&amp;nbsp; &amp;nbsp; &amp;nbsp; = (m_bootFlags_start + 7);&lt;/P&gt;&lt;P&gt;m_bootFlags_end&amp;nbsp; &amp;nbsp; &amp;nbsp;= (m_bootFlags_start + 16);&lt;/P&gt;&lt;P&gt;____________________________________________&lt;/P&gt;&lt;P&gt;/* #if gUseNVMLink_d &amp;amp;&amp;amp; gEraseNVMLink_d */&lt;BR /&gt;/* .NVM : */&lt;BR /&gt;/* { */&lt;BR /&gt;/* FILL(0xFFFFFFFF); */&lt;BR /&gt;/* . = ORIGIN(NVM_region) + LENGTH(NVM_region) - 1; */&lt;BR /&gt;/* BYTE(0xFF) */&lt;BR /&gt;/* } &amp;gt; NVM_region */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;should be linke this according to the tutorial:&lt;/P&gt;&lt;P&gt;.NVM :&lt;BR /&gt; {&lt;BR /&gt; &lt;SPAN style="text-decoration: line-through;"&gt;FILL(0xFFFFFFFF);&lt;/SPAN&gt;&lt;BR /&gt; . = ORIGIN(NVM_region) + LENGTH(NVM_region) - 1;&lt;BR /&gt; &lt;SPAN style="text-decoration: line-through;"&gt;BYTE(0xFF)&lt;/SPAN&gt;&lt;BR /&gt; } &amp;gt; NVM_region&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but ORIGIN should stay and Lothar remove all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So it seems that Lothar , you don't use the bootloader that is necessary to upgrade the firmware once downloaded and it seems you use external memory. Then how is it possible that you successfully use internal memory OTA feature please?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Sep 2019 11:34:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904713#M53150</guid>
      <dc:creator>Olfox</dc:creator>
      <dc:date>2019-09-12T11:34:07Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904714#M53151</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;/* Workaround for&amp;nbsp; SRAM boundary GCC placement issue,&lt;BR /&gt;&amp;nbsp;not to place variables that are accessed by the code &lt;BR /&gt;&amp;nbsp;overlapping this boundary (forbidden by the Kinetis architecture) */&lt;BR /&gt;__region_RAM1_start__&amp;nbsp; =&amp;nbsp; (0x1FFF8000);&lt;BR /&gt;__region_RAM1_end__&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; (0x1FFFFFFF);&lt;BR /&gt;__region_RAM2_start__&amp;nbsp; =&amp;nbsp; (0x20000000);&lt;BR /&gt;__region_RAM2_end__&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; (0x20017FFF);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;That is a bit unsettling to see.&lt;BR /&gt;&lt;BR /&gt; Variables would normally be aligned to a 16 or 32 bit boundary would they not?&lt;BR /&gt;So why would they cross that boundary?&lt;BR /&gt;&lt;BR /&gt;I can see that a struct with the packed attribute could do it, anything else?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Sep 2019 12:35:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/904714#M53151</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2019-09-12T12:35:13Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KW41Z OTAP client internal storage eeprom device internal flash</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/1336970#M61447</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;I am implementing the reprogramming of a KW41Z board using the OTAP Client Software, with &lt;STRONG&gt;Internal Storage.&amp;nbsp;&lt;/STRONG&gt;Following the instructions of the link&amp;nbsp;&lt;A href="https://community.nxp.com/docs/DOC-343990" target="_blank"&gt;Reprogramming a FRDM-KW41 board using the OTAP Client Software&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I got update the firmware using the otap_client_att as base and updating to the glucose sensor example. However the glucose sensor does not include the OTAP service so it is possible to reprogramming only once.&lt;/P&gt;&lt;P&gt;I tried to add the OTAP service to the glucose sensor example but I did not get succesfully. I copied the code of the OTAP service at otap_client_att following the document AN12775.&amp;nbsp;The OTAP service requires OtaSupport.h and Eeprom.h.&amp;nbsp; &amp;nbsp;Selecting&amp;nbsp;#define gEepromType_d gEepromDevice_InternalFlash_c and copying the&amp;nbsp;MKW41Z512xxx4_connectivity.ld I achieved build without errors but the uploading does not start when I try to upload with the IoT Toolbox. It remains at 0%&lt;/P&gt;&lt;P&gt;Do you have any idea of the wrong proccess I am following?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and regards!&lt;/P&gt;</description>
      <pubDate>Wed, 08 Sep 2021 15:38:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KW41Z-OTAP-client-internal-storage-eeprom-device-internal/m-p/1336970#M61447</guid>
      <dc:creator>ed_ed</dc:creator>
      <dc:date>2021-09-08T15:38:13Z</dc:date>
    </item>
  </channel>
</rss>

