Skocz do zawartości

FAT32 na karcie SDHC ATMega32


davidpi

Pomocna odpowiedź

Witam.

Zakładam ten temat gdyż próbuje obsłużyć kartę SDHC z systemem FAT32 i mam problem. Prawdopodobnie nie będzie to ostatni problem więc dobrze by było pytać w jednym temacie.

Mam kartę SDHC 4GB. Ściągnąłem biblioteki do obsługi FAT 32 z tej strony http://www.roland-riegel.de/sd-reader/

Analizowałem je przez 2 dni i już większość funkcji rozumiem.

Próbuje zatem uruchomić to wszystko. Funkcja sd_raw_init() inicjuje prawidłowo kartę. Mogę do niej zapisywać dane w formacie raw i odczytywać je.

Po inicjacji karty używam funkcji

struct partition_struct* partition = partition_open(sd_raw_read, sd_raw_read_interval, sd_raw_write, sd_raw_write_interval, 0);

zwraca ona strukturę z parametrami partycji. Jednak dane które zwraca są nieprawidłowe. Typ partycji, jej początkowy offset oraz ilość sektorów są wzięte z kosmosu. Podejrzałem zatem kartę w WinHex i w miejscu gdzie powinny być te informacje znalazłem coś takiego jak na zdjęciu. Obok wyświetliłem parametry odczytywane z karty z tych pól. Informacje o partycji są zapisane na 16 bajtach począwszy od 0x01BE

Mimo formatowania zawartość się nie zmienia i cały czas piszę o błędzie.

Co z tym zrobić?? Pomóżcie bo już się zaczynam gubić.

Kupiłem nową kartę SDHC 4GB Kingston. Włożyłem i podejrzałem w WinHex i były tam same zera. Sformatowałem i od tej pory w tej nowej karcie również jest napis taki jak w starej. Czy tak ma być?? Czy ktoś z Was mógłby podejrzeć jakąś swoją kartę w WinHex i powiedzieć i czy macie taki sam pierwszy sektor??

A może te informacje o partycji są zapisane pod jakimś innym adresem??

Link do komentarza
Share on other sites

Dzięki za odpowiedź.

Ściągnąłem program test disk. Potraktowałem nim tą nową kartę (sam nie wiem co zrobiłem bo nie pamiętam) i o dziwo działa ona dobrze. Wkładam ją do urządzenia i poprawnie odczytuje typ partycji i inne rzeczy. Jednak w podglądzie w WinHex wygląda pierwszy sektor identycznie jak w starej niedziałającej.

Tak to wygląda:

Podsumowując:

Karta działa w urządzeniu. Chyba poprawnie jest odczytywany typ partycji, offset i rozmiar w sektorach. Zastanawia mnie tylko jedna rzecz?? Skąd te dane są odczytywane, skoro w pierwszym sektorze zamiast tych informacji jest tamten napis??

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.