<?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>LPC Microcontrollers中的主题 Secondary Bootloader</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524161#M6797</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Dave on Sat Nov 09 00:51:45 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi guys - I haven't been here in awhile - hope everybody's projects are working perfectly!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm starting work on a secondary bootloader, and I'm looking for suggestions...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since my bootloader needs to interact with the GLCD, SDRAM, and USB (and probably the serial port for diagnostics), it's not going to be a tiny bootloader.&amp;nbsp; And since my main application interacts with all of these routines as well, I foresee wasted memory with redundant copies of code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What if my bootloader has all the necessary routines (drivers, if you will) loaded, and the main application could have access to them after it's loaded.&amp;nbsp; This would remove the redundancy and allow for a larger main application.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Has anybody else run into this scenario, and actually made it work?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm looking for ideas.&amp;nbsp; I was thinking about forcing the mapping of driver routines using a scatter file when the bootloader is loaded, and then stubbing out function pointers in the main application at specific addresses, but that seemed a little "brute force".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there a mechanism for transferring a memory map from one application to another?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using Keil's development environment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance for any replys.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Dave&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:06:55 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:06:55Z</dc:date>
    <item>
      <title>Secondary Bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524161#M6797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Dave on Sat Nov 09 00:51:45 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi guys - I haven't been here in awhile - hope everybody's projects are working perfectly!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm starting work on a secondary bootloader, and I'm looking for suggestions...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since my bootloader needs to interact with the GLCD, SDRAM, and USB (and probably the serial port for diagnostics), it's not going to be a tiny bootloader.&amp;nbsp; And since my main application interacts with all of these routines as well, I foresee wasted memory with redundant copies of code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What if my bootloader has all the necessary routines (drivers, if you will) loaded, and the main application could have access to them after it's loaded.&amp;nbsp; This would remove the redundancy and allow for a larger main application.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Has anybody else run into this scenario, and actually made it work?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm looking for ideas.&amp;nbsp; I was thinking about forcing the mapping of driver routines using a scatter file when the bootloader is loaded, and then stubbing out function pointers in the main application at specific addresses, but that seemed a little "brute force".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there a mechanism for transferring a memory map from one application to another?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using Keil's development environment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance for any replys.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Dave&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:06:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524161#M6797</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:06:55Z</dc:date>
    </item>
    <item>
      <title>Re: Secondary Bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524162#M6798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by xianghuiwang on Sat Nov 16 10:44:24 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi David,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe you can put your bootloader function locations at the end of the interrupt vector table and access them the same way as the interrupt functions.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Good luck!&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:06:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524162#M6798</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:06:56Z</dc:date>
    </item>
    <item>
      <title>Re: Secondary Bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524163#M6799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Dave on Sat Jul 05 21:16:16 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;That's a really good idea!&amp;nbsp; Thanks for the suggestion.&amp;nbsp; I ended up just replicating everything in both, since I needed to get the project done, but I will probably have to revisit this issue when the app program gets too big.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll let everyone know if it ever comes up...&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:06:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524163#M6799</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:06:56Z</dc:date>
    </item>
    <item>
      <title>Re: Secondary Bootloader</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524164#M6800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by david.harper on Thu Aug 14 20:57:32 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a similar project going. My plan is to link against a symdefs file (see Kiel linker docs). Proof of concept code works but I'm hitting some issues with IAP.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dave&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:06:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Secondary-Bootloader/m-p/524164#M6800</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:06:57Z</dc:date>
    </item>
  </channel>
</rss>

