PDA

Visualizza la versione completa : Leggere memorie a basso livello


Visionario
29-02-2008, 20:10
Salve a tutti,

sto cercando informazioni di come poter leggere memorie quali HD, memory stick del tipo SD e MMC a basso livello e magari anche scriverci sopra sempre a basso livello.
A tal proposito che liguaggio si dovrebbe operare il "C" può andare bene?
Qualsiasi documentazioni che avete sia Ita che Eng vanno benissimo.
Saluti.

oregon
29-02-2008, 20:15
Beh ... non e' affatto una cosa semplicissima ...

Non so quale sia la tua esperienza (anche se, non volermene, dalla domanda, non mi parte tantissima ...) ma dovresti scrivere codice a livello di 'device driver' (insomma, a livello kernel) e questo presuppone una grandissima esperienza ...

E poi, a che scopo?

Visionario
29-02-2008, 20:56
Il mio scopo è leggere una memoria MMC scritta molto probabilmente con un formato proprietario, inquanto ne windows ne linux riconoscono il file system con la quale funziona questa scheda.
Questa è la ragione che mi spinge a trovare info relativa alla lettura a basso livello.
La mia esperienza in merito a questa cosa? Non ho esperienza di programmazione a basso livello ne di accesso a periferiche esterne, ma per il resto ho una buona conoscenza.
Che non sia semplicissima ne sono consapevole. Dopo tutta questa premessa che ti chiarifica il mio intento hai da indicarmi documenti appropiati? Per ora ho trovato solo qualche indizio molto generalistico dove mi si consiglia di usare l'interrupt 13 (int13). Mi confermi questa cosa?

Saluti

oregon
29-02-2008, 21:11
No ... sei fuori strada ... quella era una vecchissima indicazione per il DOS.

Con Windows devi accedere direttamente al device driver che gestisce la periferica di lettura/scrittura della MMC.

Non c'e' "un modo" preciso di farlo perche' dipende molto dal tipo di lettore e dal grado di "programmabilita'" del device driver ...

Probabilmente, il miglior modo di risolvere il tuo problema e' quello di costruire una piccola interfaccia hardware collegata alla porta parallela (trovi qualche esempio in rete) e dialogare con la MMC tramite il suo protocollo ...

MItaly
29-02-2008, 21:33
Be', ma se si tratta solo di leggere il contenuto fisico del disco basta usare la CreateFile passandole come file da aprire il percorso UNC del disco fisico (ad esempio \\.\PhysicalDrive0). Per ulteriori informazioni leggi la documentazione della API CreateFile (http://msdn2.microsoft.com/en-us/library/aa363858(VS.85).aspx), sezione Remarks paragrafo Physical Disks and Volumes.
In ogni caso diversi editor esadecimali supportano la lettura diretta da dischi fisici o logici; personalmente ti consiglio Tiny Hexer (http://www.mirkes.de/blog/index.php?archives/2-English.html&serendipity%5Blang_selected%5D=en).

oregon
29-02-2008, 21:42
Sì ma poi per leggere dovrebbe usare la DeviceIoControl, ad esempio, indicando il codice

IOCTL_DISK_GET_DRIVE_GEOMETRY

per ottenere la geometria del device ...

Ma se il file system usato per la mmc non e' standard (anzi, magari non esiste un file system ma semplicemente dei dati scritti in settori successivi ...), tutte le chiamate potrebbero fallire ...

Per quanto riguarda i programmi gia' pronti, ne esistono tanti, ma allora si tratta di una richiesta di software (quindi non in programmazione ma in "software" ...)

MItaly
29-02-2008, 22:21
(un tempo qui ci fu una cavolata :stordita: )

Visionario
29-02-2008, 22:48
Come prima cosa ho provato l'editor, ma purtroppo mi restituisce un errore e non riesce a leggere la scheda, "System errore code:87 Parametro non corretto".

A questo punto devo usare un altro metodo. In più se utilizzo un software già fatto, non progredisco e non imparo nulla di nuovo.

Vorrei tentare di scriverlo io, però vorrei capire meglio quale dei due sistemi mi può far raggiungere lo scopo, approfondisco il CreateFile come suggeritomi da MItaly o "costruire una piccola interfaccia HW" (cosa fin ora mai fatta) suggeritami da oregon?

MItaly
29-02-2008, 23:01
Il metodo della CreateFile molto probabilmente non funzionerà per il motivo che ha detto oregon (tra l'altro anche Tiny Hexer molto probabilmente usa quel metodo - e come vedi non ha funzionato); dovresti seguire il consiglio di oregon, ma è un gran casino.

oregon
29-02-2008, 23:02
Prima di tutto ... sei sicuro che la MMC non sia danneggiata?

Se non e' cosi', sai quale device ci ha scritto?

P.S. Per i progetti hw, pensavo a qualcosa del genere ...

http://www.randomuseless.info/accelerometer/reader/reader.html

... ma non garantisco ...

Loading