Najpierw proponuję sprawdzić tablicę partycji czy testujemy porządny obszar.
qq2440 # mtdparts device nand0 <nandflash0>, # parts = 3 #: name size offset mask_flags 0: kernel 0x00200000 0x00000000 0 1: jffs2 0x00800000 0x00200000 0 2: yaffs 0x03600000 0x00a00000 0 active partition: nand0,0 - (kernel) 0x00200000 @ 0x00000000 defaults: mtdids : nand0=qq2440-nand mtdparts: <NULL>
Oto prosty snippet do wykrywania bad blocków w pamięci NAND flash za pomocą U-Boota.
mw 0x32000000 55aa55aa 20000 nand write 0x32000000 0x00a00000 0x80000 nand read 0x32080000 0x00a00000 0x80000 cmp.l 0x32000000 0x32080000 0x20000
Objaśnienia po kolei:
- do ramu (0×3200000) wpisujemy jakieś bajty testowe (0x550xaa0x550xaa) i to razy 0×20000. Rozmiar jaki chcemy przetestować podzielony przez 4
- potem zapisujemy to do flasha (0xa00000) na testowany obszar
- odczytujemy do innego obszaru pamięci
- testujemy
Wyniki mogą być takie (adresy w przykładzie są z innego testu):
word at 0x32180000 (0x55aa55aa) != word at 0x32200000 (0x00000000) Total of 393216 words were the same
Jeżeli znajdziemy jakiegoś babola wypada go odznaczyć, offset w pamięci flash trzeba obliczyć ręcznie, ale to chyba nie problem:
nand markbad 0xa00000

#1 by sheep on 09/05/2009 - 21:41
A jaki to ma związek z pythonem, bo chyba nie nadążam…
#2 by Krzysiek on 09/05/2009 - 22:49
Nie ma
aktualnie po godzinach zajmuję się urządzeniami wbudowanymi. A w pracy przerabiam stare sztuczki w Pythonie i nie mam się niestety czym ciekawym podzielić. W ramach resocjalizacji postaram się przywrócić stare artykuły z Pydeva. A na marginesie blog jest nie komercyjny, więc piszę o czym mi się podoba. Przepraszam, jeżeli domena i tytuł Cię zmyliły, nie był to celowy zabieg. Zawodowo piszę min. w Pythonie i chciałem wznowić bloga, którego kiedyś prowadziłem na tej domenie. Może jak skończę dyplom, to po godzinach zajmę się również Pythonem. Póki co wrzucam tu co mi ślina na język przyniesie i basta!
Pozdrawiam,
KC
[WORDPRESS HASHCASH] The poster sent us ’0 which is not a hashcash value.