<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-2">
<META content="MSHTML 6.00.5730.13" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=231250015-05122008>Ahoj,</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=231250015-05122008></SPAN></FONT> </DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN
class=231250015-05122008> Takovýto test čtení/zápis je na dvě
věci na nic a na... Jednak se u některých procesorů projeví cache a přečte se to
z ní a i u procesorů bez ní to mnohdy projde pokud na sběrnici nic
není připojené. Poprvé se na sběrnici zapíší data a vzápětí se z ní přečtou a s
dost velkou pravděpodobností správně - do "vzduchu" zapsaná data udrží parazitní
kapacity sběrnice. Já obvykle zapíšu prvním cyklem data jako inicializaci a v
následujícím cyklu dělám test ne zápis a čtení ale čtení a zápis. Prostě se data
nejprve přečtou, porovnají s předpokládanou hodnotou zapsanou předchozím cyklem
a zapíšou se nová, nejlépe inverzní. A jde se na další buňku... Níže uvedený
zdrojáj je spíš parodie na test.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT> </DIV><!-- Converted from text/plain format -->
<P><FONT size=2>Radek (benedikt@lphard.cz)<BR> </FONT> </P>
<DIV><FONT face=Arial color=#0000ff size=2></FONT> </DIV><FONT face=Arial
color=#0000ff size=2></FONT><FONT face=Arial color=#0000ff size=2></FONT><BR>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=cs dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> hw-list-bounces@list.hw.cz
[mailto:hw-list-bounces@list.hw.cz] <B>On Behalf Of </B>Luboš
Melichar<BR><B>Sent:</B> Friday, December 05, 2008 10:10 AM<BR><B>To:</B>
HW-news<BR><B>Subject:</B> avr32 - ap7000 - sdram problem<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>
<DIV>Zdravim,</DIV>
<DIV>avr32, deska podobna NGW100, tj. s procesorem AP7000...</DIV>
<DIV>Zlobi nas sdram, mame tam dve 16bitove 32MB sdram.</DIV>
<DIV>Celkove tedy 64MB 32bit.. to je ale celkem jedno..</DIV>
<DIV><BR></DIV>
<DIV>Stahnul sem si test atmelu AP avr32102 <A
href="http://www.atmel.com/dyn/products/app_notes.asp?family_id=682">http://www.atmel.com/dyn/products/app_notes.asp?family_id=682</A></DIV>
<DIV><BR></DIV>
<DIV>a trochu ho poupravil.. (init SDRAM podle NGW100)<BR></DIV>
<DIV>testovaci rutina vypada nasledovne..</DIV>
<DIV><BR></DIV>
<DIV> #define CFG_SDRAM_BASE
0x10000000<BR></DIV>
<DIV>
<DIV>
<DIV> int noErrors=0,noErrors2=0;</DIV>
<DIV> volatile unsigned long *sdram = (void *)
CFG_SDRAM_BASE;</DIV></DIV>
<DIV><BR></DIV></DIV>
<DIV> // TEST1 - ZAPIS A CTENI</DIV>
<DIV> for (i = 0; i < sdram_size; i++){</DIV>
<DIV> sdram[i] = i;</DIV>
<DIV> tmp = sdram[i];</DIV>
<DIV> if (tmp != i) {</DIV>
<DIV> noErrors++;</DIV>
<DIV> }</DIV>
<DIV> }</DIV>
<DIV> /* TEST - JEN CTENI</DIV>
<DIV> for (i = 0; i < sdram_size; i++){</DIV>
<DIV> tmp = sdram[i];</DIV>
<DIV> if (tmp != i) {</DIV>
<DIV> noErrors2++;</DIV>
<DIV> }</DIV>
<DIV> }</DIV></DIV><BR>Pichnu se na to pres JTAG a necham
probehnout az na konec a vysledek je noErrors=0, noErrors2=67108848.
<DIV>Veskere nastaveni a podrobnosti jsem zatim vynechal, z toho ze prvni
cyklus probehl v poradku usuzuji ze HW je principielne v poradku.</DIV>
<DIV>Napada Vas nekoho kde muze byt chyba?</DIV>
<DIV><BR></DIV>
<DIV>diky.</DIV></BLOCKQUOTE></BODY></HTML>