<?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 Re: Bootloader_s32K how it works for S32K144 in S32 Design Studio</title>
    <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733954#M2285</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you need to put way bigger timeout in your receive function. Transfering 35kB takes at least 3+ sec. You also have to count time between receive start and clicking on Send button in your terminal. For testing purposes - 20 000 ms is good value.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 08 Dec 2017 09:00:11 GMT</pubDate>
    <dc:creator>jiri_kral</dc:creator>
    <dc:date>2017-12-08T09:00:11Z</dc:date>
    <item>
      <title>Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733940#M2271</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Can I get any guide to understand the working scenario of boot loader example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/34213i2C53087C1C7ACBC4/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Background:&lt;/P&gt;&lt;P&gt;I am designing and implementing the boot loader, primary responsibility of boot loader will be to update MCU firmware to flash memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Boot loader shall be receiving MCU firmware binary(segregated into 'X' parts ) sequentially over UART from teraterm/putty.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't have prior experience of writing boot loader. Any guide would be very much helpful to me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have gone through&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;flash_partitioning_s32k144 example and comfortable in reusing it for flash programming.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Also please suggest which format of binary is good to consider, i.e srec,hex,bin,..... ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Nov 2017 10:18:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733940#M2271</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-11-24T10:18:24Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733941#M2272</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you can look at this presentation - &lt;A class="link-titled" href="https://www.nxp.com/video/overview-of-rappid-bootloader:WBNR-FTF2014-AUT-F0014-B-VID" title="https://www.nxp.com/video/overview-of-rappid-bootloader:WBNR-FTF2014-AUT-F0014-B-VID"&gt;Overview of RAppID Bootloader|NXP&lt;/A&gt;&amp;nbsp;&amp;nbsp;for more info.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example project is empty project configured for&amp;nbsp;&lt;A href="https://www.nxp.com/webapp/Download?colCode=RAPPID_BOOTLOADER_UTILITY&amp;amp;appType=license"&gt;RAppID&lt;/A&gt;&amp;nbsp;BL Tool. Inside project is testing .srec file (located in project's Debug folder) . If you have S32K144 EVB - please download updated&amp;nbsp;&lt;A _jive_internal="true" href="https://community.nxp.com/servlet/JiveServlet/download/11492-458863-939046-409032/SK144_Bootloader.rbf.zip"&gt;Bootloader file (rbf)&lt;/A&gt;. Copy this .rbf file into mass storage device on your S32K144 (on my machine it is drive D:\ ). Restart your EVB.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_17.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/34697iC4D344E09F22BB36/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_17.png" alt="pastedImage_17.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Modify bootloader.rbl file to point on testing .srec (I copied the file into C:\NXP folder on my machine)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_15.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/34605i2FD1B5C06D74C498/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_15.png" alt="pastedImage_15.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Start RAppID BL Tool and open modified bootloader.rbl file and&amp;nbsp; press Start Boot Loader button.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_16.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/34659i31B0DCFA4F9F92FE/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_16.png" alt="pastedImage_16.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you wanna use RAppID BL Tool - starting with Bootloader_S32K example is good idea.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you like to write your own bootloader - the implementation is up to you (as I mentioned in different thread). You also need to write PC side application. In my opinion .srec file is best format for bootloader. It can be easily parsed and contains addresses.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Nov 2017 12:49:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733941#M2272</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-11-24T12:49:23Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733942#M2273</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much for sharing the information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With your example, I understand we are not flashing bootloader as we are directly copying bootloader file(&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;.rbf file) into mass storage device i.e, S32K144.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;We are only flashing application file(bootloader_S32K.srec) using RAappID BL tool.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="text-decoration: underline;"&gt;Can I get any guide on how this works internally&lt;/SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;To be more specific, In my requirement architecture would be FOTA(firmware on the air) update.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Bootloader in S32K144 MCU would receive application firmware in chunks over UART.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;As of now we don't have boot loader. So I want to implement boot loader and on top of that I should support firmware update.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Nov 2017 11:05:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733942#M2273</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-11-27T11:05:03Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733943#M2274</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the rbf file is standard .srec file and it is bootloader for S32K144. Easiest way how to flash this file into S32K144 is copy it into mass storage device on EVB - the srec will be automatically flashed after reset. You can flash it by S32DS too.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can see (from .srec file)&amp;nbsp; that bootloader occupied memory from 0x0000 up to 0x2000. You can also see that uploaded application starts on 0x2000 address (normally application starts after flash config on 0x0410 address).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no source code available for RAppID bootloader. In your case (updating firmware by other MCU) - you need to write your own bootloader for S32K144 and other side for your master MCU.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can find tutorials on Internet related to bootloader for ARM - like this&amp;nbsp;&amp;nbsp;&lt;A class="link-titled" href="http://www.keil.com/support/docs/3913.htm" title="http://www.keil.com/support/docs/3913.htm"&gt;ARM: How to write a bootloader&lt;/A&gt;&amp;nbsp;&amp;nbsp;or&amp;nbsp;&lt;A class="link-titled" href="http://blog.atollic.com/how-to-develop-and-debug-bootloader-application-systems-on-arm-cortex-m-devices" title="http://blog.atollic.com/how-to-develop-and-debug-bootloader-application-systems-on-arm-cortex-m-devices"&gt;How to develop and debug BOOTLOADER + APPLICATION systems on ARM Cortex-M devices&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Nov 2017 12:01:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733943#M2274</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-11-27T12:01:22Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733944#M2275</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is application note - Serial bootloader for MPC5748G. Hope it helps to understand how bootloader works&amp;nbsp;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/application-note/AN5319.pdf" title="https://www.nxp.com/docs/en/application-note/AN5319.pdf"&gt;https://www.nxp.com/docs/en/application-note/AN5319.pdf&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Nov 2017 12:24:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733944#M2275</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-11-27T12:24:34Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733945#M2276</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In S32K144 MCU, whether can we have both boot loader executing from flash memory and updating of application firmware taking place to flash memory at the same time ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please guide the best approach whether executing boot loader from SRAM or flash memory, which is good option on S32K144.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is to understand fundamental Read-while-write operation of flash memory in S32K144 MCU.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Nov 2017 06:03:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733945#M2276</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-11-30T06:03:59Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733946#M2277</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;yes - that's way how for example RAppID bootloader works. Boot loader part is flashed from 0x0000 to 0x2000&amp;nbsp; and bootloader is flashing application from 0x2000 address.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After reset is RAppID bootloader waiting for new firmware till timeout occurs. Then is executed application (if it is present).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In your case may be better idea (to save boot time) after reset check some GPIO pin (set by master MCU as a update request flag) - if the update is not requested - execute your existing firmware without any delay (if is present in the Flash memory).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Nov 2017 09:47:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733946#M2277</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-11-30T09:47:18Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733947#M2278</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I could write small boot loader that flashes the received application firmware from teraterm over UART to flash memory(10th sector = 10*4096 = 40960). How can I jump to this address from boot loader on S32K144?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2017 12:14:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733947#M2278</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-12-04T12:14:11Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733948#M2279</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you can use inline asm branch instruction - in case that you are using C language and on address 0xA000 is entry point (main) function of your firmware:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__asm__("b 0xA000");&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Dec 2017 14:30:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733948#M2279</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-12-04T14:30:36Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733949#M2280</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you guide me how to receive and parse SREC file over uart. So after parsing the SREC file, I should flash the file to flash memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Dec 2017 07:32:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733949#M2280</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-12-07T07:32:18Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733950#M2281</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In your case - flashing one kind of application (your firmware) - with known format (or the format can be coordinated with existing bootloader) - is easier way transfer binary file without any parsing. You need server side application (on PC or your master MCU) which is sending portion of data per client request. You also need to check if the data are okay (CRC/Verification read...).&amp;nbsp; In ideal case (bin file never exceed 64kB) you can use minimalistic settings - copy data from UART directly into RAM then flash data from RAM into PFLASH and verify with Server if the data are correct. In this case it is possible use binary file send from terminal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using srec is more universal - but more complicated. You will need server side application which is sending data on client (S32K144) request (for example one srec line). On client side you need to identify type of line (S0-S9), extract addess, data and check CRC. You also need to convert text data into binary format.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can start with srec description here&amp;nbsp;&lt;A class="link-titled" href="https://en.wikipedia.org/wiki/SREC_(file_format)" title="https://en.wikipedia.org/wiki/SREC_(file_format)"&gt;SREC (file format) - Wikipedia&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Dec 2017 08:10:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733950#M2281</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-12-07T08:10:47Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733951#M2282</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Assume I have bin file of size 35KB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which UART functions should I use to receive complete file in one shot. This is only for testing purpose.&lt;/P&gt;&lt;P&gt;Later I shall implement that you suggested like part by part with proper acknowledgements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;How I can use below functions to receive complete bin file of 35KB in one shot.&lt;/P&gt;&lt;P&gt;LPUART_DRV_ReceiveData(INST_LPUART1, &amp;amp;sourceBuffer, &lt;STRONG&gt;???????&lt;/STRONG&gt;);&lt;BR /&gt; while(LPUART_DRV_GetReceiveStatus(INST_LPUART1, &amp;amp;bytesRemain) != STATUS_SUCCESS);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Dec 2017 09:29:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733951#M2282</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-12-07T09:29:42Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733952#M2283</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you can use something like&amp;nbsp;&lt;BR /&gt;LPUART_DRV_ReceiveData(INST_LPUART1, bin_data, BIN_LEN);&lt;/P&gt;&lt;P&gt;where BIN_LEN is size of binary file and bin_data is global array uint8_t bin_data[BIN_LEN].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you don't know size - you can add some timeout in receive-done-check loop and use bin_data array with some MAX_BIN_LEN constant (for exampe 0xC000).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Normally is RAM divided into two sections - m_data and m_data_2&amp;nbsp;&amp;nbsp;- first one with 0x8000 size and second with 0x7000 size. In attachment is modified linker file with m_data section only. RAM size is 0xF000.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Dec 2017 14:25:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733952#M2283</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-12-07T14:25:01Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733953#M2284</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From C program, I got to know bin file size is "35084".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I use this file size, my loop is not getting break. It is reporting timeout error.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please find below source code snippet and error.&lt;/P&gt;&lt;P&gt;******************************************************************************************************************&lt;/P&gt;&lt;P&gt;#define BUFFER_SIZE&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;35084u&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Size of data source */&lt;/P&gt;&lt;P&gt;uint8_t sourceBuffer[BUFFER_SIZE];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for( ;; )&lt;BR /&gt; {&lt;BR /&gt;LPUART_DRV_ReceiveDataBlocking(INST_LPUART1, &amp;amp;sourceBuffer, BUFFER_SIZE,10);&lt;BR /&gt; while(LPUART_DRV_GetReceiveStatus(INST_LPUART1, &amp;amp;bytesRemain) != STATUS_SUCCESS);&lt;BR /&gt; break;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;******************************************************************************************************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/4267iD089595A3FEC256E/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any workaround for this problem?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Dec 2017 07:34:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733953#M2284</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-12-08T07:34:37Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733954#M2285</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you need to put way bigger timeout in your receive function. Transfering 35kB takes at least 3+ sec. You also have to count time between receive start and clicking on Send button in your terminal. For testing purposes - 20 000 ms is good value.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Dec 2017 09:00:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733954#M2285</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-12-08T09:00:11Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733955#M2286</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;I tried with 20000,30000,50000 timeout values but still no luck. There is still timeout error.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;for&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;( ;; )&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small;"&gt;//LPUART_DRV_ReceiveData(INST_LPUART1, &amp;amp;sourceBuffer, BUFFER_SIZE);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;LPUART_DRV_ReceiveDataBlocking(INST_LPUART1, &amp;amp;sourceBuffer, BUFFER_SIZE,30000);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small;"&gt;while&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;(LPUART_DRV_GetReceiveStatus(INST_LPUART1, &amp;amp;bytesRemain) != &lt;/SPAN&gt;&lt;EM style=": ; color: #0000c0; font-size: small;"&gt;STATUS_SUCCESS&lt;/EM&gt;&lt;SPAN style="font-size: small;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small;"&gt;break&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have attached bin file, can you suggest exact timeout value to receive this file if possible?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Dec 2017 09:28:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733955#M2286</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-12-08T09:28:01Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733956#M2287</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for me is 30s okay, receive ends with STATUS_SUCCESS and RAM is filled up:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/4620i26E3C4953FC9CCD6/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In attachment is modified lp_uart_echo example which I used for test.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Dec 2017 09:40:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733956#M2287</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-12-08T09:40:29Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733957#M2288</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to flash hello sample project binary from my boot loader to pflash at address 0x6000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I generated hello.bin file using below command. The size is around 2KB.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;C:\NXP\S32DS_ARM_v2.0\Cross_Tools\gcc-arm-none-eabi-4_9\bin&amp;gt;arm-none-eabi-objcopy.exe -O binary C:\Users\MKumar4\Desktop\S32_Arm_2.0_workspace\hello\Debug\hello.elf hello.bin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I could successfully receive the hello.bin over uart and flash to sixth sector(6*4096 = 0x6000)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After flashing, below assembly instruction seems to be not working, I mean boot loader to application firmware jump is not successful.&lt;/P&gt;&lt;P&gt;&amp;nbsp;==&amp;gt; &lt;SPAN style="color: #7f0055; font-size: small;"&gt;&lt;STRONG&gt;__asm__&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-size: small;"&gt;"b 0x6000"&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I am correct and above assembly instruction was successful, then hello.bin should be running in infinite loop(i.e, glowing LED on SW2 button press). This is not happening.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have attached hello.elf and hello.bin files for your reference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Dec 2017 06:22:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733957#M2288</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-12-12T06:22:27Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733958#M2289</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mohan,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it looks like that you just built hello example project and you are trying to flash it from address 0x6000. Above is in one answer that you need to modify linker file (for reference you can look at boot loader example - also mentioned above).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If your&amp;nbsp; bin file is flashed from address 0x6000 - on that address starts IRQ Vector table. Executable code starts from 0x0410 + 0x6000 address and on this address is Reset handler. Entry point (main function) is on address 0x6000 + 0x0480&amp;nbsp; in your case. In attachment is object dump (arm-none-eabi-objdump.exe -d -x hello.elf) output from your hello.elf.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jiri&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Dec 2017 12:55:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733958#M2289</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2017-12-13T12:55:37Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader_s32K how it works for S32K144</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733959#M2290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jiri,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for making the subject clear.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After reading your mail, I went through linker scripts for boot loader and hello. Both the linker scripts are using same memory location addresses. So definitely there is memory conflict.&lt;/P&gt;&lt;P&gt;I am attaching linker scripts of boot loader and hello for your reference(without modification).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I can change linker script of hello. I shall retain memory range for SRAM_L. Whether below modification is&amp;nbsp;correct in&amp;nbsp;hello linker script ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; /* Flash */&lt;BR /&gt;&amp;nbsp; m_interrupts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RX)&amp;nbsp; : ORIGIN = 0x00006000, LENGTH = 0x00000400&lt;BR /&gt;&amp;nbsp; m_flash_config&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (RX)&amp;nbsp; : ORIGIN = 0x00006400, LENGTH = 0x00000010&lt;BR /&gt;&amp;nbsp; m_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; (RX)&amp;nbsp; : ORIGIN = 0x00006410, LENGTH = 0x0007FBF0&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SRAM_L */&lt;BR /&gt;&amp;nbsp; m_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; (RW)&amp;nbsp; : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* SRAM_U */&lt;BR /&gt;&amp;nbsp; m_data_2&amp;nbsp;&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)&amp;nbsp; : ORIGIN = 0x20000000, LENGTH = 0x00007000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;With above changes, it is still not working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have minimal&amp;nbsp;knowledge on linker scripts.&amp;nbsp;Can I get your help to modify hello linker script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Mohan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Dec 2017 06:39:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/Bootloader-s32K-how-it-works-for-S32K144/m-p/733959#M2290</guid>
      <dc:creator>mrajanna</dc:creator>
      <dc:date>2017-12-14T06:39:06Z</dc:date>
    </item>
  </channel>
</rss>

