<?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: Multiple Programs on same LPC1345 Chip in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589426#M28633</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ub3r on Sat Dec 08 09:02:52 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey Zero,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your reply its exactly what I'm looking for, although i have yet to implement it.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 01:21:53 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T01:21:53Z</dc:date>
    <item>
      <title>Multiple Programs on same LPC1345 Chip</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589423#M28630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ub3r on Thu Dec 06 08:20:09 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Guys,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[B]Basic info:[/B]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to create a boot application at address 0x00000000.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Also another application at address 0x00002000.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;And a third application at address 0x00004000.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[U][B]Aim:[/B][/U]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The chip boots into the boot program, and then run one of the other 2 application depending on the state of some I/O.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The boot program also consists of a USB-CDC, and i plan to update the other 2 flash locations via the boot app CDC..&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[U][B]Problem:[/B][/U]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not sure how to jump to a particular flash address to execute the new application from the boot program??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Im sure there's an easy way.. I just haven't found it after searching for a while now.. :confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;cheers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tony&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:21:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589423#M28630</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:21:51Z</dc:date>
    </item>
    <item>
      <title>Re: Multiple Programs on same LPC1345 Chip</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589424#M28631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Thu Dec 06 08:33:09 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Not sure what we are talking about :confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A program which jumps to a flash address after setting new vector table as used in a lot of bootloaders?&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; 
#define USER_START_SECTOR_ADDRESS 0x2000

/remap vector table to sector 2 and call reset table address (sector address + 4 bytes)
void execute_user_code(void)
{
 void (*user_code_entry)(void);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //pointer to function
 unsigned *p;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //pointer to read reset address
//remap vector table address
 SCB-&amp;gt;VTOR = (USER_START_SECTOR_ADDRESS &amp;amp; 0x1FFFFF80);
//read reset address from vector table = sector 2 + 4 bytes
 p = (unsigned *)(USER_START_SECTOR_ADDRESS + 4 );
//set content of reset address to function call
 user_code_entry = (void *) *p;
//and go...
 user_code_entry();
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:21:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589424#M28631</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:21:52Z</dc:date>
    </item>
    <item>
      <title>Re: Multiple Programs on same LPC1345 Chip</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589425#M28632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Jeroen3 on Fri Dec 07 01:49:50 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Take a look at operating systems (like &lt;/SPAN&gt;&lt;A href="http://http://www.freertos.org"&gt;freertos&lt;/A&gt;&lt;SPAN&gt;), they might do exactly what you are looking for.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:21:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589425#M28632</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:21:53Z</dc:date>
    </item>
    <item>
      <title>Re: Multiple Programs on same LPC1345 Chip</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589426#M28633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ub3r on Sat Dec 08 09:02:52 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey Zero,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your reply its exactly what I'm looking for, although i have yet to implement it.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:21:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589426#M28633</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:21:53Z</dc:date>
    </item>
    <item>
      <title>Re: Multiple Programs on same LPC1345 Chip</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589427#M28634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ub3r on Sat Dec 08 09:55:42 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;hey Zero,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I just tried the code and its works perfectly. :D&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Although i still dont understand where the '0x1FFFFF80' comes from??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tony&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:21:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589427#M28634</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:21:54Z</dc:date>
    </item>
    <item>
      <title>Re: Multiple Programs on same LPC1345 Chip</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589428#M28635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Sat Dec 08 11:15:32 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;AFAIR that's 17xx code and a few lower bits are reserved to prevent us from trying to squeeze long vector tables in overlapping memory areas :o&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not familiar with LPC1345, but I hope your vector table will fit in 0x2000 :rolleyes:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:21:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589428#M28635</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:21:54Z</dc:date>
    </item>
    <item>
      <title>Re: Multiple Programs on same LPC1345 Chip</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589429#M28636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ub3r on Sat Dec 08 16:32:48 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Well after examining further i now know where the 0x1FFFFF80 comes from... 0b11111111111111111111110000000..&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anyways it works fine.. The LPC1345 flash range is 0x0000 -&amp;gt; 0x8000.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I compiled a program and loaded it into address 0x0000, and another blinky program at 0x2000. The chip boots into 0x0000, the boot program sets a new vector to 0x2000, and the chip blinks away.. :D&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again..&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:21:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Multiple-Programs-on-same-LPC1345-Chip/m-p/589429#M28636</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:21:55Z</dc:date>
    </item>
  </channel>
</rss>

