<!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>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff size=2><SPAN 
class=231250015-05122008>&nbsp;&nbsp;&nbsp; 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&nbsp;u procesorů bez ní to&nbsp;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>&nbsp;</DIV><!-- Converted from text/plain format -->
<P><FONT size=2>Radek (benedikt@lphard.cz)<BR>&nbsp;</FONT> </P>
<DIV><FONT face=Arial color=#0000ff size=2></FONT>&nbsp;</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&nbsp;<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>&nbsp;&nbsp;#define CFG_SDRAM_BASE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp;0x10000000<BR></DIV>
  <DIV>
  <DIV>
  <DIV>&nbsp;&nbsp;int noErrors=0,noErrors2=0;</DIV>
  <DIV>&nbsp;&nbsp;volatile unsigned long *sdram = (void *) 
  CFG_SDRAM_BASE;</DIV></DIV>
  <DIV><BR></DIV></DIV>
  <DIV>&nbsp;// TEST1 - ZAPIS A CTENI</DIV>
  <DIV>&nbsp;&nbsp;for (i = 0; i &lt; sdram_size; i++){</DIV>
  <DIV>&nbsp;&nbsp; &nbsp;sdram[i] = i;</DIV>
  <DIV>&nbsp;&nbsp; &nbsp;tmp = sdram[i];</DIV>
  <DIV>&nbsp;&nbsp; &nbsp;if (tmp != i) {</DIV>
  <DIV>&nbsp;&nbsp; &nbsp; &nbsp;noErrors++;</DIV>
  <DIV>&nbsp;&nbsp; &nbsp;}</DIV>
  <DIV>&nbsp;&nbsp;}</DIV>
  <DIV>&nbsp;&nbsp;/* TEST - JEN CTENI</DIV>
  <DIV>&nbsp;&nbsp;for (i = 0; i &lt; sdram_size; i++){</DIV>
  <DIV>&nbsp;&nbsp; &nbsp;tmp = sdram[i];</DIV>
  <DIV>&nbsp;&nbsp; &nbsp;if (tmp != i) {</DIV>
  <DIV>&nbsp;&nbsp; &nbsp; &nbsp;noErrors2++;</DIV>
  <DIV>&nbsp;&nbsp; &nbsp;}</DIV>
  <DIV>&nbsp;&nbsp;}</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>