Avrdos lezáratlan file probléma
Avrdos lezáratlan file probléma
Szervusztok! Belefutottam egy hibába:
Elég nagy programot írok xmega procira. A készülékben SD kártya tárolja az adatokat. Helytelen kezelés esetén ki lehet úgy kapcsolni az eszközt hogy lezáratlan file marad.
Ilyenkor a ott marad a kártyán egy 0 hosszú file, amivel nem tudok mit kezdeni. Nem lehet törölni, nem lehet, ezzel a névvel új fileot létrehozni. Kiemelve a kártyát persze PCn javítható. Kérdés hogyan tudnám a sérült fileot avrdos alatt törölni? ( Bascom 2.0.7.7 avrdos libver: 5.9 )
Elég nagy programot írok xmega procira. A készülékben SD kártya tárolja az adatokat. Helytelen kezelés esetén ki lehet úgy kapcsolni az eszközt hogy lezáratlan file marad.
Ilyenkor a ott marad a kártyán egy 0 hosszú file, amivel nem tudok mit kezdeni. Nem lehet törölni, nem lehet, ezzel a névvel új fileot létrehozni. Kiemelve a kártyát persze PCn javítható. Kérdés hogyan tudnám a sérült fileot avrdos alatt törölni? ( Bascom 2.0.7.7 avrdos libver: 5.9 )
Re: Avrdos lezáratlan file probléma
Esetleg egy újra lezárás nem segít?
Valami hasonló:
Valami hasonló:
Kód: Egész kijelölése
Open Filename For Input As #10
Close #10
Re: Avrdos lezáratlan file probléma
Sajnos nem segít. Az esetek nagy részében elszáll tőle a program.kapu48 írta:Esetleg egy újra lezárás nem segít?
A megnyitásra 70 hiba kód jön a lezárásra 67 míg a törlésre 71
Bármit próbálok ott a hibás file.
Re: Avrdos lezáratlan file probléma
Szerintem a legjobb védekezés a megelőzés!
Teszel 1 piros LED-et az SD nyílás fölé!
És jelzed a felhasználónak meddig foglalt a kártya.
Ezen kívül szigorúan lezárod minden írás után!
Valahogy így:
Teszel 1 piros LED-et az SD nyílás fölé!
És jelzed a felhasználónak meddig foglalt a kártya.
Ezen kívül szigorúan lezárod minden írás után!
Valahogy így:
Kód: Egész kijelölése
LEDon
'open the file in BINARY mode
Open "test.bin" For Binary As #2
Put #2 , B ' write a byte
Put #2 , W ' write a word
Put #2 , L ' write a long
Ltemp = Loc(#2) + 1 ' get the position of the next byte
Print Ltemp ;" LOC" ' store the location of the file pointer
Print Lof(#2);" length of file"
Print Fileattr(#2);" file mode" ' should be 32 for binary
Put #2 , Sn ' write a single
Put #2 , Stxt ' write a string
Flush #2 ' flush to disk
Close #2
LEDoff
Re: Avrdos lezáratlan file probléma
1, Írás/olvasás után _azonnal_ lezárás.
2, File és FAT kezelés külön memóriaterületen (konfigurálás az avrdos-ban)
3, FAT1 és FAT2 szinkronizálás megengedése
4, SD foglalaton a kártya benn/kártya kinn érzékelő használata
5, Menüből kell a felhasználónak kiválasztani, hogy kártya kivétele (mint USBPen),
6, Ha a file errorra fut: filenév.xxx-re átnevez. Ez lehet futó sorszám.
2, File és FAT kezelés külön memóriaterületen (konfigurálás az avrdos-ban)
3, FAT1 és FAT2 szinkronizálás megengedése
4, SD foglalaton a kártya benn/kártya kinn érzékelő használata
5, Menüből kell a felhasználónak kiválasztani, hogy kártya kivétele (mint USBPen),
6, Ha a file errorra fut: filenév.xxx-re átnevez. Ez lehet futó sorszám.
Re: Avrdos lezáratlan file probléma
Írás után eddig is zártam, olvasásnál talán nem olyan fontos.
A készülékben belül fixen van a kártya. Viszont a készülék adatot gyűjt, hangot, és autokorrelációt számol, azaz nem sok szabadidő van menet közben csukogatni. Ezzel szemben a tápot ki lehet húzni. Sajnos ez tervezési hiba, elektronikusan kellene kikapcsolni a file lezárások után. Ez adottság ezzel kell valahogy együtt élnem. ( Egyébként kezdetben csak powersave állapotba vittem a procit, és lekapcsoltam a kijelzőt illetve az analóg részeket. Csak a watchdog ébresztgetett, és ilyenkor néztem hogy volt-e hosszú gombnyomás ami ébresztett. Ez után rákerült egy "rejtett" kapcsoló ami leválasztott mindent az akkuról a realtime óra kivételével, mert a dokik elfelejtették pár havonta tölteni a készüléket. Pedig csipogással jeleztem hogy ideje tölteni.
Erre letakarták egy textillel a szekrényben hogy ne zavarja őket a csipogás Grrrrr!!!!
A sérült file átnevezése egy számlálós filenévre remek ötlet, holnap ki is próbálom hogy átnevezni lehet-e ezt a sérült fileot. Eddig törölni akartam, de az nem megy.
A legjobb volna valami teszt rutin ami bekapcsoláskor átnézné az a tucatnyi fileot aminek a hibája bajt okoz. ( talán átnézni sem kell mert a nulla hossz jól mutatja hogy hol a baj ) Szóval a hiba detektálás úgy gondolom megy, javítani nem tudom az ilyen fileot.
A készülékben belül fixen van a kártya. Viszont a készülék adatot gyűjt, hangot, és autokorrelációt számol, azaz nem sok szabadidő van menet közben csukogatni. Ezzel szemben a tápot ki lehet húzni. Sajnos ez tervezési hiba, elektronikusan kellene kikapcsolni a file lezárások után. Ez adottság ezzel kell valahogy együtt élnem. ( Egyébként kezdetben csak powersave állapotba vittem a procit, és lekapcsoltam a kijelzőt illetve az analóg részeket. Csak a watchdog ébresztgetett, és ilyenkor néztem hogy volt-e hosszú gombnyomás ami ébresztett. Ez után rákerült egy "rejtett" kapcsoló ami leválasztott mindent az akkuról a realtime óra kivételével, mert a dokik elfelejtették pár havonta tölteni a készüléket. Pedig csipogással jeleztem hogy ideje tölteni.
Erre letakarták egy textillel a szekrényben hogy ne zavarja őket a csipogás Grrrrr!!!!
A sérült file átnevezése egy számlálós filenévre remek ötlet, holnap ki is próbálom hogy átnevezni lehet-e ezt a sérült fileot. Eddig törölni akartam, de az nem megy.
A legjobb volna valami teszt rutin ami bekapcsoláskor átnézné az a tucatnyi fileot aminek a hibája bajt okoz. ( talán átnézni sem kell mert a nulla hossz jól mutatja hogy hol a baj ) Szóval a hiba detektálás úgy gondolom megy, javítani nem tudom az ilyen fileot.
Re: Avrdos lezáratlan file probléma
Sajna itt a file adattartalom írás után a FAT frissítés halt le. Alapban a FAT1 frissül csak, a FAT2 nem!
Én ezt mindig bekapcsolom.
A táp ha elmegy, nincs egy nagy pufferkondi, ami a vészüzemmódig kitart?
Hülye tipp:
5V ágba egy 1uF-s supercap. Az AVR szabad ADC-re a betápról (dióda előttről) feszültségosztó. És ha nincs táp a supercap bőven kitart... Lehet elég 0.1F-s supercap is...
Én ezt mindig bekapcsolom.
A táp ha elmegy, nincs egy nagy pufferkondi, ami a vészüzemmódig kitart?
Hülye tipp:
5V ágba egy 1uF-s supercap. Az AVR szabad ADC-re a betápról (dióda előttről) feszültségosztó. És ha nincs táp a supercap bőven kitart... Lehet elég 0.1F-s supercap is...
Re: Avrdos lezáratlan file probléma
A powersave-ből ébresztés: INT. A fene kel fel körbenézni
, majd a gombnyomás ébreszt...
Re: Avrdos lezáratlan file probléma
Holnap megmérem hogy a bemenő táp elvesztésekor mennyi időm van a proci táp összeomlásáig. Lehet hogy elég a file lezárásra.
Periodikus ébresztgetés egyébként is kell, van pár időhöz kötött tevékenység, meg az akkut is mérni kell néha.
Periodikus ébresztgetés egyébként is kell, van pár időhöz kötött tevékenység, meg az akkut is mérni kell néha.
Re: Avrdos lezáratlan file probléma
Megoldódni látszik a gondom. A fő ok egy általam elkövetett banális hiba volt: Egy teszt rutint bennfelejtettem az it hurokban és ott használtam azt a változót amit file handlernek is használtam. No igen ha azt felülírom akkor teljesen jogosan kuszálta össze a fat táblát a lezárási kísérlet. Azért remélem a javasolt megoldások másoknak is hasznára válnak.