Hehe, dziwie się, że jeszcze tematu nie zamknięto, ale jeszcze bardziej bym się dziwił gdyby go zamknięto za to, że ktoś sobie dyskutuje :P.
eq
Programowanie FPGA i CPLD na dzień dzisiejszy w Polsce to jest nisza.
Być może.
Ale siedzący podrzędny programista pisze w... no właśnie? w czym? Często pisze w IDE :P takim jak np. borland, bo sobie wszystko poukłada i ma w 5 minut cały kod. Nie ważne, że ten kod leży daleko od optymalnego kodu, ale jest szybko. Obawiam się, że takie pisanie w javie i innych językach b. wysokiego poziomu nigdy (a przynajmniej do czasu wynalezienia jakiejś super technologii) nie będzie tak popularne, by napisać w tym system operacyjny. Swoją drogą ciekawe jakie byłyby wymagania takiego systemu.
FPGA i CPLD zajmują się dobrzy ludzie, spokojnie można rzec "fachowcy". Pewnie do pralki tego nie wcisną, ale nie chciałbyś kodeka MP3 (w MP3-ce) mieć pisanego w javie, ba nawet nie chciałbyś mieć OSa telefonu napisanego w javie, bo byś się powiesił ładując non-stop baterie, a kodowanie dźwięku to już byłaby tragedia. Tam właśnie siedzą specjalne układy, które to robią. [niekoniecznie CPLD i FPGA, ale zapewne od nich się zaczynało, no i oczywiście nie wszystko robią, jest też uP]
Krolik
Hmm. A co powiesz na duży akcelerator cząstek w CERN? Oprogramowanie, które go monitoruje napisali w Javie [1].
hehe, chciałbyś :P. Pracowałem w firmie, w której monitoring niebezpiecznych mechanizmów (dokładnie potężnych piecy - niehutniczych) wyglądał jak w Javie, ale to był monitoring - dla ludzi. Reszta czuwała na uP, na dziesiątkach sterowników. Tam javy na bank nie było.
Krolik
Myślę, że skala tego rozwiązania jest na tyle duża, iż w asmie czy C bardzo ciężko byłoby to napisać przy zachowaniu odpowiedniej stabilności i bezawaryjności.
Zapewne nie. Jak wyżej napisałem, co dla oka, to nie do sterowania :). Jak widzisz monitor ci chodzi, a ma specjalistyczny układ, grafika chodzi a javy brak, sieciówka, płyta główna... GUI nie ma nic wspólnego ze sterownikami. Pozawala jedynie na interakcje, a w niektórych przypadkach jest jedynie do obserwacji.
Jako przykład podam modem. Na zewnątrz modemy ADSL można obsłużyć z poziomu przeglądarki, ale to nie w HTMLu napisali do niego sterownik, co jest oczywiste.
Użytkownik powinien widzieć proste rzeczy, same sterowniki to są często zaj.... skomplikowane urządzenia, niejednokrotnie z kilkukrotnymi zabezpieczeniami od zabezpieczeń uProcesorowych, przez sprzętowe, a skończywszy na mechanicznych.
Przykładem zabezpieczeń może być sterownik pieca w domu. uP kontroluje temperaturę i reaguje np. jeśli jest za wysoka, ale dodatkowo na wypadek padnięcia procesora może być zastosowany komparator do porównywania napięć (temperatury), który jest rozwiązaniem sprzętowym w tym przypadku. Jest także zabezpieczenie mechaniczne w postaci zaworu.
Inna ciekawostka to fakt, że w wielu nawet nowoczesnych maszynach przemysłowych jest zastosowane przemysłowe wykonanie takich maszyn. Wykonanie to nieco różni się od komórki, drukarki itp. Tam często nie stawia się na minimalizację. Płyty sterujące są pokrywane lakierami ochronnymi odpornymi na wysoką temperaturę, bywają zamykane w szczelnych pojemnikach. Składają się też niejednokrotnie nie z procesora, nie CPLD, FPGA, ale z dziesiątek tranzystorów i układów :P, a wszystko to po to, że ich koszt jest ogromny (nowa płyta z częściami za 150zł do sterownika widlaka potrafi kosztować 3000zł!, o innym sprzęcie przemysłowym lepiej nie mówić, naprawa spawarki przemysłowej w serwisie to ok 1000zł, sprawdzenie samo kosztuje 400zł). Właśnie ze względu na koszta i na to, że to musi być urządzenie na całe lata, czasami dziesięciolecia, stosuje się jak najwięcej standardowych układzików, tak by nawet jak firma produkująca dane urządzenie przestała istnieć, to dało się to naprawić. Podejrzewam, że nikt by nie chciał wydać 400 tyś na sprzęt, bo proc w nim padł, a firma już nie istnieje :). Dlatego spokojnie, spokojnie, przykład CERN to jedynie GUI, na bank!
Jeśli o mnie chodzi to dla mnie java w sprzęcie nie istenieje :). Conajwyżej w GUI w telefonach itp. Sama elektronika na javie nie jedzie. Gdzie znajdziesz chociażby kartę dźwiękową, graficzną, sieciową z ich wewnętrznym oprogramowaniem w javie. To samo monitory, drukarki, zegarki zwykłe/na rękę/na ścianę, radia, wieże, kuchenki mikrofalowe, pralki, lodówki, telewizory, amplitunery, wzmacniacze, modemy, sterowniki pieców zwykłych/gazowych, nawet samochody nie wiem czy mają jave (wiem że firmy mają własne OSy więc pewnie nie wszędzie jest, jeśli w ogóle jest) itd itd itd. Szczerze mówiąc chyba java jest kiepska ;), skoro w większości urządzeń jej nie ma - a jest asm i C, ew. specjalistyczne układy.
Dla mnie java to mniejszość. Jedynie pecety i niektóre urządzonka. Reszta jedzie na ASM, C, czasami BASCOMIE, C++.