Fórum témák
» Több friss téma |
Az első 8000 sectort én sem tudom olvasni, máig nem tudom hogy miért. Nagyobb címet kell megadni. Tölts rá az SD kártyára mondjuk egy TXT fájlat, keresd meg hogy az a fájl milyen címen található (pl. Disk Editor) és azt a címet add meg. Előtte nem árt ha megformátozod a kártyát.
A hozzászólás módosítva: Jún 28, 2015
Köszönöm, majd megpróbálom akkor egy nagyobb szektorcímmel is, de használnom kellene a file keresést is, ezt meg ott elöl kellene kezdeni !?
Nekem megy a 0. sector is. Igaz én CMD17-el olvasom ki. A Master boot record van ott nekem.
Azért nézném én is, de a CMD17 se volt sikeres ...!
Én jelenleg ott tartok, hogy a root és sub folder listázása kész. De még ösze kellene hozni a kettőt egy fügvénnyé. Valamint a file olvasás is kész, akár byte-onként is lehet olvasni. Viszont a fileon belüli pozícionálás még nincs kész. A byte-onkénti olvasással is rengeteget szívtam, egy hétvégém rá ment És akkor még a file írásról még szó se volt. Nagyon nem egyszerű megírni egy teljes fat kezelést, vagy lehet csak nekem kevés hozzá a logikám. Már lassan ott tartok, hogy inkább egy kész library-t fogok használni. De legalább azt elértem, hogy értem miként működik az egész.
Én is most a gyárit nézegetem, mert nem tudom, hogy miért nem olvas a 0. szektortól...
Debuggolok 1000-el !
A kiadott parancsok után mindaddig 0xFF adat jön, amíg a kártya nem tud válaszolni.
A CMD18 parancs után először az R1 válasz (itt: 0x00) jön meg, ezután a kártya egy ideig megint elfoglalt, így nem válaszol (0xFF). Majd elküldi a Start Block tokent (0xFE) és folyamatosan az adatokat, amik a 0. blokkban 0x00-val kezdődnek. Tehát az általad olvasott adatok teljesen jók. Az én kártyámon a 0. blokk így néz ki: A hozzászólás módosítva: Jún 28, 2015
Így van. Az én kódom egy block olvasására:
Köszi, de én a csatolt képet láttam a kártyán a 0.szektornál, mit nézek el ?!
szerk. : bocs a rossz minőségért, látszik, hogy 0. szektor, de most futnom kell ( az asszony hív, este leszek ! ) ! Köszi a segítséget! A hozzászólás módosítva: Jún 28, 2015
HxD-ben fizikai vagy logikai meghajtóként nyitod meg? Mert ha logikai, akkor a boot sectort látod, ha fizikai, akkor meg a master boot recordot.
A hozzászólás módosítva: Jún 28, 2015
A csatolt képből én nem tudok kivenni semmi érdemlegeset.
Az analizátor viszont helyes választ mutat. A hozzászólás módosítva: Jún 28, 2015
Logikaként volt , a fizikainál valóban 0x00-k vannak !
Most akkor nyomozhatok, hogy hol vannak az infók letárolva !? Meg kell alaposabban ismernem a FAT32 és a MasterMoot szerkezetét! A hozzászólás módosítva: Jún 28, 2015
Nem csodálom, csak nem volt időm korrigálni ( mennem kellett a lányomért az állomásra ! ), viszont az volt a gond, hogy logikai meghajtóként nézegettem, mint Beles kolléga utalása alapján rájöttem...!
Én egyelőre csak FAT16-al foglalkoztam, abban tudok segíteni
Nem sok különbség van a FAT16 és FAT32 között. Ha az egyiket tudod használni, akkor a másikat is.
En is kuzdok egy SHDC-vel FAT32-ben. A mai napom rament az inicializalasra, holnap jonne a FAT32. Neheziti a helyzetet, hogy en assemblyben tolom 18F4553-on.
Eredetileg a boot sector fent volt valahol az istennyilaban, egy ihletett blokkfeltoltes utan eltunt minden, nem latta a Win7 sem, utana formazva az MBR eltunt teljesen es a 0.fizikai cimre kerult a boot sectort. Most nincs MBR egyaltalan. De elotte es most is KETTO Boot sector van a kartyan, nemigen ertem meg a dolgot...WinHexet hasznalok es termeszetesen disk modban, Phisical media alatt. Talaltam par jo weblapot FAT32-rol, idemasolom. elso masodik vegul a harmadik A hozzászólás módosítva: Jún 28, 2015
A másodikat és a harmadikat nem ismertem, nagyon jónak tűnnek, köszi !
Sziasztok!
Kicsit szeretnék belemélyedni az sd kártyák fizikai felépítésébe, de ami doksikat találtam, mind tele vannak azzal, hogy This part was removed from the simplified specification és így nem könnyű tanulni belőle. Ami konkrétan érdekelne, az a flash memória blokk szerveződése. Az egyszerűsített leírásban is találtam olyan jelzést megemlítés szintjén, hogy "Sru", de nem tudom, hogy azt találtam-e meg, amit kerestem, mert túl rövid volt a hozzá fűzött magyarázat. Akárhogyan is jelölik az elektronikailag legkisebb belső blokk méretet, azt az értéket lenne jó tudni 8 giga és nagyobb méretű kártyák esetében. Ha véletlenül valaki képben van róla, vagy akár csak tud egy nagyon részletes leírást a flash kártyák elektronikai szerkezetéről (és nem csak 10 évnél régebbi doksi, hanem jelenkori is), küldjön egy felírást róla legyen szíves. Köszönöm.
Nem tudom, hogy pontosan mire gondolsz block szervezodes alatt.
A legkisebb egyseg a szektor. A hossza 512 byte. Ez a szam fix. Ezt tudod irni vagy olvasni egyszerre. (Vagyis egy ekkora pufferre mindenkeppen szukseg van.) Ezt egy linearis cimzessel lehet elerni, abszolut szektorszam alapjan. 32 bites (4byte-os) a szektorcimzes. A regi SD kartyak (2GB es lefele) eseten paros cimet kell megadni. Az ujnal parost vagy paratlant es ez a fenti fele lesz. (Magyaran, a regi 0012H-es cime az uj 0009H-as lesz. Ha arra vagy kivancsi, hogy a clusterek hogyan szervezodnek, az mar a formazas dolga, FAT32 alatt mas es mas a clustermeret 4,8,16,32,64 GB eseten... A legtobb esetben a 0. szektor tartalmazza a particios tablat. Ritkabban egybol az MBR van ott.
Bár biztos vagyok benne, hogy senki nem akarja megosztani a hosszú szenvedéssel elért eredményét, de ha még is, én igazán örülnék egy olyan megosztásnak ahol C18 nyelven íródott az SD kártya kezelés, olvasás és írás. Biztos vagyok benne, hogy sokat tanulhatnék belőle.
Rég óta szórakozom vele magam is az SD init-ig el is jutottam, de egyszerűen önállóan nem leszek képes ezt a programot megírni, egyelőre. Lényegében egy SD kártyára szeretnék txt fájlba adatokat menteni, visszaolvasni...stb, adatgyűjtés céljából. Ha netán még is valaki megosztaná egy ilyen projektjét, itt vagy akár privátban azt nagyon megköszönném. Esetleg, ha tudok olyan egyedi programot ami érdekes lehet cserébe azt szívesen megosztom, bár gondolom, ha valaki ezt meg tudja írni, annak nem igen lenne szüksége az általam megírt programokra Szóval előre is köszönöm az esetleges önzetlen segítséget.
En assemblyben odaig eljutottam, hogy olvasni es irni tudom a fileokat, ha NEM kell a FAT tablat is kezelni (magyaran, amig megmarad a szektorok linearitasa).
Tehat irni ugy tudok pl. hogy elore letrehozom az egesz file-t, PC-rol ramasolom, aztan benne mozgok. Ha ez megfelel, el tudom kuldeni 18F45K50-re irt progimat neked. C-vel nem foglalkozom.
Szia!
Bocs, hogy belekotkot ,de >>>>EZ<<<< nem segít?
Köszönöm, át fogom tekinteni, de nyilván már számtalan oldalt áttekintettem és kicsit túlnő rajtam ez a feladat, ezért is merészeltem kérni, egy megosztást.
bbalazs_: köszönöm, rendes vagy, de az asm számomra, csak kis részében értelmezhető. C18-asban jártasabb vagyok..
Nem a logikai cluster szerveződésre gondoltam, és nem is az 512 byte-ra. Amikor nem spi módban kezeled a flash-t, van a multisector mode-nak egy korlátja, amekkora szektor tömböt egyszerre írni tud. Ha megnézed az időt, ameddig tart, azt fogod látni hogy 1 szektor X idő, 2 szektor is X idő, 3 szektor is X idő, valahol N szektornál lesz egy forduló, hogy N szektor még X idő, N+1 szektor már 2X idő. És pedig azért, mert úgy van felépítve belsőleg a flash elérése. Amikor átírsz egy szektort, a flash belsőleg egy egész blokkot húz be saját memória bufferbe, memóriában írja át azt a tényleges adatot, a teljes blokkot törli "maga alatt", és a teljes blokkot fogja újra írni. Az egész főleg azért is érdekel, mert amikor sorfolytonosan írok egy flash-t szektoronként, mint valami magnószalagot, az adott blokkon belül bármelyik szektor írása írja a többit is, és a 10k kikopás úgy enyhén gyorsabb, hogy nem blokkonként szektor csoportot írok, hanem egyesével szektorokat. A multiszektor-t éppen azért találták ki.
Szia!
Ez egy szélmérő adatatait mentette .txt fájl-ba működött is , de nem lett befejezve . Ha jól emlékszem megnyitott egy fájl-t és amikor a beérkező adat mennyisége elérte az 512-es határt, elmentette a blokkot, és egy másik pufferbe kezdett tölteni adatot, majd csere. .txt fájl-t generált, Persze 1 nap kellett 1 fájl lezárásához. Szerintem sokmindent fogsz tudni használni belőle. Teljes mértékben saját kútfőből, tehát használhatod nyugodtan. 2Gb SD-t használtam Priviben segíthetek ha kéred. Üdv.: Foxi A hozzászólás módosítva: Szept 27, 2015
Köszönöm előre is a segítséged és a projekted.
Lesz rá érkezésem és át is tekintem a tartamát, biztosan keresni foglak..
Általános kérdés. Az újabb kártyáknál az extra cmd supporton túl nem igazán találtam eltéréseket a meglévő funkciókban. Van bármi olyan korlát, ami miatt egy 32 gigás sdhc nem kezelhető ugyan azzal a kóddal, amivel a 2 gigás sd?
Mit értesz az "újabb kártyák" alatt?
Pl. az SDHC ill. SDXC kártyáknál blokkcímzést használnak - az eredeti SD kártyák Byte-címzése helyett. Továbbá az újabb kártyáknak olyan regiszterei, működési módjai, átviteli sebessége, feszültségszintjei vannak, ami a régieknél nincs. Ezeket inicializálásnál figyelembe is kell venni. |
Bejelentkezés
Hirdetés |