<?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>S32KのトピックRe: How to create 2 bootloaders in s32k148</title>
    <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896373#M4397</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Diana.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Created 2 bootloaders, an we will test it in s32k148 in future.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 24 May 2019 07:33:04 GMT</pubDate>
    <dc:creator>sathish_sekar</dc:creator>
    <dc:date>2019-05-24T07:33:04Z</dc:date>
    <item>
      <title>How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896362#M4386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am working on bootloader part for implementing 2 bootloaders in s32k148.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;any one bootloader will be selected based on read the particular memory in EEPROM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another one bootloader will be used after development phase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please provide your inputs on&amp;nbsp;multiple bootloader creation?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Apr 2019 13:43:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896362#M4386</guid>
      <dc:creator>sathish_sekar</dc:creator>
      <dc:date>2019-04-30T13:43:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896363#M4387</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sathis,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have an application note for the S32K devices which implements one bootloader and one application. However, you can use it as a reference.&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.nxp.com/docs/en/application-note/AN12218.pdf"&gt;https://www.nxp.com/docs/en/application-note/AN12218.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;SW:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/application-note-software/AN12218SW.zip" title="https://www.nxp.com/docs/en/application-note-software/AN12218SW.zip"&gt;https://www.nxp.com/docs/en/application-note-software/AN12218SW.zip&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There can be seen that each project has own Linker File where you can define the start address of the project.&lt;/P&gt;&lt;P&gt;So, I assume you will create two independent projects, each project start at a different address. After that, both complete bootloaders will be loaded into the memory of the MCU.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it helps. If you have any questions, please let me know.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Diana&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 May 2019 14:26:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896363#M4387</guid>
      <dc:creator>dianabatrlova</dc:creator>
      <dc:date>2019-05-02T14:26:44Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896364#M4388</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Diana,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you so much for the reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I created 2 different boot loader projects, and modified the&amp;nbsp;S32K1xx_flash.ld as below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Proj1:&lt;/P&gt;&lt;P&gt;Flash memory:&amp;nbsp; &amp;nbsp; &amp;nbsp;m_text&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (RX)&amp;nbsp; : ORIGIN = &lt;STRONG&gt;0x10000000&lt;/STRONG&gt;, LENGTH = 0x00001000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Proj2:&lt;/P&gt;&lt;P&gt;Flash memory:&amp;nbsp; &amp;nbsp; &amp;nbsp;m_text&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (RX)&amp;nbsp; : ORIGIN = &lt;STRONG&gt;0x10001000&lt;/STRONG&gt;, LENGTH = 0x00001000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Currently, after reset(during boot), Program counter (PC) is loaded with address&amp;nbsp;&lt;STRONG&gt;0x10000000.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;i.e PC=0x10000000&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;So Proj1 is running now.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) I need run the second bootloader(Proj2).&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; To run the 2nd boot loader, load the PC with address&amp;nbsp;&lt;STRONG&gt;0x10001000.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; I did not find any C or&amp;nbsp;assembler instruction to load the PC with address in &lt;/STRONG&gt;S32K14x Series Reference&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Manual.pdf .&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp; &lt;/STRONG&gt;Could you please&amp;nbsp;share the info on load the&amp;nbsp;PC with different&amp;nbsp; address?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 May 2019 08:10:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896364#M4388</guid>
      <dc:creator>sathish_sekar</dc:creator>
      <dc:date>2019-05-03T08:10:33Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896365#M4389</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sathis,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The important thing is that the reset vector is expected always at address 0x00000000.&lt;/P&gt;&lt;P&gt;The vector table is placed in the m_interrupt section.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Let's say that the first bootloader starts at address &lt;STRONG&gt;0x00000000&lt;/STRONG&gt; and the length is 32 KB. see the settings below:&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;/* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = &lt;STRONG&gt;0x00000000&lt;/STRONG&gt;, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x00000410, LENGTH = &lt;STRONG&gt;0x00007BF0&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. When you want to create a project which starts at a different address you need to test it with starting address 0x00000000 after everything is working well you can change the address and load it into the MCU. Also, you should change the m_interrupt address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, let's say that the bootloader project is working well and I want to load it into MCU. That is why I change the start address to&lt;SPAN style="background-color: #f6f6f6;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;0x00008000&amp;nbsp;&lt;/STRONG&gt;with the length 4 KB (for example).&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;/* Flash */&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;m_interrupts (RX) : ORIGIN = &lt;STRONG&gt;0x00008000&lt;/STRONG&gt;&lt;STRONG style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: bold;"&gt;,&lt;/STRONG&gt; LENGTH = 0x00000400&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;m_flash_config (RX) : ORIGIN = &lt;STRONG&gt;0x00008400&lt;/STRONG&gt;, LENGTH = 0x00000010&lt;/SPAN&gt;&lt;BR style="background-color: #f6f6f6;" /&gt;&lt;SPAN style="background-color: #f6f6f6;"&gt;m_text (RX) : ORIGIN = &lt;STRONG&gt;0x00008410&lt;/STRONG&gt;, LENGTH = &lt;STRONG&gt;0x00001000&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I recommend you to look at the section "3. Building compatible applications"&amp;nbsp;in the AN12218&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it helps.&lt;/P&gt;&lt;P&gt;If it is not clear please, let me know.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Diana&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 May 2019 08:03:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896365#M4389</guid>
      <dc:creator>dianabatrlova</dc:creator>
      <dc:date>2019-05-06T08:03:58Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896366#M4390</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Diana,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the detailed info.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Flashed the 1st bootloader with below memory details.&lt;/P&gt;&lt;P&gt;Bootloader proj1:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro" style="color: #51626f; border-width: 0px 0px 0px 2px; border-style: initial initial initial solid; border-color: initial initial initial #cccccc; margin: 10px 0px; padding: 10px 20px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;/* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x10000000, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader */&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;My application program is running successfully.&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Then,&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;for 2nd bootloader, modified the memory as below&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #3d3d3d;"&gt;Bootloader proj2:&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro" style="color: #51626f; border-width: 0px 0px 0px 2px; border-style: initial initial initial solid; border-color: initial initial initial #cccccc; margin: 10px 0px; padding: 10px 20px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;/* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x10001000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x10001400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x10001410, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader *&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;After flashing the 2nd bootloader also my application is running successfully.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;But still confused, which bootloader running now? I think 1st bootloader is used during startup.&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;If I want to use the 2nd bootloader, do i need to modify Program counter? or any?&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Could you please provide these info if you have an idea?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 May 2019 09:39:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896366#M4390</guid>
      <dc:creator>sathish_sekar</dc:creator>
      <dc:date>2019-05-06T09:39:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896367#M4391</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sathish,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, if it is not decided otherwise after reset, always the first bootloader will start.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to jump into the 2nd bootloader you can use the approach which we discussed in the thread&amp;nbsp;below&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/500894"&gt;https://community.nxp.com/message/1143414&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Do not forget to relocate interrupt vector table.&lt;/P&gt;&lt;P&gt;Just for example:&lt;/P&gt;&lt;P&gt;I put into the&amp;nbsp;startup.c below functions. The 2ndBootloader function is called in the startup_S32K148.S file.&lt;/P&gt;&lt;P&gt;If the button is pushed the 2nd bootloader will start:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;extern void startApplication(unsigned long app_link_location){&lt;BR /&gt; asm(" ldr sp, [r0,#0]");&lt;BR /&gt; asm(" ldr pc, [r0,#4]");&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void 2ndBootloader(void)&lt;BR /&gt;{&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_PORTC_INDEX] = PCC_PCCn_CGC_MASK; // Enable clock for PORTC&lt;BR /&gt; PTC-&amp;gt;PDDR |= 1&amp;lt;&amp;lt;13; // Port C13 is configured as output&lt;BR /&gt; PORTC-&amp;gt;PCR[13] = PORT_PCR_MUX(1); // Alternative 1 = GPIO&lt;BR /&gt; int button = PTC-&amp;gt;PDIR &amp;gt;&amp;gt; 13 &amp;amp; 1; // Read logic level of pin&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;if(button == 1)&lt;BR /&gt; {&lt;BR /&gt; S32_SCB-&amp;gt;VTOR=(uint32_t)(0x&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;10001000&lt;/SPAN&gt;); // Relocate interrupt vector table&lt;BR /&gt; startApplication(0x&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;10001000&lt;/SPAN&gt;); // Jump to the application reset vector&lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it helps&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Diana&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 May 2019 12:53:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896367#M4391</guid>
      <dc:creator>dianabatrlova</dc:creator>
      <dc:date>2019-05-06T12:53:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896368#M4392</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Diana&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I created 3 different projects in s32 design studio,&lt;/P&gt;&lt;P&gt;1) Proj1: &lt;STRONG&gt;S32K148_bootloader_primary - &lt;/STRONG&gt;used to select the bootloader proj1 or&amp;nbsp;bootloader proj2&lt;/P&gt;&lt;P&gt;with below memory map:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro" style="color: #51626f; border-width: 0px 0px 0px 2px; border-style: initial initial initial solid; border-color: initial initial initial #cccccc; margin: 10px 0px; padding: 10px 20px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;/* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x10000000, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader */&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;Also refer the attached image&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper" image-alt="Primary_bootlder.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/80395i77701DC8F1EAFAB8/image-size/large?v=v2&amp;amp;px=999" role="button" title="Primary_bootlder.jpg" alt="Primary_bootlder.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) Proj2:&amp;nbsp; &lt;STRONG&gt;Bootloader 1 &lt;/STRONG&gt;with below memory map.&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro" style="color: #51626f; border-width: 0px 0px 0px 2px; border-style: initial initial initial solid; border-color: initial initial initial #cccccc; margin: 10px 0px; padding: 10px 20px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;/* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x10001000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x10001400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x10001410, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader *&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="font-weight: 400;"&gt;3) Proj3:&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;Bootloader 2 w&lt;/STRONG&gt;&lt;/STRONG&gt;ith below memory map.&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro" style="color: #51626f; border-width: 0px 0px 0px 2px; border-style: initial initial initial solid; border-color: initial initial initial #cccccc; margin: 10px 0px; padding: 10px 20px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&amp;nbsp;/* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x10002410, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x10002810, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x10002820, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader */&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;During debugging(via s32 design studio and openSDA),&lt;STRONG&gt; SP and PC registers are loaded with invalid address.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Refer the screen shot.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Primary_bootlder_debugging.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/80396i3D75D7A58F947E0B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Primary_bootlder_debugging.jpg" alt="Primary_bootlder_debugging.jpg" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Any idea why the address(&lt;SPAN style="color: #51626f; background-color: #f6f6f6; font-weight: 400;"&gt;0x10001000&lt;/SPAN&gt;) are become invalid &lt;/STRONG&gt;after calling the function&lt;STRONG&gt; JumpToBootLoader()?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;or method of flashing is not correct?&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 May 2019 09:15:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896368#M4392</guid>
      <dc:creator>sathish_sekar</dc:creator>
      <dc:date>2019-05-09T09:15:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896369#M4393</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you please check if your project is loaded at the required address?&lt;/P&gt;&lt;P&gt;You can check the address space in the memory window (menu -&amp;gt; Window -&amp;gt; Show View -&amp;gt; Memory)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Diana&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 May 2019 13:10:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896369#M4393</guid>
      <dc:creator>dianabatrlova</dc:creator>
      <dc:date>2019-05-13T13:10:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896370#M4394</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Diana,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Resolved this issue on Friday, and I was in vacation yesterday.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I am able to load the Proj1 bootloader address in SP and PC registers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to flash this bootloaders?&lt;/P&gt;&lt;P&gt;Via S32 design Studio`s debug configuration or create .srec file and then flash?&lt;/P&gt;&lt;P&gt;Because only current bootloader memory is available in memory 0x10001000(bootloader proj1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Previously I flashed&amp;nbsp;&lt;SPAN&gt;bootloader proj2 with&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;&amp;nbsp;/* Flash */&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #f6f6f6;" /&gt;&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;m_interrupts (RX) : ORIGIN = 0x10002410, LENGTH = 0x00000400&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #f6f6f6;" /&gt;&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;m_flash_config (RX) : ORIGIN = 0x10002810, LENGTH = 0x00000010&lt;/SPAN&gt;&lt;BR style="color: #51626f; background-color: #f6f6f6;" /&gt;&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;m_text (RX) : ORIGIN = 0x10002820, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader */&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But from&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;0x10002410, it is all set to 0xFFFFFFFF only.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;P&gt;Sathish&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 May 2019 10:04:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896370#M4394</guid>
      <dc:creator>sathish_sekar</dc:creator>
      <dc:date>2019-05-14T10:04:09Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896371#M4395</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I created my own bootloader, how to flash this bootloader into s32k148 evb?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could anybody help me to flash the bootloader into&amp;nbsp;&lt;SPAN&gt;s32k148 evb?&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 May 2019 15:07:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896371#M4395</guid>
      <dc:creator>sathish_sekar</dc:creator>
      <dc:date>2019-05-14T15:07:38Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896372#M4396</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sathish,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can, for example, flash your .srec of the second bootloader by the first bootloader (as a reference you can use AN12218) or merge .srec files of both bootloaders into one and then flash into MCU. I believe that there is a lot of possibilities. It's up to you which one fills your application requirements.&lt;/P&gt;&lt;P&gt;Also, please keep in mind that the starting address must be 64-bit aligned (flash address [2:0] = 000) if you are using "36.5.11.4 Program Phrase command"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you have an interest&amp;nbsp;in S32DS flashing possibilities I recommend you to ask on the S32 Design Studio community.&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/community/s32/s32ds"&gt;https://community.nxp.com/community/s32/s32ds&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HOWTO: Debug multiple elf files in S32 Design Studio&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-342385"&gt;https://community.nxp.com/docs/DOC-342385&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I hope it helps.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Diana&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 May 2019 07:02:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896372#M4396</guid>
      <dc:creator>dianabatrlova</dc:creator>
      <dc:date>2019-05-15T07:02:23Z</dc:date>
    </item>
    <item>
      <title>Re: How to create 2 bootloaders in s32k148</title>
      <link>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896373#M4397</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Diana.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Created 2 bootloaders, an we will test it in s32k148 in future.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 May 2019 07:33:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/How-to-create-2-bootloaders-in-s32k148/m-p/896373#M4397</guid>
      <dc:creator>sathish_sekar</dc:creator>
      <dc:date>2019-05-24T07:33:04Z</dc:date>
    </item>
  </channel>
</rss>

