-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.ne
ws.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for
-mail
From: "J.F." <j...@p...onet.pl>
Newsgroups: pl.misc.elektronika
References: <o7ddno$b28$1@dont-email.me> <o7f8jr$e99$1@dont-email.me>
In-Reply-To: <o7f8jr$e99$1@dont-email.me>
Subject: Re: programowanie i kasowanie dwu kostek flash na jednej magistrali
Date: Fri, 10 Feb 2017 10:53:16 +0100
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Lines: 99
Message-ID: <589d8d8f$0$5141$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.26.179.58
X-Trace: 1486720399 unt-rea-a-01.news.neostrada.pl 5141 83.26.179.58:52470
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.misc.elektronika:712957
[ ukryj nagłówki ]Użytkownik "Pszemol" napisał w wiadomości grup
dyskusyjnych:o7f8jr$e99$...@d...me...
//check toggle bit2 indicating erase operation pending
while(Status1 = *pStatus, Status2 = *pStatus, (Status1 ^ Status2) &
(1 <<
2))
Tez mi sie ten kod nie podoba, ale patrze, patrze ... i bledu nie
widze :-)
Program sprawdzony z 1 koscia ?
Pierwsze co mi sie nie podoba ... czytam status1, pamiec konczy
czysczenie, do status2 czytam juz dane.
Ale nieszczescia nie bedzie ... jak bit niezgodny, to przeczytamy
jeszcze raz, a ewentualny blad bierzemy z bitow status1.
Jak zgodny, to jak rozumiem pamiec zakonczyla kasowanie poprawnie ?
{
if(Status1 & (1 << 5)) // check error bit on one chip
{
LEDFRed();
return 0;
A te bledy sie zgadzaja ? Co wtedy robisz ?
Bo tu mi jedna mozliwosc sie rysuje - pierwsza kostka zglasza blad,
robimy return ... a druga sie ciagle kasuje.
Jesli teraz zacznies jakies resety robic, to kto wie, jak to sie dla
drugiej skonczy.
}
}
while(Status1 = *pStatus, Status2 = *pStatus, (Status1 ^ Status2) &
(1 <<
(16+2)))
To mi sie nie podoba - bo najpierw sprawdzalismy pierwsza koste, a
druga lezala odlogiem.
Ale jesli w tym czasie druga sie skonczyla ... to program pojdzie
dalej, jak nie skonczyla, to poczeka,
jak zglasza blad ... dlugo to wachlowanie bitem wtedy trwa ? Czy nie
ma sytuacji takiej, ze druga kosc ma blad, a Ty ciagle w pierwszej
petli sprawdzasz pierwsza. Pierwsza sie skasuje, a drugiej juz sie
znudzi wachlowanie..
{
if(Status1 & (1 << (16+5))) // check error bit on second chip
{
LEDFRed();
return 0;
}
}
No i ... przerwania wylaczyles ? Bo jesli jakis odczyt sie zapląta
miedzy odczyt status1 i 2, to zakonczysz czekanie przed czasem
// Check the erase
if(*pSector != 0xffffffff)
{
LEDFRed();
return 0;
Moze sprawdzic caly blok, a nie tylko poczatek ?
Predkosciowo pamiec wyrabia ? moze trzeba troche opoznien dodac ?
}
else
return 1;
}
// returns 1 if success
int STFlashWrite32(unsigned int Address, unsigned char *pSource,
unsigned int Size)
A problem jest w kasowaniu czy w zapisie ?
{
int Timeout;
U32 Status1, Status2;
volatile U32 *pDest = (volatile U32 *)Address;
U32 *pData = (U32 *)pSource;
// EMCSC bit in System Controls and Status register is cleared in
Flash_Init().
// It controls how addresses are output on the EMC address pins.
// For 32 bit bus the address is shifted so A2 is on A0 pin.
U32 *pA1 = (U32 *)(EXTERNAL_FLASH_LOCATION + (0x555 << 2)); //555
16bit
mode
U32 *pA2 = (U32 *)(EXTERNAL_FLASH_LOCATION + (0x2AA << 2)); //2AA
16bit
mode
moze jakis volatile by sie przydal - bo jak kompilator wykryje, ze
stale pod jeden adres zapisuje to samo, to moze zoptymalizowac.
Cache jakiegos ten procesor nie ma ? Te zapisy wychodza do pamieci ?
J.
Następne wpisy z tego wątku
- 10.02.17 15:55 Pszemol
- 10.02.17 17:47 Piotr Dmochowski
- 10.02.17 17:54 J.F.
- 10.02.17 19:43 Piotr Dmochowski
- 10.02.17 20:05 J.F.
- 10.02.17 20:19 Piotr Dmochowski
- 10.02.17 20:28 J.F.
- 10.02.17 21:06 Pszemol
- 10.02.17 21:06 Pszemol
- 10.02.17 21:19 Pszemol
Najnowsze wątki z tej grupy
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek