Atmega FAT karta SD

May 04, 2011 300 Replies

W dniu 07.05.2011 20:22, Sebastian Biały pisze:

Jeśli potrzebny jest tylko sekwencyjny odczyt i zapis bez częstego używania seek, to może coś w stylu uproszczonego systemu plików z ATARI800XL ? Nie było tam tablicy alokacji zbiorów, tylko prosta lista jednokierunkowa. W pozycji katalogu był wskaźnik na pierwszy sektor pliku, a ostatnie dwa bajty każdego sektora były wskaźnikiem następnego sektora. Ostatni sektor miał wskaźnik 0xffff. Rozwiązanie proste jak budowa cepa :-) Zalety: mała ilość zasobów (nie trzeba pamiętać sektora FAT), przy małych zasobach prędkość odczytu trochę szybsza niż przy FAT. Wady: Przy zapisie wolny sektor musi być poszukiwany sekwencyjnie na podstawie ostatnich bajtów 0x0000 (w ATARI była dodatkowa bitowa mapa zajętości sektorów). Wykonanie seek do przodu wymaga w zasadzie sekwencyjnego odczytania kolejnych sektorów pliku aż dojdziemy do zadanej pozycji wskaźnika pliku. Seek do tyłu wymaga wycofania się do pierwszego sektora pliku i dalej jak w przypadku seek do przodu. Skasowanie pliku wymaga wyzerowania wskaźników we wszystkich sektorach należących do pliku (czyli trwa ponad dwa razy dłużej niż przeczytanie całego pliku).

Pozdrawiam Grzegorz

Zastanawiam się nad FS który nie musi być ani szybki ani wypasiony. Potrzebuje trzymać konfiguracje pewnego urządzenia i nie przejmować się zmianami firmware. To tylko taka wartwa abstrakcji. Więc każde rozwiązanie będzie dobre. Rzecz jednak w tym, że jesli już je zrobie to było by miło mieć "driver" do testowania pracujacy na normalnym, dużym OS (a więc np. fuse). Może pomyśle i coś naskrobie w LGPL w przyszłości. Rozwiązanie z listą jedno/dwu kierunkową jest ok i zapewne będę wlaśnie coś w tym guście implementował.

Klient go juz ma i uzywa, nawet chetnie :-)

Normalna inzynierska robota. Rozdzielczosc jakas i tak musi byc - cos jest zlego w dwusekundowej ? A ile KB ma pod unixem funkcja konwertujaca date na date .. czytalna dla czlowieka ? :-)

No fakt - nie pomysleli. Aczkolwiek .. to jednak komputer _osobisty_.

Ale to chyba nie zarzut do czesci dyskowej ? FAT jak najbardziej pozwala .. po odpowiednim poblokowaniu w systemie.

Taki mial byc. Jesli mam pretensje to dopiero od wersji 3.0 - faktycznie mogliby juz lepiej pomyslec.

po stronie czytajacego. Po stronie zapisujacego mozna pomyslec. Zalezy od specyfiki urzadzenia.

J.

FAT chyba wspierał 10ms ale nie wiem czy oprogramowanie miało dostęp tak po prostu. A upierdliwośc polega na tym ze kompilując plik nie wiadomo czy powstał z tego źrodła czy nie.

To charakterystyczny brak wyobraźni. 4 lata później Amiga miala system z preemptive multitaskingiem, gui i masą innowacji (acz fakt, bez praw dostepu). A "profesjonaliści" dalej kopiowali pliki z lewego na prawy panel na niebieskim tle czując że tak własnie *musi* być, bo jak by mialo byc inaczej?

Stop-the-world multithreading to jest rozwiązanie którym da się wszystko załatać. Cooperative/Mutexed multitasking to żaden multitasking tylko workaround ...

Trzy bajty ? Tak mi sie cos kojarzy.

chcialem jeszcze dodac ze wymaga dzielenia przez 126 czy 125 .. ale w sumie nie - jak juz czytamy po jednym sektorze, to mozna i odejmowac.

podobny blad ma w sumie i fat - lista tez jest liniowa i trzeba liniowo przeszukiwac. Tylko troche mniej czytania z dysku. Ale jak ktos ma baze na kilkaset GB w jednym pliku na fat32 .. niewesolo, jesli system sobie z tym nie radzi. Unix jakos jednak lepiej przemyslany.

A swoja droga .. jesli to eeprom przylaczony magistralowo, to w sumie zadna roznica czy czytac dwa ostatnie bajty z kazdego "sektora" czy z "sektora FAT"

no nie - wystarczy tylko poprawic te bitowa mape alokacji. Ale .. trzeba wszystko przeczytac, zeby ustalic zwalniane sektory :-)

J.

Pan Sebastian Biały profesjonalnie opisał historię komputerów:

No i dzięki genialnej wyobraźni jej twórców Amiga podbiła światowe rynki. A tak bardziej poważnie -- to jednak IBM wykazał się dobrą wyobraźnią obstalowując taki a nie inny system do swojego hardware. Ja tam DOSa lubiłem i cieszyłem się, że mogę robić ze sprzętem co tylko zechcę.

Dalej kopiowali? Norton Commander powstał dopiero *sześć lat później*. I był jednym z lepszych wynalazków w zakresie interfejsu użytkownika. Do dzisiaj używanym (choć jest tyle innych sposobów kopiowania).

Pomysły w niej zaimplementowane podbiły swiatowe rynki ... 10 lat później razem z *innowacyjnym* Win95 (przypominam, ze mam na myśli desktopy, jak by ktoś chciał sięgać kto pierwszy użył preemptive to niewyluczone że sięgnie aż do misji Apollo ...).

To raczej był ukłon w kierunku legacy-users którzy bez prompta CP/M nie potrafili pracować i mieli swoje "najlepsze na swiecie" aplikacjie "prawie dzialające na 8086 tylko trzeba je troche przepisać z 8080/z80". Zaproponowali system tani, modularny i "prawie" zgodny z pierdyliardem aplikacji. Kto by tego nie kupił?

:) Przecież mam na mysli że jak reszta świata zajmowała się poważnymi problemami to "profesjonaliści" dalej używali beznadziejnego klona CP/M ktory po 10 latach ewolucji z kawalka kodu do obsługi FAT i lini poleceń stal się kawalkiem kodu do obsługi FAT i lini poleceń o wyższym numerku i kolorowym programem do kopiowania z lewej na prawą.

PS. Ciekawostka: do dzisiaj nawet w Win7 jest edlin ...

Pan Sebastian Biały napisał:

Czy to "innowacyjnym" miało być ironią? Jeśli tak, to jakoś nie najmądrzej wyszło. Rok 1995 to mniej więcej wtedy, kiedy rozwój techniki pozwolił na sensowną realizację "takich pomysłów". Wcześniej to na desktopach można było to traktować jako zabawkę (miałem z takim systemem do czynienia, nie z Amigą, a z tym co przetrwał do dziś -- śmiechu warte).

Raczej w stronę mainfrejmiarzy i podobnymch. Mnie tam średnio obchodziło, czy tam wsadzili z80, 8080, 8088 czy jeszcze coś innego. Ważne, że można było skompilować program tak samo jak na dużym sprzęcie. I jak komputer miał 640kB RAMu, to znaczy, że tyle miał -- bo DOS zajmował niewiele.

No, kupowali przecież.

Jakież to były poważne problemy reszty świata?

Co w tym złego?

To przecież całkiem inny program.

To też źle?

Możesz uzasadnić? Akurat to swierdzenie jest o tyle zabawne że np. preemptive-multitasking działa całkiem sprawnie na 8 bitowych mikrokontrolerach. Stwierdzenie że dopiero technologia z okolic Pentium mogła to pociągnąć jest bzdurą na co jest masa przykładów historycznych i współczesnych.

Rzecz w tym że na Amidze działało to bardzo dobrze. Na tyle że częśc ludzi zaczeła negować w ogóle ten ficzer, bo jak to, ich PC nie potrafią? To pewno jakaś ściema ... Jak na pierwszy desktop z takim ficzerem była to innowacja pełną gębą. Niestety nie miala CP/M prompt i

8 znaków na nazwę pliku więc nie była "profesjonalna". *Jedynym* problemem Amigi w okolicy multitaskingu było brak MMU co powodowało niestabilnośc systemu w przypadku uszkodzenia pamięci innego procesu, ale był to problem sprzetowy i trudno winić OS. Takie czasy, takie CPU.

Ale jak miał 4MB RAMU to miał 640kB ramu, nie? MS-DOS przodował na rynku systemów operacyjnych (a raczej api filesystemu z command line) które nie potrafily nawet do końca wspierać takich prymitywów jak pamięć skazując programy na rękodzieła i generując tym samym kilka rownoległych "standardów".

Multitasking. GUI. Abstrakcja sprzetu. Security. Itd.

Natomiast "profesjonaliści" odkrywali kolejne funkcje kradzonych NC i TP ...

W braku ewolucji? Nic :) Krokodyle tez podobno już nie bardzo chcą ewoluować. Osiągnęły *perfekcyjność*.

A potrafiłbyś pracować bez niego? Przecież MS-DOS nie oferował *nic* z narzędzi poza przeraźliwie prymitywną linią poleceń wyrwaną z koszmaru CP/M. Przecież MS-DOS to z grubsza tylko API prymitywnego filesystemu i command.com.

To tylko zabawny współcześnie kawalek historii pokazujący jak naprawdę wyglądały początki DOSa i z jakim g... musieli się użerać ludzie jedncześnie uważając to za jedyną drogę do przyszlości.

Na dyskietce DD mieściło się coś kole 1500 sektorów więc dwubajtowy wskaźnik wystarcza z duuuużym zapasem. Ale ma chyba Kolega rację z tym trzecim bajtem, tyle że on służył do zapamiętywania ilości ważnych bajtów w sektorze.

Przy magistralowej w zasadzie żadna, bo możemy operować na pojedynczych bajtach. W innym przypadku wypadałoby mieć dwa bufory lub wajhlować miedzy FATem a danymi. Tyle, że jak mamy swobodny dostęp do każdego bajtu pamięci masowej, to po co się bawić w system plików. To miało na celu sensownie obsługiwać urządzenia blokowe.

O mapie bitowej pisałem w nawiasie, bo tak było w systemie dyskowym ATARI i tam wystarczało odznaczyć bity odpowiadające za sektory należące do kasowanego pliku. Ale na bitach nie da się zrobić listy liniowej ;-) a co za tym idzie i tak trzeba było przeczytać wszystkie sektory pliku aby wiedzieć które sektory trzeba zwolnić w mapie bitowej. W uproszczonej wersji systemu plików bez mapy bitowej trzeba zerować wskaźniki w każdym sektorze.

Pozdrawiam Grzegorz

Pan Sebastian Biały napisał:

Mogę swoim widzimisiem i swoimi potrzebami. Jak procesor zajmował się jednym taskiem, to jedyne co mogłem sobie zamarzyć, to żeby zajmował się nim odrobinę szybciej. Innymi taskami bym mu niechętnie głowę zawracał. Podobnie z tak zwanym GUI. Jestem skłonny przyjąć (dla świętego spokoju), że na Amidze było rewelacyjne. Ale na tym z czym miałem wtedy do czynienia, czyli Macintosh i wczesne wersje Windows, było raczej gujowe. Do zabawy to się może nadawało.

Ja w życiu tej całej Amigi nie widziałem, tylko czytałem o niej. A i to głównie wtedy, gdy jej już nie było (gdzieś jeszcze przeczytałem, że przed wojną trawa była zieleńsza). Ale jeśli faktycznie nie miała prompta, to bym miał z niej marny pożytek.

Tak mniej więcej. DOS. Bo to co on uruchomił, to już mogło mieć różnie.

Ale tego właśnie się od niego wymagało -- możliwości załadowania i uruchomienia programu. Czego więcej wymagać na takim sprzęcie?

Dla równowagi podam, że Xeniksa też widziałem (na 8088). On to wszystko miał, co potrzeba. Nie, nie zachwycił mnie. W każdym razie mniej niż DOS.

No i dobrze. Ja się tym zająłem jak już to *przestało* być problemem.

Ja akurat nie miałem potrzeby korzystania z DOSa od jakichś dziesięciu lat, ale zdaje się, że jest jeszcze używany. Do tego, do czego się nadaje najlepiej. Dlaczego nie? Bity mu sparciały ze starości, czy co?

A jak mogłem inaczej gdy go jeszcze nie było?

Nadal nie widzę w tym niczego złego, że system do udostępniania zasobów komputera IBM/PC udostępniał jak należy zasoby komputera IBM/PC.

Myślałem, że jest potrzebny do jakichś skryptów patchujących. Kiedyś takie widziałem.

Żal ci tego promila CPU na switchowanie zadań?

Ale przerwania już Cie tak nie bolą, nie?

Wobec tego możesz być świetnym celem dla developerów FreeDOS.

Ewentualnie należysz do wyznawców tezy że multitasking zajmuje 50% mocy procesora i jako taki powinien byc wyeliminowany ze współczesnych komputerów bo *nic* nie daje.

GUI było takie sobie. *Niektóre* rozwiązania OS byly wtedy rewelacyjne jak na desktop. Dzielone biblioteki, multitasking, abstrakcja sprzętu, przyzwoity shell, normalny filesystem, itd. Mniej więcej to samo co reszta świata PC wpatrzona w niebieskiego NC zobaczyła dopiero 10 lat później w postaci Win95.

Ja mówie że nie miała gównianego prompta CP/M a nie że nie miała w ogóle. Faktem jest jednak że czułbyś się jak w domu - miała "coś jak litery dysków".

DOS: "Masz tu hardware, ja tego nie kumam, jakieś pamięci, pierodły, sorry. A nie, czekaj, kumam co to dyskietka!"

To nie OS, to bootloader, choćby dlatego że:

Tego co na pozostalych komputerach o znacznie słabszych konfiguracjach. Czyli tego:

Czyli przesiedziałeś te najciekawsze chwile rozwoju informatyki użytkowej na klonie gównianego CP/M z ZX Spectrum potrafiącego tylko kopiować pliki?! O, to bardzo mi przykro...

To jest żaden agument. To że coś działa do dzisiaj nie znaczy że jest super. Do dzisiaj się pisze w COBOLu. Nie udowadniaj jednak że to świadczy o jego lepszości nad czymkolwiek, błagam.

W GUI. Ojej, ale nie było... no tak ...

Przeciez on NIC nie udostępniał. On w ogole nic o zasobach nie wiedział. To zaprzeczenie systemu operacyjnego. To tylko filesystem z API do niego i kilkoma duperelami. Do dzisiaj nie mogę uwierzyć że ktokolwiek nazywa to systemem operacyjnym. To obelga dla reszty OSów. Całe szczęście ze ktoś to nazywał Disk operating system - system operacyjny dysku. Bo mniej więcej tyle potrafił - sterować dyskietkami.

Użytkownik Jarosław Sokołowski napisał:

Nie. IBM wykazał się kunktatorstwem i nie poszedł drogą Amigi i Atari - nie zastosował procesora będącego jednoukładową implementacją PDP 11. Kto kojarzy architekturę PDP11 i M68K ten nie ma wątpliwości skąd Motorola wzięła ideę. Skoro PDP 11 (aka Mera 400) był trochę tańszy i trochę sprawniejszy od IBM 360 (aka Riad) to IBM nie mógł wypuścić komputera osobistego za dwa tysiące zielonych o mocy obliczeniowej większej od własnego minikomputera za pięćdziesiąt tysięcy zielonych. A

8086 miał za przodka 8080, ten miał za przodka 8008, na początku był 4004 - czterobitowy procesor do kalkulatora kieszonkowego HP odrzucony przez zamawiającego. Ale może za młody jesteś żeby takie szczegóły pamiętać? Konsekwencje odczuwamy do dzisiaj.

A czterysta sześćdziesiąt kilobajtów pamięci operacyjnej wystarczy każdemu do każdego zadania - powieś sobie tę sekwencję nad łóżkiem!

Pan Sebastian Biały napisał:

Żal mi czegokolwiek na realizację innego zadania.

Nie, a czemy by miały?

Po diabła mi dzisiaj jakiś FreeDOS?

Przez 99% czasu mój komputer marnuje 99% zasobów. Ale to mnie *nic* nie kosztuje.

Czyli nic, co by mi *wtedy* mogło się przydać w komputerze.

Litery dysków mi zwisają. Ja mogę nawet uwierzyć, że tam wszystko było świetne. Tylko jakoś kurna nikt poważny nie chciał tego do niczego używać. Gdyby było inaczej, coś bym o tym wiedział.

...choćby dlatego, że takie były założenia.

To fajnie. Wymagano, potem życie wyeliminowało te "słabsze konfiguracje"

-- i nie ma problemu.

No tak, tylko kopiowałem całe życie pliki. Tam i z powrotem, tam i z powrotem, tam i z powrotem... Pownienem se już dawno Amigę kupić, to bym był gość!

No jasne. Trzeba zaorać i zrobić to od nowa na Commodeore.

Już się nie pisze od nowa, ale stare się utrzymuje, a czasem coś dopisuje. To świadczy o tym, że COBOL jest do tego dobry. Lepszy niż cokolwiek.

Bezskutecznie. Twardy i nieugięty jestem.

GUI miałem w Macintoshu, trochę później. Dziękuję za taką robotę.

Więc nie mógł tych skromnych zasobów potraktować jak pies ogrodnika. Nawet sam siebie nie mógł obronić -- zdaje się, że Novell tak startował, że z tego DOSa nic w pamięci nie zostawało.

Szczerze mówiąc, to też mnie dziwi, że ludzie nie widzą podstawowych różnic i próbója porównywać rzeczy nieporównywalne. Ani DOS nie miał ambicji bycia *Systemem Operacyjnym*, ani System (Apple Macintosch). Ale za to *pracowały* przy tych zadaniach, do których zostały stworzone. To co siedziało w tych wszystkich Atari czy Amigach można zaliczyć do tej samej kategorii co na przykład wszelkie uniksy, ale z praktycznego punktu widzenia, to zabawki były. Coś jak enerdowski zestaw Mały Gorzelnik ze Składnicy Harcerskiej wobec Polmosu Lublin. Albo nawet wobec bimbrowni pana Mietka.

Pan Dariusz K. Ładziak napisał:

Całe szczęście. Ile dzisiaj stoją akcje Commodore i Atari? Wiem, IBM też już nie taki jak kiedyś, ale jednak...

Jeśli czegoś nie pamiętam, to raczej z innych powodów.

Jarek

U¿ytkownik "Jaros³aw Soko³owski" snipped-for-privacy@lasek.waw.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@falcon.lasek.waw.pl...

He, he na te zabawki by³o oprogramowanie do sk³adania prezentacji TV, raytracingu, grafiki 3D i to wtedy gdy ¿adnemu posiadaczowi PC nawet siê o takim oprogramowaniu nie ¶ni³o. Na prze³omie lat 80-tych i 90-tych praktycznie wszystkie stacje telewizyjne, telewizje kablowe, agencje reklamowe posiada³y po kilka-kilkadziesi±t egzemplarzy Amigi do wszelkich zastosowañ zwi±zanych z przetwarzaniem obrazu i ani jednego peceta. Na peceta jest obecnie wiele programów, których pierwsze wersje powsta³y w³a¶nie na Amigê. I to nie gry, ale w³a¶nie programy do przetwarzania obrazu, czy CAD.

Amiga zniknê³a z jednego powodu - idiotycznych decyzji w³a¶cicieli firmy commodore, które spowodowa³y, ¿e hardware przesta³ siê rozwijaæ.

Pan Marcin Wasilewski napisał:

A "Sonda" to nawet miała grafike robioną na ZX Spectrum.

Strasznie wielkie były wtedy wszystkie te agencje. To wynik polityki wiodącego producenta hadware, który nie chciał sprzedawać pojedynczych sztuk komputerów.

Co z tego, że są, skoro nikt ich nie używa? (Ja znam jeden taki, ale na Atari/ST).

I od tego czasu przeżywamy wielkie załamanie wśród stacji telewizyjnych, telewizji kablowych i agencji reklamowych.

Jarek

Bo przerwania to jedna z prymitywnych form multitaskingu.

Ba, znam ciągle ludzi którym to nic dalej wydaje się jedyną drogą do przyszłości. Gotowi oni umrzeć z hasłem że 8+3 znaki w nazwie było genialnie przymyslanym ruchem marketingowym a multitasking to wytwór diabła. Wtedy tez im się tak wydawało pomimo że wielu z nich twierdzilo że CP/M to przezytek :)

Już mowilem. "Pofesjonaliści" byli właśnie zajęci kopiowaniem z lewa na prawo zakładając że to szczyt możliwości komputera a rozwój polega na jeszcze szybszym kopiowaniu.

Disk Operating System. Raczej powinno to brzmieć Stupid Bootloader with Useless Command Prompt.

Pod DOSem to była jedyna funckja systemu operacyjnego.

Nie, przykład z Amiga pokazuje ze reszta świata była o eniony w rozwoju za MS i jego bootloaderem. Równie dobrze mogłeś wziąść coś z unixem.

Nie, to byli idioci w sensie marketingowym. Lepiej niech dalej leżą zakopani.

:D

Cięzko mi znaleźć logiczny tok rozumowania w tym stwierdzeniu.

Macintosh był mocno toporny wbrew różowym opiniom entuzjastów Apple.

Hmmm uwsteczniasz definicję OS do czasów lat 70-tych.

Więc to nie tylko był bootloader ale strasznie gówniany bootoloader zakładając że procesory x86 dawały radę wprowadzić już jakieś ogracznienia w tamtych czasach z okolic security.

Jak to nie, na pudełku pisalo że jest.

Jesli zadania sa tak trywialne jak kopiowanie plików to nic dziwnego że nawet MS dal radę .... odkupić go do Patersona.

Ale to byl system z duuuzym rozmachem, moze mysleli i o wiekszych.

Faktycznie chyba tak.

A jesli kolega potrzebuje tam kilka "plikow" umiescic ? cztery zestawy danych konfiguracyjnych, trzy logi przyrastajace w czasie pracy .. i jeszcze udostepnic je dla peceta ..

P.S. OBEX - system wymiany plikow, bez okreslania formatu dyskowego. Aczkolwiek na pececie oprogramowany tak sobie.

J.

Dnia 08-05-2011 o 07:27:57 Sebastian Biały snipped-for-privacy@poczta.onet.pl> napisał(a):

Zapominasz albo przemilczasz o jednej zasadniczej zalecie dos-a, poza kopiowaniem można było uruchamiać tam programy :) a siłą tego systemu była wsteczna kompatybilność z CP/m -em gdzie na zachodzie było mnóstwo programów użytkowych. I mimo że PC wychodził z fabryki goły to ludzie/firmy to kupowały i pracowały na tym. Amiga/atari i inne to były zabawki, były na to tylko gry i dlatego tak skończyły.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required