Fórum témák
» Több friss téma |
A (len) csak '\0'-ig olvas? Mert ha nem, akkor gond lehet vele mivel a hosszú fájlnevekre is én hozok létre egy tömböt, amely az esetek többségében hosszabb mint maga a tartalom.
Ezeken már rég túl vagyok.
A kisméretűeket meg nagyra konvertálja semmi mást nem csinál. A "." pont nem minden esetben jelenik meg, ha hosszú fájlneves a téma, akkor pl. nincs is pont.. Már megoldottam a kiterjesztésre való szűrést a sorba rendezést hanyagolom, nem fontos. Szerencsére alapból a kártyán létrehozás (felmásolás) dátuma szerint listáz mivel így kerülnek be egymást követően a FAT bejegyzések.. A hozzászólás módosítva: Máj 30, 2017
Értem, ez esetben jó lehet ez a megoldás is nekem..
Bár talán még mindig több lépés mint a rövid fájlnevekre való szűrés.. A hosszú fájlnevekkel még az a baj, hogy vannak kimondottan hosszúak. Valamelyik elfoglal 4 entry-t is. Borzasztó..
Srácok éppen most kezdtem el írni az SD kártya író rutinomat és az a kérdésem merült fel bennem , hogy mind két FAT táblát nekem kell módosítanom, vagy csak az egyiket kell (az elsőt) és a másikat automatikusan frissíti a kártya?
Leírva az tűnik logikusnak, ha mind kettőt én nekem kellene kezelnem, de azért jobb ha megkérdezem..
A FAT redundanciájának értelme az, hogy ha sérül az első példány, a második felhasználásával az adat még elérhető. Tehát mindkét táblát módosítani kell, hiszen előre nem tudhatod, hogy mikor lesz olvashatatlan egy felhasznált szektor.
Köszi, erre gondoltam én is, de bizonytalan voltam benne..
Srácok eljutottam odáig, hogy beírom az adatokat SD kártyára, fájl kezelőben látom is, de megnyitni nem tudom. Csatoltam képeket.
1. kép: SD tartalma fájlkezelőben 2. kép: 0. szektor (0. szektor) 3. kép: kezdő szektor (8192. szektor) 4. kép: FAT tábla (8198. szektor) 5. kép: Root tartalma és kijelölve a fájl amire ugrottam (8672. szektor) 6. kép: fájl tartalma (9344. szektor) A tartalom megegyezik vagy is helyes. (512 byte) Számolás az ugrásnál: 8672 (Root) + 32 (Root maximum sector) + (7-2)*128 (fájl cluster címe - 2x16bit adat, amelyet a FAT tábla magának tart fent és szorozva sluster/sector-al). Ekkor megkapjuk a fájl kezdő szektorának címét ami ez esetben a 9344-es szektorra mutat. Tehát az ellenőrzés jónak kell legyen, de nem értem, hogy még sem tudom megnyitni a fájlt. A fájl adatainál a méretét független, hogy eredetileg csak 512 byte helyet foglal le én egy egész cluster-t foglalok le neki, mert ez egy alap foglalási egység. (64kbyte) Lát valaki valami hibát? Esetleg van valakinek valami ötlete? Előre is köszi..
Otletem van, de nem neznem vegig a mellekleteket, ha nem muszaj.
Formazd le az SD-t, aztan ird ra a sajat fileodat. Mint az elobb. De csak egyet. Utana mentsd el ezeknek a sectoroknak az ertekeit,mint csinaltad az elobb. Most formazd le megint es PC-rol masolj fel egy olyan filet, mint a tied. Ismet mentsd le a fontos, erdekes sectorok erteket. Hasonlitsd ossze, minek kellett volna kijonni az elso esetben. Abbol lathatod majd, hogy mit serelmez a rendszer. Valami normalis filekezelo nincs a kozeledben? VC,NC,Far? Azok talan kevesebb dolgot ellenoriznek es akkor kiderulhet, hogy mire haklis a tied.
Jó ötlet.. Köszi már is nézem a különbségeket.
No meg lett a gond.. Nem nagybetűvel írtam be a fájlnevet és ez kiakasztotta az egészet.
Most már frankon működik. Köszi.. Most lettem kész az SD kártya kezeléssel. Már csak fel kell használnom..
Ugyes vagy!
Egy rovid kerdes: nem volt eddig olyan library, ami ezt tette volna? Vagy csak szemelyes ambicio fűtött, hogy sajat magad is megcsinald?
Túl sok kész projektet találtam, de amiket próbáltam egyiket sem tudtam használni, nem működtek, így megírtam az egészet magamtól, így bármelyik PIC-re át tudom faragni mert ismerem a felépítését. Elsőre kicsit perverznek tűnhet a dolog, de nagyon jó tanulást biztosít egy ilyen projekt.
Az init és olvasás már készen van egy fél éve, arra kellett majd egy hét mire megírtam, az írás volt nehezebb, de erre szerencsére elég volt 2-3 nap mire össze állt a program. Most már csak a célra kell felhasználnom az írás részét, az olvasást már fél éve használom a SEGA projektemben..
Sziasztok,
igaz nem PIC-et használok, de ez most lényegtelen is. MicroSD kártyára szeretnék írni, ezt próbálom inicializálni SPI-al. A CMD58-ra 0x05 választ kapok 0x01 helyett, miért? Van valakinek ötlete? A kártya kapacitása 2GB.
Nulláról akarsz megírni egy SD alacsony szintű + fájlkezelést?
Én inkább az adott procihoz néznék könyvtárat, mintaprogit. Pic-hez betettem ha jól emlékszem a microchipes példát, nem kellett semmit foglalkozni vele... Esp32-höz szintén...Esp8266-hoz szintén. Arduinóhoz szintén. De ha mélyen akarnék vájkálni, akkor kielemeznék egy működő mintát... Volt egy ftp mintám, ami nem kezelte jól a fájlok dátumát, na abba belenyúltam.
Ez az adott proci (Silabs EFM32) könyvtárából való, de nem működik.
Próbáltam Arduinóval, lazán inicializálta. Ezzel meg itt kaput. Viszont néztem datasheeteket abban más inicializálást írnak elő, nincs is benne a CMD58 kiolvasása.
A if (!MICROSD_TimeOutElapsed() && MICROSD_SendCmd(CMD58, 0) == 0) sornál kiugrik és fail. A hozzászólás módosítva: Szept 25, 2021
Nem igazán értek hozzá, csak felületesen...
Esetleg érdemes utánajárni az sd/sdhc különbségnek, valamint az sdkártya 2-3 módban tud dolgozni, hw bekötéstől-és szoftver inittől függően... pl SD mód - 1bit SPI, SDMMC mód 1 vagy 4 bites SPI.... ezek különböző inicializálási parancsokat igényelnek, és úgy tapasztaltam "menet közben" nem lehet áttérni egyikről másik módra, csak poweron után...
Szia. Kipróbáltam ugyanazt az SD kártyát és slotot arduinoval és a saját kódommal. Mindkét esetben az inicializáls ugyanaz. Egy különbség van a CMD58-ra arduino esetében 0x00C0FF80 val felel én kódom esetében 0x0080FF80-al. 1 bitnyi különbség. Van valami tipped mi lehet az oka?
nincs ötletem, én csak kész kódot használtam fel
A CMD58 parancs az OCR-t olvassa ki. Ez adja meg a használható feszültségtartományokat (nálad ott van az eltérés) és hogy a kártya standard vagy nagy kapacitású. (Ha adott kártyát használsz, aminek ismered a paramétereit, akkor ezt a parancsot nem is kell használnod.)
Figyelmedbe ajánlom: SD Specifications Part 1 Physical Layer Simplified Specification Version 2.00 (vagy újabb)
|
Bejelentkezés
Hirdetés |