<?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 LPC17xx Secondary bootloader in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC17xx-Secondary-bootloader/m-p/534432#M4089</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by sapana.hanchate on Fri May 10 22:43:36 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am developing secondary bootloader for LPC1788. I have followed application notes AN10866. I have used LPCXpresso to compile code instead of keil uvision. For boot jump I have added new .s file which is as follows&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;.global boot_jump

.section text
.syntax unified

boot_jump:
ldr sp, [r0]
ldr pc, [r0, #4]&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Bootloader is working fine. I can update firmware.bin in windows. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Issue is when I call function execute_user_code(), processor calls HardFaultISR() in application and code stucks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have divided flash as described in document. Also I have divided RAM for bootloader and user application as below&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In application&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;MEMORY
{
&amp;nbsp; /* Define each memory region */
&amp;nbsp; MFlash512 (rx) : ORIGIN = 0x0004000, LENGTH = 0x0007C000 /* 512k - 16k */
&amp;nbsp; RamLoc64 (rwx) : ORIGIN = 0x10001000, LENGTH = 0x0F000 /* 64k - 4k */
&amp;nbsp; RamPeriph32 (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 /* 32k */

}
&amp;nbsp; /* Define a symbol for the top of each memory region */
&amp;nbsp; __top_MFlash512 = 0x00002000 + 0x0007E000;
&amp;nbsp; __top_RamLoc64 = 0x10001000 + 0x0F000;
&amp;nbsp; __top_RamPeriph32 = 0x20000000 + 0x8000;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In bootloader&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;MEMORY
{
&amp;nbsp; /* Define each memory region */
&amp;nbsp; MFlash512 (rx) : ORIGIN = 0x0, LENGTH = 0x04000 /* 16k */
&amp;nbsp; RamLoc64 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x1000 /* 4k */
&amp;nbsp; RamPeriph32 (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 /* 32k */

}
&amp;nbsp; /* Define a symbol for the top of each memory region */
&amp;nbsp; __top_MFlash512 = 0x0 + 0x04000;
&amp;nbsp; __top_RamLoc64 = 0x10000000 + 0x1000;
&amp;nbsp; __top_RamPeriph32 = 0x20000000 + 0x8000;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can somebody help me to figure out why processor throwing hardfault interrupt.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sapana&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 00:21:10 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T00:21:10Z</dc:date>
    <item>
      <title>LPC17xx Secondary bootloader</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC17xx-Secondary-bootloader/m-p/534432#M4089</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by sapana.hanchate on Fri May 10 22:43:36 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am developing secondary bootloader for LPC1788. I have followed application notes AN10866. I have used LPCXpresso to compile code instead of keil uvision. For boot jump I have added new .s file which is as follows&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;.global boot_jump

.section text
.syntax unified

boot_jump:
ldr sp, [r0]
ldr pc, [r0, #4]&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Bootloader is working fine. I can update firmware.bin in windows. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Issue is when I call function execute_user_code(), processor calls HardFaultISR() in application and code stucks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have divided flash as described in document. Also I have divided RAM for bootloader and user application as below&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In application&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;MEMORY
{
&amp;nbsp; /* Define each memory region */
&amp;nbsp; MFlash512 (rx) : ORIGIN = 0x0004000, LENGTH = 0x0007C000 /* 512k - 16k */
&amp;nbsp; RamLoc64 (rwx) : ORIGIN = 0x10001000, LENGTH = 0x0F000 /* 64k - 4k */
&amp;nbsp; RamPeriph32 (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 /* 32k */

}
&amp;nbsp; /* Define a symbol for the top of each memory region */
&amp;nbsp; __top_MFlash512 = 0x00002000 + 0x0007E000;
&amp;nbsp; __top_RamLoc64 = 0x10001000 + 0x0F000;
&amp;nbsp; __top_RamPeriph32 = 0x20000000 + 0x8000;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In bootloader&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;MEMORY
{
&amp;nbsp; /* Define each memory region */
&amp;nbsp; MFlash512 (rx) : ORIGIN = 0x0, LENGTH = 0x04000 /* 16k */
&amp;nbsp; RamLoc64 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x1000 /* 4k */
&amp;nbsp; RamPeriph32 (rwx) : ORIGIN = 0x20000000, LENGTH = 0x8000 /* 32k */

}
&amp;nbsp; /* Define a symbol for the top of each memory region */
&amp;nbsp; __top_MFlash512 = 0x0 + 0x04000;
&amp;nbsp; __top_RamLoc64 = 0x10000000 + 0x1000;
&amp;nbsp; __top_RamPeriph32 = 0x20000000 + 0x8000;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can somebody help me to figure out why processor throwing hardfault interrupt.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sapana&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 00:21:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC17xx-Secondary-bootloader/m-p/534432#M4089</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T00:21:10Z</dc:date>
    </item>
  </channel>
</rss>

