PIC vs AVR

W dniu 2014-04-06 23:01, AlexY pisze:

Czyli tak jak napisałem nie było nic konkretnego :) Hint: "Co do błędów kompilatorów nie podam konkretów"

Bo nie rozumiem takich pretensji :) Dla mnie jedyne książki z których nic się nie da zrozumieć to książki Bieleckiego. Z reszty można się nauczyć. A na styl pisania i umiejętności autora podręcznika technicznego można narzekać w takim stopniu jak na styl pisania w dataszicie układu. Ważne są jego funkcje i sposób stosowania. Po to się jest inżynierem żeby nie grymasić tylko stosować wiedzę (np przykłady) podawaną w źródle. I nie nauczysz się podczas lektury tylko poprzez rozpoznanie w walce. Czyli próbując coś wykonać.

Podałem przykłady z NXP, bo te najlepiej znam. Ale podobnie jest z STM. Nawet w pewnym momencie rozważałem przejście na STM bo mieli szerszą ofertę w Cortex M4 na który zamierzałem przejść. Więcej pamięci przy mniejszych ilościach nóżek.

Bez przesady. Coś tam dłubię na najsłabszych Xilinxach - Spartan3. Ale zamierzam wkrótce przejść na Spartan6 bo potrzebuję działań DSP do szybkiej aproksymacji przebiegów. Ograniczeniem są tu niestety typy obudów. Tylko dwa najsłabsze SPartan6 mają obudowę LQFP - 144 pinów. Pozostałe to BGA, a na to nie jestem gotowy :)

W sumie to takie advocacy się zrobiło. Albo inaczej mówiąc naparzanka :) Ale może przy okazji parę osób dowiedziało się o innych możliwościach.

Reply to
Mario
Loading thread data ...

Nie chciałbym stawiać Cię pod ścianą, ale tam było jeszcze pytanie b), które nie wiedzieć dlaczego pominąłeś. Moim zdaniem dużo istotniejsze. Skoro program warto pisać, nie zważając na 40%-90% marnotrastwo czasu procesora, to dlaczego nie dać 10x szybszego, skoro to rozwiąże problem? S.

Reply to
Sylwester Łazar

W dniu 2014-04-06 22:49, AlexY pisze:

Czas wdrożenia produktu jest jednym z istotniejszych parametrów. Produkt ma możliwie szybko uzyskać postać gotową do sprzedaży i zarobić na programistę i innych biorących udział w produkcji. Nie musi być najdoskonalszy na świecie, pozbawiony nadmiarowych instrukcji. Ma realizować swoje zadanie i być bezawaryjny. Dla mnie błąd w kodzie jest wtedy gdy urządzenie nie działa zgodnie z przeznaczeniem lub jest awaryjne (np podatne na zakłócenia). Nie sądzę żeby był gorszy przyrząd z prockiem, który 90% czasu krąży w pustej pętli, a przez 100 ms realizuje zadanie (a mógłby realizować 65 ms gdyby był w asm), od przyrządu, który ma procek wytężony na 95% ale napisany przez wybitnego fachowca w asm (bo pisany w c by się w tym procku nie zmieścił albo nie wyrabiał by czasowo).

Reply to
Mario

Nie ma powodu aby młócił powietrze, możesz go uśpić jak nie potrzebujesz procesora - przerwanie od portu lub licznika Ci go obudzi...

A zapas mocy przyda Ci się choćby po to, aby nie przejmować się jakimiś drobnymi nieefektywnościami kodu generowanego przez kompilator i zamiast dłubać coś godzinami w asemblerze napisać coś w pięć minut w C.

Musisz bo nie że mógłbyś małe 51 tylko musisz bo nie umiesz ARMa, którego też się wygodnie programuje a kosztuje tyle co mały 51 i ma

10x więcej mocy, portów, liczników 32-bitowych, UARTów, Ethernet, parę portów USB i jeszcze sterownik wyświetlacza LCD lub eInk...

Największy AVR sięga Cortexowi do pięt... albo do kostek conajwyżej.

Czemu nie? Ja tą analogię widzę. Ty nie widzisz?

Tak jak napisał Ci Sylwester obok - nie potrzebujesz ADC - nie włączasz go. Od początku, od resetu nie działa, nie marnuje prądu. Niby masz a tak jakby go nie było...

Uczyć się rodziny procesora, jego możliwości, jego specyfiki, jego rejestrów kontrolnych, tego co on umie a czego nie umie... Oswoić się też warto z bibliotekami, narzędziami do tworzenia kodu (środowisko), sposobem programowania/debuggowania itp.

Może 20. Wrzuciłem go do jednego wora z PICem, 8051 i ich klonami.

Ciekawe czemu tego wyświetlacza nie podłączyli do jakiegoś AVRa, co?

Reply to
Pszemol

A po co Ci jakiś standard? Wstawisz w płytkę dziurki pod goldpiny i już.

Ja używam kostek od NXP.

Reply to
Pszemol

To nie do konca tak...

Fakt, ze opisanych problemow nie mialem na avr-gcc, ale ogolnie i AVR-y i PIC-e maja swoje zalety i wady. O PIC-ach tylko czytalem, a na wady AVR-ow natknalem sie w praktyce.

Ciekawa lektura:

formatting link
Ale fakt, ze na kompilator nigdy nie moglem narzekac.

Reply to
Adam Wysocki

W dniu 2014-04-06 23:53, Sylwester Łazar pisze:

Ale według mnie to jest bardziej istotne. Nigdzie nie wykazałeś, że jest możliwe napisanie takiego programu startującego w 50 ms. Więc punkt b jest bez sensu.

Bo nie ma takich procków? To znaczy pewnie są, ale nie opłaca się ich stosować w urządzeniach mających kosztować między 1,5 a 4 kpln. Ale też pytanie dlaczego nie ma takich programów jak Windows i użytkowy soft na niego, ale napisanych w asm i startujących w 50ms zamiast w 30 sekund. Bo kosztowałyby 20 razy więcej niż teraz, a startowałyby np w 15 sekund czy ewentualnie 10 zamiast 30, a nie w 50 ms. Nikt nie zapłaci za nie ogromnych pieniędzy po to żeby były trochę szybsze.

Reply to
Mario

W dniu 2014-04-06 23:53, Sylwester Łazar pisze:

Ale według mnie to jest bardziej istotne. Nigdzie nie wykazałeś, że jest możliwe napisanie takiego programu startującego w 50 ms.

Bo nie ma takich procków? To znaczy pewnie są, ale nie opłaca się ich stosować w urządzeniach mających kosztować między 1,5 a 4 kpln. Ale też pytanie dlaczego nie ma takich programów jak Windows i użytkowy soft na niego, ale napisanych w asm i startujących w 50ms zamiast w 30 sekund. Bo kosztowałyby 20 razy więcej niż teraz, a startowałyby np w 15 sekund czy ewentualnie 10 zamiast 30, a nie w 50 ms. Nikt nie zapłaci za nie ogromnych pieniędzy po to żeby były trochę szybsze.

Reply to
Mario

do pracy.

Współczesne "programy" są na tyle złożone, że do ich uruchomienia potrzebne jest skomplikowane środowisko (SO) które nie jest w stanie uruchomić się w 50ms a potrzebuje do tego grube dziesiątki sekund. To pierwsze. Po drugie, właśnie po to jest hibernacja czy uśpienie aby procesu uruchamiania nie wywolywac, bo po co? "Program" ma wznowić działanie tam gdzie się go zatrzymało. Sugerowanie, że należałoby by pisać programy i so w asm to by były szybsze i uruchamiały się w 50ms jest niedorzeczne. Zdradza jedynie to, że autor takiego pomysłu nie zdaje sobie sprawy z złożoności i komplikacji współczesnego so, czy nawet współczesnych aplikacji które robią trochę bardziej skomplikowane rzeczy niż miganie ledami czy sortowanie tablicy liczb.

Reply to
Marek

W dniu 2014-04-07 00:04, Pszemol pisze:

Można użyć takich z rastrem 1,25. złącze 2*5 zajmuje bardzo mało miejsca. Do SWD wystarczyłoby dać 2*2.

Reply to
Mario

No ale LPC810 to taki scalak dla Sylwestra, aby sobie pisał w asemblerze i liczył instrukcje... 4k flash i 2k ram.

Reply to
Pszemol

Autor tej lektury chyba porównywał starszą arch. pic14 z avr zamiast pic16.

Reply to
Marek

:-) Dziękuję za uznanie. Tylko do swojego notebooka go nie wstaw, bo będzie się budził 2 lata. S.

Reply to
Sylwester Łazar

Powoli nabieram respektu. Oczywiście SO jest warunkiem koniecznym i bezdyskusyjnym.

Czyli w wojsku, lotnictwie, aparaturze medycznej po prostu nie zdają sobie sprawy ze złożoności i komplikacji itd. itp. Ciekawe, jak oni tam z tym złożonym systemem operacyjnym działają, czekając 15 sekund, aż system będzie gotowy do odpalenia rakiety :-)

- Panie pułkowniku Leci na nas rakieta!

- Spokojnie kapralu. Naciśnijcie guziczek, odczekamy 15 sekund, a pot .................. ..................

Reply to
Sylwester Łazar

Zgoda, z tym że wspomnianym wyżej faktem jest że Ty tak uważasz a nie jest faktem że hibernacja to proteza :-) To tylko Twoja *opinia*.

No jak to nie umie, skoro umie - właśnie to robię. Nazywa się to hibernacja. Polega na zatrzymaniu działania programów, zamrożenie wszystkiego z pamięci DRAM do pliku na dysku i wyłączeniu zasilania. Ponowne uruchomienie powoduje odczytanie zawartości DRAM i "odmrożenie" zamrożonych wcześniej aplikacji w stanie w jakim zostały zamrożone... Oczywiście upraszczam, bo jeszcze trzeba hardware poinformować że idziemy spać ale z grubsza na tym to polega.

To jest punkt 3 czy może 2a?

Nie wmawiaj mi czegoś, czego nie napisałem. Napisałem, że 45 sekund to mniej niż te kilka minut jakie wcześniej sugerowałeś.

Naprawdę? A te 50ms od włączenia to wyliczyłeś jakoś czy może to tylko taka formuła retoryczna którą trzeba interpretować jako bliżej nieokreślone "krótko od włączenia"? :-)

Bo obawiam się że przetestowanie DRAM, enumeracja magistrali USB, zainicjowanie Ethernetu i komunikacja z serwerem DHCP aby uzyskać aktualny adres IP z sieci zajmnie Ci dużo więcej niż te 50ms od włączenia. I jest to podyktowane wyłącznie samą budową sprzętu i protokołów.

Co robiłeś Miszczu Złoty w latach gdy Gates robił kasę na MS-DOS i MS Windows??? Czemu nie zbijałeś kasy na swoim osie?

Emocje Ci zalewają mózg i nie myślisz klarownie... Gdzie ja napisałem że "uważam się" że hibernacja jest lepsza od 50ms startu?

Taki 50msekundowy start byłby świetny... mam podobny tylko nie od power off tylko ze stanu "sleep", gdzie mój pecet gasi tylko LCD i zatrzymuje dysk twardy :-)

Skoro jak bardzo? Hibernacja to ficzerek systemu operacyjnego od Gatesa. Nic mnie nie kosztuje kasy włączenie go, w przeciwieństwie do zakupu 10x szybszego procesora, jeśli taki produkują... A mam laptop ASUSa A47U na procku i7 - byłoby mi ciężko znaleźć 10x szybszy procesor do tego lapka.

Reply to
Pszemol

Dokładnie na tym właśnie polega hibernacja o której pisałem wcześniej.

Reply to
Pszemol

dochodzę do wniosku że Ty mylisz peceta pracującego pod Windows 7 z systemem embedded przeznaczonym do jednego celu: odpalenie rakiety.

Reply to
Pszemol

W dniu 2014-04-07 01:04, Sylwester Łazar pisze:

Mając świadomość, że tu był sarkazm to niestety muszę ci przytaknąć. Głupi routerek czy nawigacja ma system operacyjny który ładuje się kilkanaście - kilkadziesiąt sekund. Zrób nawigację w asm i jeszcze żeby mogła odtwarzać muzykę i filmy. I czytać pdfy. I po podłączeniu do sieci wifi żeby można było jej używać jako przeglądarki. I żeby mogła konkurować cenowo z innymi produktami kosztującymi od 150 do 500 zł.

Widziałeś kiedyś jakąś złożoną aparaturę medyczną. Np do diagnostyki? To najczęściej PC z windowsem. Ile twoim zdaniem startuje?

Poszukaj sobie o systemach prowadzenia ognia np WB Electronics. To są maszynki na Linuksie. Na pewno nie startują 50 ms.

Reply to
Mario

No i doszlismy do sedna. Odnoszę wrażenie, że doszedłeś w końcu do tego, że jesteś na grupie dyskusyjnej: pl.misc.elektronika, gdzie właśnie dyskutuje się o systemach embedded, a nie na pl.comp.pecet

Chyba czas już uśpić komputer :-) S.

Reply to
Sylwester Łazar

To samo chciałem napisać, ale chyba to nie ma sensu...

Reply to
Pszemol

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.