<?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>LPCXpresso IDE中的主题 Re: LPC1769 flash, memory mapping</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532775#M3271</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by inspire on Fri Mar 15 15:31:24 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;ah my bad, of course this is not working, sorry. This must be an address, so of course&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;printf("written: %u\n", u32IAP_CopyRAMToFlash(0x00010000, (uint32_t) &amp;amp;test, 256));&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But this gives the same message "SRC_ADDR_NOT_MAPPED".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The whole main.c file:&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;#ifdef __USE_CMSIS
#include "LPC17xx.h"
#endif

#include &amp;lt;cr_section_macros.h&amp;gt;
#include &amp;lt;NXP/crp.h&amp;gt;

// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP;

#include &amp;lt;stdio.h&amp;gt;

#include "IAP/IAP.h"

int main(void) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemCoreClockUpdate();

&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t test = 123456;

&amp;nbsp;&amp;nbsp;&amp;nbsp; __disable_irq();

&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("prepare: %u\n", u32IAP_PrepareSectors(16, 16)); // success
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("erase: %u\n", u32IAP_EraseSectors(16, 16)); // success

&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("prepare: %u\n", u32IAP_PrepareSectors(16, 16)); // success
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("written: %u\n", u32IAP_CopyRAMToFlash(0x00010000, (uint32_t) &amp;amp;test, 256)); // "SRC_ADDR_NOT_MAPPED"

&amp;nbsp;&amp;nbsp;&amp;nbsp; __enable_irq();

&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To complete the IAP.c file from my first post, here are the used macros:&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;
/* IAP Command Status Codes */
#define IAP_STA_CMD_SUCCESS&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0
#define IAP_STA_INVALID_COMMAND&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;&amp;nbsp; 1
#define IAP_STA_SRC_ADDR_ERROR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2
#define IAP_STA_DST_ADDR_ERROR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3
#define IAP_STA_SRC_ADDR_NOT_MAPPED&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; 4
#define IAP_STA_DST_ADDR_NOT_MAPPED&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; 5
#define IAP_STA_COUNT_ERROR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6
#define IAP_STA_INVALID_SECTOR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7
#define IAP_STA_SECTOR_NOT_BLANK&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; 8
#define IAP_STA_SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9
#define IAP_STA_COMPARE_ERROR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10
#define IAP_STA_BUSY&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;&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; 11
#define IAP_STA_INVALD_PARAM&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12

/* Define the flash page size, this is the minimum amount of data can be written in one operation */
#define IAP_FLASH_PAGE_SIZE_BYTES&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; 256
#define IAP_FLASH_PAGE_SIZE_WORDS&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; (IAP_FLASH_PAGE_SIZE_BYTES &amp;gt;&amp;gt; 2)

/* IAP Command Definitions */
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_PREPARE_SECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_COPY_RAM_TO_FLASH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 51
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_ERASE_SECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 52
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_BLANK_CHECK_SECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 53
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_READ_PART_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_READ_BOOT_ROM_VERSION&amp;nbsp;&amp;nbsp;&amp;nbsp; 55
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_COMPARE&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; 56
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_REINVOKE_ISP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 57
#define IAP_CMD_READ_SERIAL_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 58

/* IAP boot ROM location and access function */
#define IAP_ROM_LOCATION&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; 0x1FFF1FF1UL
#define IAP_EXECUTE_CMD(a, b)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((void (*)())(IAP_ROM_LOCATION))(a, b)
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;have a nice weekend!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 23:07:24 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T23:07:24Z</dc:date>
    <item>
      <title>LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532773#M3269</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by inspire on Fri Mar 15 12:36:24 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'm trying to write some bytes to the flash memory of the LPC1769 but this always fails with the message "SRC_ADDR_NOT_MAPPED".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The test code is:&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;
uint32_t test = 123456;

printf("prepare: %u\n", u32IAP_PrepareSectors(16, 16));
printf("written: %u\n", u32IAP_CopyRAMToFlash(0x00010000, (uint32_t) test, 256));
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and the functions&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;
uint32_t u32IAP_PrepareSectors(uint32_t u32StartSector, uint32_t u32EndSector)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t u32Status;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t au32Result[5];
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t au32Command[5];

&amp;nbsp;&amp;nbsp;&amp;nbsp; if (u32EndSector &amp;lt; u32StartSector)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u32Status = IAP_STA_INVALD_PARAM;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; au32Command[0] = IAP_CMD_PREPARE_SECTORS;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; au32Command[1] = u32StartSector;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; au32Command[2] = u32EndSector;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_EXECUTE_CMD(au32Command, au32Result);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u32Status = au32Result[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; return u32Status;
}

uint32_t u32IAP_CopyRAMToFlash(uint32_t u32DstAddr, uint32_t u32SrcAddr, uint32_t u32Len)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t au32Result[5];
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t au32Command[5];

&amp;nbsp;&amp;nbsp;&amp;nbsp; au32Command[0] = IAP_CMD_COPY_RAM_TO_FLASH;
&amp;nbsp;&amp;nbsp;&amp;nbsp; au32Command[1] = u32DstAddr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; au32Command[2] = u32SrcAddr;
&amp;nbsp;&amp;nbsp;&amp;nbsp; au32Command[3] = u32Len;
&amp;nbsp;&amp;nbsp;&amp;nbsp; au32Command[4] = SystemCoreClock / 1000UL;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Core clock frequency in kHz */

&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_EXECUTE_CMD(au32Command, au32Result);

&amp;nbsp;&amp;nbsp;&amp;nbsp; return au32Result[0];
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;what does this SRC_ADDR_NOT_MAPPED mean?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;inspire&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532773#M3269</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:23Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532774#M3270</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 Fri Mar 15 13:12:58 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;#1 Please post complete sources, not just code snippets ;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#2 Your source address is uint32_t test = 123456; :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That's 0x1E240 and probably a flash address. For that operation you need a Copy_Flash_to_Flash function :p&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532774#M3270</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:23Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532775#M3271</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by inspire on Fri Mar 15 15:31:24 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;ah my bad, of course this is not working, sorry. This must be an address, so of course&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;printf("written: %u\n", u32IAP_CopyRAMToFlash(0x00010000, (uint32_t) &amp;amp;test, 256));&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But this gives the same message "SRC_ADDR_NOT_MAPPED".&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The whole main.c file:&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;#ifdef __USE_CMSIS
#include "LPC17xx.h"
#endif

#include &amp;lt;cr_section_macros.h&amp;gt;
#include &amp;lt;NXP/crp.h&amp;gt;

// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP;

#include &amp;lt;stdio.h&amp;gt;

#include "IAP/IAP.h"

int main(void) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemCoreClockUpdate();

&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t test = 123456;

&amp;nbsp;&amp;nbsp;&amp;nbsp; __disable_irq();

&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("prepare: %u\n", u32IAP_PrepareSectors(16, 16)); // success
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("erase: %u\n", u32IAP_EraseSectors(16, 16)); // success

&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("prepare: %u\n", u32IAP_PrepareSectors(16, 16)); // success
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("written: %u\n", u32IAP_CopyRAMToFlash(0x00010000, (uint32_t) &amp;amp;test, 256)); // "SRC_ADDR_NOT_MAPPED"

&amp;nbsp;&amp;nbsp;&amp;nbsp; __enable_irq();

&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To complete the IAP.c file from my first post, here are the used macros:&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;
/* IAP Command Status Codes */
#define IAP_STA_CMD_SUCCESS&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0
#define IAP_STA_INVALID_COMMAND&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;&amp;nbsp; 1
#define IAP_STA_SRC_ADDR_ERROR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2
#define IAP_STA_DST_ADDR_ERROR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3
#define IAP_STA_SRC_ADDR_NOT_MAPPED&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; 4
#define IAP_STA_DST_ADDR_NOT_MAPPED&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; 5
#define IAP_STA_COUNT_ERROR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6
#define IAP_STA_INVALID_SECTOR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7
#define IAP_STA_SECTOR_NOT_BLANK&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; 8
#define IAP_STA_SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9
#define IAP_STA_COMPARE_ERROR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10
#define IAP_STA_BUSY&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;&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; 11
#define IAP_STA_INVALD_PARAM&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12

/* Define the flash page size, this is the minimum amount of data can be written in one operation */
#define IAP_FLASH_PAGE_SIZE_BYTES&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; 256
#define IAP_FLASH_PAGE_SIZE_WORDS&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; (IAP_FLASH_PAGE_SIZE_BYTES &amp;gt;&amp;gt; 2)

/* IAP Command Definitions */
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_PREPARE_SECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_COPY_RAM_TO_FLASH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 51
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_ERASE_SECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 52
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_BLANK_CHECK_SECTORS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 53
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_READ_PART_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 54
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_READ_BOOT_ROM_VERSION&amp;nbsp;&amp;nbsp;&amp;nbsp; 55
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_COMPARE&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; 56
#define&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_CMD_REINVOKE_ISP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 57
#define IAP_CMD_READ_SERIAL_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 58

/* IAP boot ROM location and access function */
#define IAP_ROM_LOCATION&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; 0x1FFF1FF1UL
#define IAP_EXECUTE_CMD(a, b)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((void (*)())(IAP_ROM_LOCATION))(a, b)
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;have a nice weekend!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532775#M3271</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:24Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532776#M3272</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 Fri Mar 15 15:38:12 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;And which address has your test?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hint: Look in your map file and then make your test global ;)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532776#M3272</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:25Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532777#M3273</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by inspire on Fri Mar 15 16:07:39 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;aw the global variable solves the problem! I struggled hours with this! Although I don't completely understand why there is a problem with local variables. They placed are in a different memory location, but both local and global variables are on the stack, right?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks a lot!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532777#M3273</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:25Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532778#M3274</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 Fri Mar 15 16:59:33 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: inspire&lt;/STRONG&gt;&lt;BR /&gt;...but both local and global variables are on the stack, right?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;:eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since when :confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://mbed.org/handbook/Memory-Model&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532778#M3274</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:26Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532779#M3275</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by inspire on Sat Mar 16 05:27:58 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;oh I didn't know that there is a memory region besides the heap and stack :O thanks for your help, now it works perfectly!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532779#M3275</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:26Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532780#M3276</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by inspire on Sat Mar 16 07:34:57 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;okay, one last question:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The first flash memory start address is 0x0000 0000 and the last address is 0x0007 FFFF. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The active interrupt vectors are from 0x0000 0000 to 0x0000 0400 and their content shouldn't be changed. But shouldn't 0x0000 0401 be accessable again? For example, when I write some values into 0x00001000 (sector 1), the LPC runs into a hard fault.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532780#M3276</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:27Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532781#M3277</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 Mar 16 07:58:57 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: inspire&lt;/STRONG&gt;&lt;BR /&gt;okay, one last question&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt; :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: inspire&lt;/STRONG&gt;&lt;BR /&gt;okay, one last question:&lt;BR /&gt;The first flash memory start address is 0x0000 0000 and the last address is 0x0007 FFFF. &lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You've a 512kB Flash :confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: inspire&lt;/STRONG&gt;&lt;BR /&gt;The active interrupt vectors are from 0x0000 0000 to 0x0000 0400 and&amp;nbsp; their content shouldn't be changed. But shouldn't 0x0000 0401 be&amp;nbsp; accessable again? For example, when I write some values into 0x00001000&amp;nbsp; (sector 1), the LPC runs into a hard fault.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not sure what you map file is telling you about flash usage of your program. Sector 1 is the second sector which begins at 4kB.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So if your code is &amp;gt;4kB you are writing funny values in a flash region which your LPC is trying to execute :o&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532781#M3277</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:28Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532782#M3278</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by inspire on Sat Mar 16 08:27:59 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I mean the last end address is 0x0007 FFFF. The LPC1769 has 512 kB flash memory, so it has sectors 22 to 29, doesn't it?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You are right, the programm code shouldn't be overwritten by something else. But how can I figure out which flash memory regions are "safe"?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532782#M3278</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:28Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532783#M3279</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 Mar 16 08:47:21 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: inspire&lt;/STRONG&gt;&lt;BR /&gt;I mean the last end address is 0x0007 FFFF. The&amp;nbsp; LPC1769 has 512 kB flash memory, so it has sectors 22 to 29, doesn't it?&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My LPC1769 even has 30 sectors :eek: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: inspire&lt;/STRONG&gt;&lt;BR /&gt;You are right, the programm code shouldn't be overwritten by something else. But how can I figure out which flash memory regions are "safe"?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Look in your map file to see how much flash is used ;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My programs are often &amp;lt; 480kB, so sector 29 (LPC1769) is my favorite to store my stuff in :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It's also a good idea to do an IAP sector blank check before erasing / writing. Storing a pattern at the first bytes of your data sector helps you to see if (your) non blank sector has been used for something else. But usually no one touches sector 29, so it's a 'safe' sector :)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532783#M3279</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:29Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532784#M3280</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by inspire on Sun Mar 17 08:03:20 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;ah alright, thanks a lot for your hints and help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532784#M3280</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:29Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532785#M3281</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by plexus on Mon Apr 22 06:14:54 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi, I've followed your sequence of posts and have one query. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is it possible to edit the linker template to avoid program code to be written into sector 29 this way ensuring that we can write data into it without messing up with program? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532785#M3281</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:30Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532786#M3282</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by plexus on Mon Apr 22 06:58:32 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: plexus&lt;/STRONG&gt;&lt;BR /&gt;Hi, I've followed your sequence of posts and have one query. &lt;BR /&gt;&lt;BR /&gt;Is it possible to edit the linker template to avoid program code to be written into sector 29 this way ensuring that we can write data into it without messing up with program? &lt;BR /&gt;&lt;BR /&gt;Thanks&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Figured it out. If you reduce the memory size in the memory editor to keep the last 32k out the linker will not use it to put program in. This way sector 29 will be free to save data.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532786#M3282</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:30Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 flash, memory mapping</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532787#M3283</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by fiuba1 on Mon Jun 17 15:34:05 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: inspire&lt;/STRONG&gt;&lt;BR /&gt;aw the global variable solves the problem! I struggled hours with this! Although I don't completely understand why there is a problem with local variables. They placed are in a different memory location, but both local and global variables are on the stack, right?&lt;BR /&gt;&lt;BR /&gt;thanks a lot!!!&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Inspire,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you provide the full test code for writing to the firmware? I tried to duplicate your approach but something's missing... the function "u32IAP_EraseSectors" for once; dunno if sthg else.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Or alternatively, where can I download the complete IAP libraries (.c / .h) from?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm also trying to accomplish my first writing into 1769's firmware and experiencing the usual troubles of the beginning of the lerning curve :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Matt&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:07:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-flash-memory-mapping/m-p/532787#M3283</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:07:31Z</dc:date>
    </item>
  </channel>
</rss>

