Atmel website | ARM Community | AVR freaks | Technical Support
Banner
 FAQ •  Search •  Register •  Login 

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 15 posts ] 
Author Message
 Post subject: ARM Programming and Optimisation Techniques
PostPosted: Mon Sep 12, 2005 10:28 pm 
Offline
User avatar

Joined: Fri Feb 13, 2004 7:53 pm
Posts: 329
Dear All,

A tutorial about ARM Programing Optimisation Techniques covering the ARM Architecture, the pipeline of an ARM7TDMI, C coding optimisation to reduce memory footprint or execution speed.

Enjoy !


Top
 Profile  
 
 Post subject: Single Page Programming on AT91SAM764
PostPosted: Fri Dec 16, 2005 3:15 am 
Offline

Joined: Thu Sep 22, 2005 11:36 pm
Posts: 3
I am having trouble programming a single page in flash.

It starts the instruction, and the data in the flash page changes to the new data, but I get a pre-fetch abort error before the instruction is finshed.


Top
 Profile  
 
 Post subject: Thanks
PostPosted: Thu Mar 16, 2006 7:16 am 
Offline

Joined: Thu Mar 16, 2006 7:12 am
Posts: 2
Thanks for the great code! :evil:


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 27, 2006 9:14 am 
Offline

Joined: Mon Mar 27, 2006 8:52 am
Posts: 2
thanks~~~


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 10, 2006 1:41 am 
Offline

Joined: Tue Mar 28, 2006 8:43 pm
Posts: 7
Thanks, the block copy optimization came in handy in my bootloader. :D


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 13, 2006 4:08 pm 
Offline

Joined: Wed Aug 16, 2006 8:24 pm
Posts: 8
Location: MA, US
The link for download is broken. After I clicked the download link, I got a blank page.

Kelly


Top
 Profile  
 
 Post subject:
PostPosted: Mon Oct 16, 2006 4:54 pm 
Offline

Joined: Wed Sep 06, 2006 6:49 am
Posts: 1
link works ok.
Great tutorial, by the way.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Oct 25, 2006 4:23 pm 
Offline

Joined: Fri Sep 23, 2005 6:20 pm
Posts: 109
Location: Texas
The link doesn't work for me. Clicking on it brings up a blank page with a little icon with a an 'X' in it (looks like a broken link icon).


Top
 Profile  
 
 Post subject:
PostPosted: Thu Oct 26, 2006 5:33 pm 
Offline

Joined: Thu Jan 12, 2006 11:33 am
Posts: 8
Location: Australia
The link is definitely ok, works fine for me in both Firefox and Safari. It sounds like misconfiguration with your browser and/or Acrobat installation. Try a different browser.

The PDF is 112,763 bytes and should work in any version of Acrobat or Adobe Viewer 4.x or later.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Apr 23, 2007 3:58 pm 
Offline

Joined: Thu Dec 02, 2004 2:28 pm
Posts: 504
hello,
has anybody a link where i can download the file?

regards
gerhard


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 25, 2007 2:21 am 
Offline

Joined: Wed Apr 25, 2007 2:19 am
Posts: 1
where is the link for the tutorial,?
can somebody please postthe link, as i cannot see the link in this post.
thnx
cal


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 26, 2007 11:57 am 
Offline
User avatar

Joined: Fri Feb 13, 2004 7:53 pm
Posts: 329
It has been moved here,

regards,

http://www.at91.com/repFichier/Document-253/Efficient%20programming%20techniques%20for%20ARM.pdf


Top
 Profile  
 
 Post subject: does a load realy takes 3 cycles?
PostPosted: Wed Aug 06, 2008 1:52 am 
Offline

Joined: Thu May 15, 2008 2:00 am
Posts: 4
hello,

I thought that a LOAD only took 1 cycle if you did not use the loaded value just after...

ie:
LDR R0, [R1]
ADD R2, R2, R4
ADD R2, R2, R0

takes 3 cycles because the end of the LDR is able to run in "parallel" with the ADD R2, R2 R4

while
LDR R0, [R1]
ADD R2, R2, R0
ADD R2, R2, R4
is 4 cycles because we need to wait 1 cycle for the end of the LDR before the ADD R2, R2, R0?

also, I thought that a non executed loop was only 1 cycle as the ARM assumes that a branch is not taken and that the 3 cycle for the loop was only in the case where the loop was executed.

can anyone confirm?

regards, cyrille


Top
 Profile  
 
 Post subject: Re: does a load realy takes 3 cycles?
PostPosted: Fri Aug 15, 2008 11:34 am 
Offline

Joined: Fri Aug 15, 2008 11:29 am
Posts: 1
brebisson wrote:
hello,

I thought that a LOAD only took 1 cycle if you did not use the loaded value just after...

ie:
LDR R0, [R1]
ADD R2, R2, R4
ADD R2, R2, R0

takes 3 cycles because the end of the LDR is able to run in "parallel" with the ADD R2, R2 R4

while
LDR R0, [R1]
ADD R2, R2, R0
ADD R2, R2, R4
is 4 cycles because we need to wait 1 cycle for the end of the LDR before the ADD R2, R2, R0?

also, I thought that a non executed loop was only 1 cycle as the ARM assumes that a branch is not taken and that the 3 cycle for the loop was only in the case where the loop was executed.

can anyone confirm?

regards, cyrille


That is true of ARM9, but not ARM7. In ARM7, the load is always three cycles (ignoring any delays imposed by the memory system). On the first cycle it calculates the address for the load, the second it actual performs the read and because it doesn't get the data back until the end of the cycle, it then takes a further cycle to update the register. ARM9 has two additional pipeline stages which allow these cycles to be hidden, if (as you say), the loaded data is not used by a following instruction.

It is correct that for both ARM7 and ARM9, a non-taken branch is 1 cycle and a taken branch is 3 cycles.

Riveywood


Top
 Profile  
 
 Post subject: Re: ARM Programming and Optimisation Techniques
PostPosted: Tue Nov 04, 2008 2:55 pm 
Offline

Joined: Wed Jun 25, 2008 9:04 am
Posts: 7
a good job thanks


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 15 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: