Jak zrobić Pendrive?

May 04, 2009 13 Replies

Witam



Mam takie pytanie:



Czy da się w prosty sposób, najlepiej na uC f-my Microchip, zrobić pendrive. Chodzi mi oczywiście o urządzenie,które jest widziane przez system jako dysk USB (może być tylko jeden katalog/folder) z plikami, które ja w tym urządzeniu mogę modyfikować za pomocą procesora stanowiącego część tego Pendrive'a.


Może ktoś się gdzieś spotkał z podobnym projektem?



Pozdrawiam



Jacek Poźniak



toć na stronie microchipa jest gotowy program urządzenia mass storage... ale moim zdaniem jego wartość edukacyjno-przydatnościowa jest zerowa... kod jest nieźle zamieszany, do tego w pdfie microchipa opis interfejsu usb zmieścił się na 2 stronach...

identyfikator: 20040501 pisze:

Dzięki, jakoś przeoczyłem; to moje początki z USB. Pozdrawiam Jacek

no ale jakbyś przetrawił dokumentację i stworzył coś wartościowego to konieczanie się pochwal na grupie!

Można by tak: czytnik kart SD ( mam wielkości pendrajwa ) i zapisywać bezpośrednio przez złącze karty.

Mirek.

jacek pisze:

Jak już uporasz się z pierwszą częścią zadania (zrobienie pendrive) to napotkasz problem z czytaniem przez system plików w których zmieniasz wartości z poziomu procka tego pendrive. Zrobiłem sobie na ARMie urządzenie które od strony pcta miało byc widoczne jako USB Mass Storage. Wymyśliłem sobie, że podczas pomiarów będę zmieniał dane w pliku utworzonym na widocznym przez pc dysku. Wszystko dobrze ale pc nie widział zmian w pliku. Nie pomogło mieszanie z czasem modyfikacji pliku. Po prostu system (zarówno Windows jak i Linuks nie widzi zmian które powstały w pliku po podmontowaniu do systemu plików a które zmiany nie były wykonane przez tenże system. Jak wypiąłem wtyczkę USB i wpiąłem ponownie - wszystko było dobrze zmiany zostały odczytane. Dało się to obejść czytaniem wprost z odpowiedniego /dev/sda ale OIDP wymagało odmontowania dysku z systemu plików.

Pan Mario napisał:

A zamontowany z opcją "sync"?

Powinno wystarczyć samo ponowne zamontowanie z opcją "remount" (bez odmontowania).

Odmontowanie nie jest w takim przypadku konieczne.

Mario pisze:

Dokładnie o coś takiego mi chodzi!

Ale u mnie faza "pomiarów" będzie zawsze przy odłączonym "dysku" od komputera.

Pozdr. jp

Jarosław Sokołowski pisze:

Nie pamiętam, ale: "Mounting it 'sync' means the data is written to the flash card (almost?) immediately after it's written in userspace. Mounting it async means there is a write buffer." Czyli synchronizowanie jest natychmiast po zapisie w userspace. Ale skoro nic w userspace się nie zdarzyło (tylko w penie) to nie będzie synchronizacji.

Zapewne wystarczało ale już nie pamiętam dokładnie.

Możliwe - nie pamiętam. Próbowałem na różne sposoby.

Pan Mario napisał:

Ale man podaje również, że opcja dotyczy operacji I/O. Co do outputu, dobrze wiem, że to tak działa. A inputu nigdy nie ma jak sprawdzić. Dlatego spytałem.

Nie wiem jak zadziała, ale prostsze wydaje się operowanie na /proc/sys/vm/drop_caches

Mirek pisze:

Thx. Jak odgrzebię ten projekt to sprawdzę. Na razie musi poczekać aż zrobię nową płytkę.

Albo po prostu emulować kartę.

i jak Ci się podoba dokumentacja i źródła microchipa?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required