<?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 ROM Bootloader - MKL27Z32VFM4 in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ROM-Bootloader-MKL27Z32VFM4/m-p/1503900#M63785</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;We are planning to use the feature of ROM bootloader on the part MKL27Z32VFM4 in production.&lt;/P&gt;&lt;P&gt;I do see ROM bootloader is available in KL27Z series microcontrollers as given below link&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcu-bootloader-for-nxp-microcontrollers:MCUBOOT" target="_blank"&gt;https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcu-bootloader-for-nxp-microcontrollers:MCUBOOT&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Could you please confirm ROM bootloader is available on the part&amp;nbsp;MKL27Z32VFM4?&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Kantha&lt;/P&gt;</description>
    <pubDate>Wed, 10 Aug 2022 10:22:50 GMT</pubDate>
    <dc:creator>Kantha</dc:creator>
    <dc:date>2022-08-10T10:22:50Z</dc:date>
    <item>
      <title>ROM Bootloader - MKL27Z32VFM4</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ROM-Bootloader-MKL27Z32VFM4/m-p/1503900#M63785</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;We are planning to use the feature of ROM bootloader on the part MKL27Z32VFM4 in production.&lt;/P&gt;&lt;P&gt;I do see ROM bootloader is available in KL27Z series microcontrollers as given below link&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcu-bootloader-for-nxp-microcontrollers:MCUBOOT" target="_blank"&gt;https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcu-bootloader-for-nxp-microcontrollers:MCUBOOT&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Could you please confirm ROM bootloader is available on the part&amp;nbsp;MKL27Z32VFM4?&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Kantha&lt;/P&gt;</description>
      <pubDate>Wed, 10 Aug 2022 10:22:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ROM-Bootloader-MKL27Z32VFM4/m-p/1503900#M63785</guid>
      <dc:creator>Kantha</dc:creator>
      <dc:date>2022-08-10T10:22:50Z</dc:date>
    </item>
    <item>
      <title>Re: ROM Bootloader - MKL27Z32VFM4</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ROM-Bootloader-MKL27Z32VFM4/m-p/1504061#M63793</link>
      <description>&lt;P&gt;Yes the KL27 has the ROM bootloader built in.&lt;BR /&gt;&lt;BR /&gt;To work around a bug it has call this function right out of reset:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;static void vectors_bootloader_mr_setup( void ) __attribute__( ( used, __aligned__( 4U ), section( ".after_vectors" ) ) );&lt;BR /&gt;static void vectors_bootloader_mr_setup( void )&lt;BR /&gt;{&lt;BR /&gt;/*&lt;BR /&gt;* RCM_MR Indicates the boot source, the boot source remains set&lt;BR /&gt;* until the next System Reset or software can write logic one to&lt;BR /&gt;* clear the corresponding mode bit. While either bit is set the&lt;BR /&gt;* NMI input is disabled and the vector table is relocated to the&lt;BR /&gt;* ROM base address at 0x1C00_0000. These bits should be cleared by&lt;BR /&gt;* writing logic one before executing any code from either Flash or&lt;BR /&gt;* SRAM.&lt;BR /&gt;*&lt;BR /&gt;* A reset is forced to clear out anything that the ROM&lt;BR /&gt;* bootloader did, so we are sure we have the data sheet reset&lt;BR /&gt;* values.&lt;/P&gt;&lt;P&gt;* This method works around the buggy KL43/27/17 bootloaders as&lt;BR /&gt;* described in: "Problem Analysis and solutions for booting from&lt;BR /&gt;* ROM BOOTLOADER in KL series".&lt;BR /&gt;*/&lt;BR /&gt;if( 0U != ( RCM_MR &amp;amp; RCM_MR_BOOTROM_MASK ) )&lt;BR /&gt;{&lt;BR /&gt;RCM_MR = RCM_MR_BOOTROM_MASK; /* Clear the bits that indicated a bootlaoder boot via ROM */&lt;BR /&gt;RCM_FM = 0U; /* Boot from Flash not ROM on next reset */&lt;/P&gt;&lt;P&gt;SCB_AIRCR = ( SCB_AIRCR_VECTKEY( 0x05FAU ) | SCB_AIRCR_SYSRESETREQ_MASK ); /* Force a Software Reset */&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;Also in case you are not aware the KL27 has problems with I2C repeated-start.&amp;nbsp; It is discussed in the forum here.&amp;nbsp; The IDE inserts undocumented NOPs to work around the race condition.&lt;BR /&gt;&lt;BR /&gt;See Appendix-A in Mark's document:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://www.utasker.com/docs/uTasker/uTasker_I2C.pdf" target="_blank"&gt;https://www.utasker.com/docs/uTasker/uTasker_I2C.pdf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Aug 2022 14:25:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ROM-Bootloader-MKL27Z32VFM4/m-p/1504061#M63793</guid>
      <dc:creator>bobpaddock</dc:creator>
      <dc:date>2022-08-10T14:25:02Z</dc:date>
    </item>
  </channel>
</rss>

