<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: ARM Flash Memory</title>
	<atom:link href="http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html</link>
	<description>Maker of Finest Quality Digital Things</description>
	<lastBuildDate>Wed, 20 Apr 2011 06:42:32 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
	<item>
		<title>By: Kiran Kumar</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-14382</link>
		<dc:creator>Kiran Kumar</dc:creator>
		<pubDate>Mon, 04 Jan 2010 09:58:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-14382</guid>
		<description>Thnx for this information..
This information was useful for us to directly find the number of bytes
occupying by ROM and RAM areas...

Regards,
Kiran</description>
		<content:encoded><![CDATA[<p>Thnx for this information..<br />
This information was useful for us to directly find the number of bytes<br />
occupying by ROM and RAM areas&#8230;</p>
<p>Regards,<br />
Kiran</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evon</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-14080</link>
		<dc:creator>Evon</dc:creator>
		<pubDate>Sat, 09 Aug 2008 00:02:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-14080</guid>
		<description>hi Adam,

I figured out what my problem is. My program is running from flash.</description>
		<content:encoded><![CDATA[<p>hi Adam,</p>
<p>I figured out what my problem is. My program is running from flash.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evon</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-14079</link>
		<dc:creator>Evon</dc:creator>
		<pubDate>Fri, 08 Aug 2008 22:30:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-14079</guid>
		<description>Hi Adam,

Have you tried writing multiple pages at a time? My single page write in my project works. But for multiple writes... I put a loop to call my write function multiple time. It always gives me a prefetch abort if I run the program. However if I step over the function each time, it writes the pages successfully. I am using IAR btw. 

I tried to put a loop on your code as well. Same thing happens. Umm, am I using the right approach? any idea?

Thank you. 

Evon</description>
		<content:encoded><![CDATA[<p>Hi Adam,</p>
<p>Have you tried writing multiple pages at a time? My single page write in my project works. But for multiple writes&#8230; I put a loop to call my write function multiple time. It always gives me a prefetch abort if I run the program. However if I step over the function each time, it writes the pages successfully. I am using IAR btw. </p>
<p>I tried to put a loop on your code as well. Same thing happens. Umm, am I using the right approach? any idea?</p>
<p>Thank you. </p>
<p>Evon</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13989</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Thu, 17 Apr 2008 11:51:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13989</guid>
		<description>The linker outputs a map file which should list all the memory segments and how large they are. In the map file, look for lines like this:

.text   0x00202000     0x631c

This shows the start address and size of a segment, in this example the &quot;.text&quot; (code) segment which has a size of 0x631c (25372) bytes.

If you are writing in C, there is also RAM used by the stack and the heap which cannot be easily calculated at compile time.</description>
		<content:encoded><![CDATA[<p>The linker outputs a map file which should list all the memory segments and how large they are. In the map file, look for lines like this:</p>
<p>.text   0&#215;00202000     0x631c</p>
<p>This shows the start address and size of a segment, in this example the &#8220;.text&#8221; (code) segment which has a size of 0x631c (25372) bytes.</p>
<p>If you are writing in C, there is also RAM used by the stack and the heap which cannot be easily calculated at compile time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AbhiT</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13986</link>
		<dc:creator>AbhiT</dc:creator>
		<pubDate>Wed, 09 Apr 2008 11:13:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13986</guid>
		<description>hi adam
  can u tell me plz- where to see that how much code memory &amp; programm memory taken by target(ARM processor) in ARM developer suite....Actualy .mcp file is showing that...but data mem is 0 though it is used</description>
		<content:encoded><![CDATA[<p>hi adam<br />
  can u tell me plz- where to see that how much code memory &amp; programm memory taken by target(ARM processor) in ARM developer suite&#8230;.Actualy .mcp file is showing that&#8230;but data mem is 0 though it is used</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13972</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Tue, 18 Mar 2008 00:21:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13972</guid>
		<description>Sorry Zulu, this article is about the ARM Flash Memory, not the timers. I have never used the timers on the ARM so I&#039;m afraid you&#039;re on your own with this one.</description>
		<content:encoded><![CDATA[<p>Sorry Zulu, this article is about the ARM Flash Memory, not the timers. I have never used the timers on the ARM so I&#8217;m afraid you&#8217;re on your own with this one.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zulu</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13970</link>
		<dc:creator>Zulu</dc:creator>
		<pubDate>Sat, 15 Mar 2008 14:29:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13970</guid>
		<description>Hello again,
Ok, I&#039;ve got the simulator working but when using timers (timer0 and timer1) , I am unable to get the proper delay on the oscilloscope, (e.g. on pin 4.2). If I want a delay of 1msec, I usually get a higher value delay, the main code is;
int main()   //in aduc7024 40960000 instruction/sec is the max   processing speed
{
WHILE(1)  //infinite loop
{
T1LD=0*0A000;     //40960000 * 0.001 = 40960 =A000 hex
T1CON=0*0C0;
GP0CON = 0x00;             // for p4.2
 while(T1VAL!=0){} //wait for the t1ld value to become zero
GP4DAT ^= 0x04000000; //complement pin 4.2 level
T1CON0;
}
}	

The powcon and pllcon registers are both 0. To get the desired result what changes do I need to make?</description>
		<content:encoded><![CDATA[<p>Hello again,<br />
Ok, I&#8217;ve got the simulator working but when using timers (timer0 and timer1) , I am unable to get the proper delay on the oscilloscope, (e.g. on pin 4.2). If I want a delay of 1msec, I usually get a higher value delay, the main code is;<br />
int main()   //in aduc7024 40960000 instruction/sec is the max   processing speed<br />
{<br />
WHILE(1)  //infinite loop<br />
{<br />
T1LD=0*0A000;     //40960000 * 0.001 = 40960 =A000 hex<br />
T1CON=0*0C0;<br />
GP0CON = 0&#215;00;             // for p4.2<br />
 while(T1VAL!=0){} //wait for the t1ld value to become zero<br />
GP4DAT ^= 0&#215;04000000; //complement pin 4.2 level<br />
T1CON0;<br />
}<br />
}	</p>
<p>The powcon and pllcon registers are both 0. To get the desired result what changes do I need to make?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zulu</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13969</link>
		<dc:creator>Zulu</dc:creator>
		<pubDate>Sat, 15 Mar 2008 06:24:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13969</guid>
		<description>HI Adam,
Ok things are going fine on the debugger side but I am unable to generate accurate timer delays using IAR compiler for aduc7024. The code for a simple 1msec delay is

int main()
{
 GP0CON = 0x00;             // for p4.2
 	while(1){  //infinite loop
T0LD = 0xA000;	// Counter Value
	T0CON = 0xC0		// count down,system core clock divided by 1
// periodic mode

while(T0VAL!=0){}   //producing delay

  
 T0CON=0;

 GP4DAT ^= 0x04000000;	//complementing pin4.2
}
}
But on oscilloscope when I check the pin4.2 the result is not 1msec.
but a greater value, I have checked powcon and pllcon registers,their values are both 0.
Please Advise.</description>
		<content:encoded><![CDATA[<p>HI Adam,<br />
Ok things are going fine on the debugger side but I am unable to generate accurate timer delays using IAR compiler for aduc7024. The code for a simple 1msec delay is</p>
<p>int main()<br />
{<br />
 GP0CON = 0&#215;00;             // for p4.2<br />
 	while(1){  //infinite loop<br />
T0LD = 0xA000;	// Counter Value<br />
	T0CON = 0xC0		// count down,system core clock divided by 1<br />
// periodic mode</p>
<p>while(T0VAL!=0){}   //producing delay</p>
<p> T0CON=0;</p>
<p> GP4DAT ^= 0&#215;04000000;	//complementing pin4.2<br />
}<br />
}<br />
But on oscilloscope when I check the pin4.2 the result is not 1msec.<br />
but a greater value, I have checked powcon and pllcon registers,their values are both 0.<br />
Please Advise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13967</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Sun, 09 Mar 2008 09:43:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13967</guid>
		<description>If you can&#039;t get a debugger to work, you could just write some extra code into your application to dump state, variables and so on out the serial port.</description>
		<content:encoded><![CDATA[<p>If you can&#8217;t get a debugger to work, you could just write some extra code into your application to dump state, variables and so on out the serial port.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zulu</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13961</link>
		<dc:creator>Zulu</dc:creator>
		<pubDate>Mon, 03 Mar 2008 18:06:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13961</guid>
		<description>Hi again,
I have started using quick start kit from ADI, using aduc7024. Every thing worked fine but from yesterday I am unable to debug using ROM Monitor utility(it&#039;s the only utility using rs232 since I dont have any jtag device), 
I get a communication error that unable to connect to ROM monitor after two attempts, try again? When I say no, it gives me the error message;
Mon Mar 03 22:55:03 2008: Failed to load debugee: D:\aduc702x\Debug\Exe\1.d79
But when I try programming/downloading the code into in microcontroller its does fine and the program is run.
So no hardware problem in my opinion,?... Do you any other debuggers(evaluation/otherwise) using rs232 instead of jtag etc.
Any ideas?....
Regards,
Zulu.</description>
		<content:encoded><![CDATA[<p>Hi again,<br />
I have started using quick start kit from ADI, using aduc7024. Every thing worked fine but from yesterday I am unable to debug using ROM Monitor utility(it&#8217;s the only utility using rs232 since I dont have any jtag device),<br />
I get a communication error that unable to connect to ROM monitor after two attempts, try again? When I say no, it gives me the error message;<br />
Mon Mar 03 22:55:03 2008: Failed to load debugee: D:\aduc702x\Debug\Exe\1.d79<br />
But when I try programming/downloading the code into in microcontroller its does fine and the program is run.<br />
So no hardware problem in my opinion,?&#8230; Do you any other debuggers(evaluation/otherwise) using rs232 instead of jtag etc.<br />
Any ideas?&#8230;.<br />
Regards,<br />
Zulu.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13949</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Mon, 18 Feb 2008 10:46:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13949</guid>
		<description>You&#039;ll find this on any processor.

Code memory is where the program is stored - this would be assigned to ROM (actually flash memory in the ARM).
Data memory is where the program stores its data - this would be assigned to RAM.
You might also see an allocation for stack space which is in RAM too.

You can compare the numbers in the map file with the memory map of your particular chip to see if your program is going to fit in the available memory.</description>
		<content:encoded><![CDATA[<p>You&#8217;ll find this on any processor.</p>
<p>Code memory is where the program is stored &#8211; this would be assigned to ROM (actually flash memory in the ARM).<br />
Data memory is where the program stores its data &#8211; this would be assigned to RAM.<br />
You might also see an allocation for stack space which is in RAM too.</p>
<p>You can compare the numbers in the map file with the memory map of your particular chip to see if your program is going to fit in the available memory.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zulu</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13948</link>
		<dc:creator>Zulu</dc:creator>
		<pubDate>Sun, 17 Feb 2008 22:01:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13948</guid>
		<description>Hi,
I know its a stupid question, but I am kinda new in ARM, but I want to ask this that, what is a code memory and data memory which my IAR compiler gives me the values atthe end of the map file and the list file. 
I am trying to find out how much RAM and ROM my program is taking on aduc7024. 
The range is 64k rom and 8k ram.
I hope you can help?...
Regards,
Zulu.</description>
		<content:encoded><![CDATA[<p>Hi,<br />
I know its a stupid question, but I am kinda new in ARM, but I want to ask this that, what is a code memory and data memory which my IAR compiler gives me the values atthe end of the map file and the list file.<br />
I am trying to find out how much RAM and ROM my program is taking on aduc7024.<br />
The range is 64k rom and 8k ram.<br />
I hope you can help?&#8230;<br />
Regards,<br />
Zulu.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13916</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Sun, 06 Jan 2008 10:56:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13916</guid>
		<description>Thanks for posting that Stefan! I&#039;ll give it a try.</description>
		<content:encoded><![CDATA[<p>Thanks for posting that Stefan! I&#8217;ll give it a try.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13915</link>
		<dc:creator>Stefan</dc:creator>
		<pubDate>Sun, 06 Jan 2008 10:43:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13915</guid>
		<description>For some reason the code displays garbled, so here again:

for(i = 0; i &lt; size; i++)	
{
	buf = (*(data+4*i)) &#124; (*(data+4*i+1) &lt;&lt; 8 ) &#124; (*(data+4*i+2) &lt;&lt; 16) &#124; (*(data+4*i+3) &lt;&lt; 24);
	*(dest+i) = buf;										
}</description>
		<content:encoded><![CDATA[<p>For some reason the code displays garbled, so here again:</p>
<p>for(i = 0; i &lt; size; i++)<br />
{<br />
	buf = (*(data+4*i)) | (*(data+4*i+1) &lt;&lt; 8 ) | (*(data+4*i+2) &lt;&lt; 16) | (*(data+4*i+3) &lt;&lt; 24);<br />
	*(dest+i) = buf;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13914</link>
		<dc:creator>Stefan</dc:creator>
		<pubDate>Sun, 06 Jan 2008 10:40:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13914</guid>
		<description>Hi Adam,

thanks for this great example. 
The problems, that some users might have, seems to be related to the type conversion that&#039;s going on. When you try to read the char buffer (char buf[96];) with 4-Byte alignment then this only works if the address of buf is (coincidentally or otherwise) 4-byte aligned! Otherwise the uC will throw a data abort exception. The code works perfectly if the 32bit word is assembled from the char array without the pointer casting, like so:
------------------------------------------
RUNFROMRAM int FlashWrite(unsigned int address, char *data, unsigned int size)
{
	unsigned int i;
	unsigned int page;
	unsigned int buf;
	unsigned int *dest = (unsigned int *) address;
		
	size = (size + 3) / 4;	
	
	for(i = 0; i &lt; size; i++)	
	{
		buf = (*(data+4*i)) &#124; (*(data+4*i+1) &lt;&lt; 8) &#124; (*(data+4*i+2) &lt;&lt; 16) &#124; (*(data+4*i+3) &lt;MC_FCR = AT91C_MC_WRITE_KEY &#124; AT91C_MC_FCMD_START_PROG &#124; (page &lt;&lt; 8);	// Write the page to Flash memory.

---------------------------------------------------
Hope this helps those users who found themselves stuck in exceptions!

Regards
Stefan</description>
		<content:encoded><![CDATA[<p>Hi Adam,</p>
<p>thanks for this great example.<br />
The problems, that some users might have, seems to be related to the type conversion that&#8217;s going on. When you try to read the char buffer (char buf[96];) with 4-Byte alignment then this only works if the address of buf is (coincidentally or otherwise) 4-byte aligned! Otherwise the uC will throw a data abort exception. The code works perfectly if the 32bit word is assembled from the char array without the pointer casting, like so:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
RUNFROMRAM int FlashWrite(unsigned int address, char *data, unsigned int size)<br />
{<br />
	unsigned int i;<br />
	unsigned int page;<br />
	unsigned int buf;<br />
	unsigned int *dest = (unsigned int *) address;</p>
<p>	size = (size + 3) / 4;	</p>
<p>	for(i = 0; i &lt; size; i++)<br />
	{<br />
		buf = (*(data+4*i)) | (*(data+4*i+1) &lt;&lt; 8) | (*(data+4*i+2) &lt;&lt; 16) | (*(data+4*i+3) &lt;MC_FCR = AT91C_MC_WRITE_KEY | AT91C_MC_FCMD_START_PROG | (page &lt;&lt; 8);	// Write the page to Flash memory.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Hope this helps those users who found themselves stuck in exceptions!</p>
<p>Regards<br />
Stefan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13898</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Mon, 26 Nov 2007 12:19:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13898</guid>
		<description>Phot,

Is there any chance you could post some sample gcc code somewhere?

My code is hanging too, but I&#039;m unable to fix it. Everthing seems
to be set right; write cycle timer, executing from ram, using the
example code, but it hangs just as FCR is written :/

Paul.</description>
		<content:encoded><![CDATA[<p>Phot,</p>
<p>Is there any chance you could post some sample gcc code somewhere?</p>
<p>My code is hanging too, but I&#8217;m unable to fix it. Everthing seems<br />
to be set right; write cycle timer, executing from ram, using the<br />
example code, but it hangs just as FCR is written :/</p>
<p>Paul.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Phot</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13841</link>
		<dc:creator>Phot</dc:creator>
		<pubDate>Thu, 15 Nov 2007 04:20:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13841</guid>
		<description>Well I have solved my problem (point 13). While I have placed the flash write in RAM (as it should be), I did not place one of my timer interrupts in RAM which caused an load abort interrupt to be generated if the timer interrupt took place while the flash was still being written. 
Another option might be to disable the interrupts while the flash is written.</description>
		<content:encoded><![CDATA[<p>Well I have solved my problem (point 13). While I have placed the flash write in RAM (as it should be), I did not place one of my timer interrupts in RAM which caused an load abort interrupt to be generated if the timer interrupt took place while the flash was still being written.<br />
Another option might be to disable the interrupts while the flash is written.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Phot</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-13789</link>
		<dc:creator>Phot</dc:creator>
		<pubDate>Wed, 14 Nov 2007 09:56:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-13789</guid>
		<description>I have compiled your code with the IAR compiler and it worked first time. Next I tried it with the GCC compiler and I have the same problem as the other people above. (The code is exacaly the same except for the startup code) 

The code does not execute beyond the point mentioned (if I set a break point). If I break the code with the debugger after it stopped it PC is 0x0000C (some exeption). To make things more interesting the code does not crash if I step it with the debugger. Also note, irrespective if the program crash or not, the flash is always written successfully. (I have checked all the things you mentioned and they look OK)</description>
		<content:encoded><![CDATA[<p>I have compiled your code with the IAR compiler and it worked first time. Next I tried it with the GCC compiler and I have the same problem as the other people above. (The code is exacaly the same except for the startup code) </p>
<p>The code does not execute beyond the point mentioned (if I set a break point). If I break the code with the debugger after it stopped it PC is 0x0000C (some exeption). To make things more interesting the code does not crash if I step it with the debugger. Also note, irrespective if the program crash or not, the flash is always written successfully. (I have checked all the things you mentioned and they look OK)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-12527</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Thu, 18 Oct 2007 12:32:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-12527</guid>
		<description>Here are some things to check:
1. Is the write cycle timer in MC_FMR set correctly for your clock speed ?
2. Are you using 32 bit write operations ?
3. Does your chip have the correct programming voltage applied ?
4. Do you have any locks set on the flash memory ?
5. Is the page number correct ?
6. Does the address you are writing overwrite your application&#039;s code ?
7. And of course, read the manual: http://www.atmel.com/dyn/resources/prod_documents/doc6175.pdf</description>
		<content:encoded><![CDATA[<p>Here are some things to check:<br />
1. Is the write cycle timer in MC_FMR set correctly for your clock speed ?<br />
2. Are you using 32 bit write operations ?<br />
3. Does your chip have the correct programming voltage applied ?<br />
4. Do you have any locks set on the flash memory ?<br />
5. Is the page number correct ?<br />
6. Does the address you are writing overwrite your application&#8217;s code ?<br />
7. And of course, read the manual: <a href="http://www.atmel.com/dyn/resources/prod_documents/doc6175.pdf" rel="nofollow">http://www.atmel.com/dyn/resources/prod_documents/doc6175.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alireza</title>
		<link>http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html/comment-page-1#comment-12472</link>
		<dc:creator>Alireza</dc:creator>
		<pubDate>Wed, 17 Oct 2007 09:49:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.doctort.org/adam/nerd-notes/arm-flash-memory.html#comment-12472</guid>
		<description>Its interesting that the buffer is written on the flash correctly but the code is hanged there.</description>
		<content:encoded><![CDATA[<p>Its interesting that the buffer is written on the flash correctly but the code is hanged there.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

