tag:blogger.com,1999:blog-6085382734211687437.post5249336584559542369..comments2024-03-21T08:13:48.283+01:00Comments on Mikrokontrolery Jak zacząć - zbiór najczęściej udzielanych porad: Jaki język wybrać ?Unknownnoreply@blogger.comBlogger90125tag:blogger.com,1999:blog-6085382734211687437.post-43476648336108159712019-07-23T21:04:45.374+02:002019-07-23T21:04:45.374+02:00Trzeba przejść przez niektóre języki, żeby łatwiej...Trzeba przejść przez niektóre języki, żeby łatwiej było nauczyć się innego. Tu nic nie jest przypadkiem, nauka programowania nie jest łatwa.Ermlabhttps://ermlab.com/blog/noreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-31716499244294473602018-08-12T17:40:28.649+02:002018-08-12T17:40:28.649+02:00Aż się człowiek boi wypowiadać w takich sprawach. ...Aż się człowiek boi wypowiadać w takich sprawach. Naprawdę. Chciałoby się nauczyć programowania, a tu tylko dyskusje na temat wyższości jednych języków nad drugimi. Przez takie dywagacje nawet nie chce się zaczynać. No cóż, bawcie się dalej, a ja wracam w <a href="https://www.amt.pl/pl/prt/cty/oscylosk...py-cyfrowe%22" title="oscyloskopy cyfrowe" alt="oscyloskopy cyfrowe" rel="nofollow">oscyloskopy cyfrowe</a>, bo chyba to najbezpieczniejszy teren. Pozdrawiam! Co do autora bloga to życzę dużo sukcesów w rozwoju tej strony! :)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-75427057230330034132018-02-06T11:34:02.469+01:002018-02-06T11:34:02.469+01:00Nie znam się, ale moim zdaniem do przypisywania wa...Nie znam się, ale moim zdaniem do przypisywania wartości w rejestrach to nadaje się każdy z wymienianych języków programowania ( pierwszeSlyszęBascom, C, C++11, Java, ASM, Basic, itd. )... Pozdrawiam:)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-85972174673444449552018-02-05T17:37:22.280+01:002018-02-05T17:37:22.280+01:00To samo miałem z programowaniem GPU - co z tego, ż...To samo miałem z programowaniem GPU - co z tego, że są popularna, tańsze i tysiące razy bardziej wydajne ( GTX660 za 300zł to ~1.1TFLOPs ), jak kojarzą się jedynie z klikanym propagowaniem V przykazania? Zero ofert pracy - gwarantowane bezrobocie! Dobrze, że pracuję w ARM'ach ( Cortex M4 - wszelakie STM32F4xx, itp. ), ale jak na wstępie; potwierdzam, że w pracy się robi to, co pracodawca uczciwie karze:) Ja tam na etacie programisty mogę poprawiać szpadlem po koparce - robota jak każda:)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-4508396999481707712016-09-18T14:54:43.016+02:002016-09-18T14:54:43.016+02:00Znowu kolega jakieś bajki wypisuje. RS485 nie jest...Znowu kolega jakieś bajki wypisuje. RS485 nie jest krytyczny czasowo, nawet 8-bitowe procki w Bascomie się przy tym wyrabiają. Od tego jest hardware, w buforowaniem, który realizuje tą transmisję sprzętowo. Podobnie kontrolery CAN mają wielopoziomowe bufory na ramki, dzięki czemu obsługa zdarzeń nie jest krytyczna czasowo. Wspomniane przetworniki ADC to nie domena 8-bitowców. Zwykłe DMA lub I2S rozwiązuje sprawę. Obsługa przetworników video? Jakiś przykład?<br />Do kamerek ARMy mają stosowne interfejsy, jeśli ktoś robi akwizycję obrazu o takiej rozdzielczości to zazwyczaj w jakimś celu i tu 8-bitowce po prostu się nie nadają. Chociażby z braku pamięci na bufor ramki. Dalej to już mieszasz Bascom z PHP i nawet nie wiem o co ci chodzi. BTW, do PHP istnieją kompilatory. A z malejącym rendem jest on ciągle używany, bo został stworzony do tworzenia komunikacji i serwisów internetowych. Podobnie jak kiedyś Pearl. Poza tym nie ma żadnych zastosowań.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-74459933485925770102016-09-18T14:09:16.211+02:002016-09-18T14:09:16.211+02:00Rozbawiłeś mnie kolego, a właściwie administratorz...Rozbawiłeś mnie kolego, a właściwie administratorze bloga.<br />A więc po kolei:<br /><br />Pytałeś o przykład kiedy czas wykonywania jest istotny, oto kilka przykładów: <br /><br />- Obsługa magistrali RS485 (1 - 2.5 Mbps to standard) <br />- Obsługa magistrali CAN ( znaczna większość obecnie produkowanych pojazdów )<br />- Obsługa studyjnych przetworników A/C (24bit,176Kb/s,2 kanały)<br />- Obsługa przetworników Video.<br /><br />RS485 to standard stosowany w przemyśle, CAN w motoryzacji.<br />Napisz sobie w C przechwytywanie obrazu do pliku .bmp z tak prostej kamerki jak <br />np. OV 7670 (640x480) i skompiluj swoim super gcc.<br />I co ? Kicha - nie wyrobi się. Tutaj tylko Assembler da radę.<br /><br />Dalej:<br /><br />Cyt. "porównać do kompilatoropodobnego tworu typu Bascom"<br />Moim zdaniem kompilator C jest miażdzony przez interpreter PHP, który działa <br />w czasie rzeczywistym a wszystkie zmiany w plikach "includowanych" są <br />natychmiast widoczne bez linkera.<br /><br />Twoje przyzwyczajenia z C kompletnie zaciemniają realny obraz sytuacji.<br /><br />Bascom tworzy dobry kod, szczególnie jeśli najważniejsze procedury są <br />napisane w ASM, taki duet kopie leżące C pod względem szybkości pisania programu<br />Dlatego właśnie do mikrokontrolerów takiego duetu używam a nie C.<br /><br />Dalej:<br /><br />Cyt "obecnie rzadko stosowane PHP to zewnętrzna otoczka."<br /><br />PHP obecnie stanowi ponad 80% wszystkich stron w sieci.<br /><br />https://w3techs.com/technologies/overview/programming_language/all<br /><br />C jako margines, nawet nie zmieścił się w zestawieniu.<br />Tutaj Java konkretnie go nokautuje, o ASP.net nie wspominając.<br /><br />Szybkość pisania w PHP vs C to jakby porównać ślimaka do rakiety, <br />stąd też wynika jego popularność.<br />Ponadto do PHP nie trzeba dodatkowych kompilatorów itd. <br />Po prostu piszesz (nawet i w notatniku) i uruchamiasz.<br /><br />Giganci jak Google używa C dlatego iż gotowy kod jest szybszy niż <br />interpreter PHP, jednak na czas jego napisania (czyt.koszt) <br />mogą sobie pozwolić tylko molochy, gdyż jak już wielokrotnie wspominałem <br />C jest wyjątkowo nie ekonomiczne jeśli idzie o czas napisania gotowego kodu.<br /><br />Mam nadzieje iż nie uraziłem.<br />Pozdrawiam, Greg.<br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-21150695820064002372016-09-18T12:19:32.055+02:002016-09-18T12:19:32.055+02:00Pseudowielowątkowość to nie wielowątkowość. Proszę...Pseudowielowątkowość to nie wielowątkowość. Proszę nie mylić pojęć. Prosiłby też o konkretne przykłady, gdy określony czas wykonania ISR jest istotny.<br />Czas ogarnięcia struktury biblioteki w małym stopniu zależy od języka, a praktycznie w całości od jej dokumentacji. Biorąc pod uwagę systemy automatycznie tworzące dokumentację, można przypuszczać, że będzie ona lepsza dla C niż dla Bascoma.<br />gcc jest liderem we wszytkich rankingach jakości tworzonego kodu, szybkości itd. Nawet nie próbuj tego porównać do kompilatoropodobnego tworu typu Bascom, bo to tylko śmiech.<br />Mijasz się znowi z prawdą pisząc o portalach takich jak Twitter, czy FB:<br />https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites<br />Jak widać rdzeń stanowi zapewne C/C++, a obecnie rzadko stosowana PHP to zewnętrzna otoczka.<br />Linker to nie to samo co jakieś include. W C/C++ mamy include, ale żaden szanujący się autor książek o programowaniu nie zaleca, aby używać tego do wstrzykiwania kodu źródłowego. Prosty, acz nie jedyny przykład na problem wynikający z braku linkera - robisz małą zmianę i w efekcie musisz rekompilować cały projekt. Mając linker - rekompilowany jest tylko plik w którym zaszła zmiana (i ew. zależności), co zajmuje chwilę, a następnie równie szybko jest tylko konsolidowany cały projekt.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-8697101266609595082016-09-18T11:08:09.810+02:002016-09-18T11:08:09.810+02:00Przerwania, to podstawa całego systemu, dlatego ta...Przerwania, to podstawa całego systemu, dlatego tak ważna jest umiejętność napisania ich w asemblerze - gdyż tylko asembler jest przewidywalny odnośnie czasu wykonania procedury i to właśnie na przerwaniach uzyskuje się pseudo - wielowątkowość gdyż główna pętla zajmuje się "wątkami" a nie oczekiwaniem na wejście.<br /><br />Natomiast nie zrozumiałeś mnie z nokautem C odnośnie sterowników. Oczywiście że są biblioteki do C i to nawet całkiem niezłe - Jednak czas potrzebny aby ogarnąć C i wspomniane biblioteki + czas napisania programu jest wielokrotnie wyższy niż czas ogarnięcia tego samego w Bascom + Asembler.<br /><br />Młody człowiek uruchamiający Bascom w zaledwie godzine jest w stanie stworzyć prosty sterownik sterowany RC5 i do tego nie potrzebuje ani przerwań ani asemblera. To właśnie czyni Bascom nieśmiertelnym. Aby to samo zrobić w C czas trzeba liczyć w dniach albo i tygodniach, przez co zniechęca to wiele osób.<br /><br />Tą samą drogą poszedł projekt Arduino, tyle iż zmieniono język i wstawiono programator na płytkę przez co stała się wiele większa i droższa, zupełnie NIE potrzebnie - gdyż programator mógł być w komplecie.<br /><br />C i GCC jest najbardziej znane (bo darmowe), co nie znaczy iż najlepsze. A wynikowy kod również pozostawia wiele do życzenia. <br /><br />Oczywiście nie twierdzę tutaj iż wszystko trzeba pisać w ASM, bo np. proste dzielenie (za wyjątkiem wielokrotności 2) to już nie lada sztuka w ASM.<br /><br />Dlatego też warto połączyć szybkość ASM z prostotą Bascom-a i dzięki temu szybko tworzyć nawet zaawansowane projekty.<br /><br />Wspominałeś na końcu o braku linkera. Bascom tak samo jak PHP bazuje na "include" i tym sposobem rozbija się projekt na mniejsze części - umawiając się wcześniej co mamy na wejściu i jak przekazywać wyjście - tak więc nie jest to żadnym problemem a wynika raczej z przyzwyczajeń do C.<br /><br />Czy uważasz iż Facebook czy też Twitter to małe projekty (dołączając do tego jeszcze całe API) ? One właśnie zostały napisane w PHP bez linkera używając INCLUDE i pracuje nad nimi rzesza osób.<br /><br />Dlaczego wspomniane portale nie zostały napisane w C ?? Gdyż jak wspomniałem pisanie w C jest nie ekonomiczne do tego na znalezienie prostego błedu w C można czasem i nawet miesiąc stracić w dużym projekcie. To samo tyczy się Asemblera - dlatego ASM używa się tylko tam gdzie to niezbędne ograniczając tym samym ilość pomyłek do minimum.<br /><br />C używam np jeśli potrzebuję napisać coś pod Linuksa. <br />DELPHI jeśli pod Windows.<br />PHP do aplikacji serwerowej.<br />A BASCOM i ASEMBLER jeśli tworzę oprogramowanie dla mikrokontrolera.<br /><br />Nie ograniczam się do jednego języka, gdyż tylko znając kilka nie przeszkadza Ci ułomność pozostałych w kwestiach do których nie najlepiej się nadają.<br /><br />Pozdrawiam, Greg.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-86603247133070200492016-09-17T19:20:47.843+02:002016-09-17T19:20:47.843+02:00Niestety nie jest tak jak piszesz. Po pierwsze apl...Niestety nie jest tak jak piszesz. Po pierwsze aplikacje wielowątkowe - ani C, ani Bascom je nie wspierają. Do tego potrzebny jest RTOS. Nie widziałem RTOSa napisanego w BASCOMie. Kolejna sprawa - Arduino nie wymaga żadnego bootloadera. To tylko dodatkowy kod mający zadanie ułatwić ładowanie kodu aplikacji - zamiast z użyciem programatora można to zrobić wykorzystując bootloader. Arduino to tylko zwykły AVR + płytka. U Chińczyków można kupić zestaw poniżej dolara. Można też wziąć procek i sobie go zaprogramować kodem skompilowanym w Arduno IDE.<br />Kolejna bajka to knockout dla C przy wykorzystaniu sterowników. Tak się składa, że są biblioteki do obsługi I2C, 1-wire, LCD itd. Wystarczy dołączyć i można korzystać. W Atmel Studio masz ASF i w nim sterowniki do wielu LCD, także graficznych, drivery USB dla urządzeń różnych klas, drivery dla akcelerometrów, czujników ciśnienia i dziesiątek innych rzeczy. Wystarczy kilka kliknięć.<br />Owy "darmowy i marny kompilator" - masz na myśli zapewne gcc to jeden z najlepszych kompilatorów na świecie. Koniecznie chcesz płacić to masz IAR, CodeVision, czy Mikroe - wszystkie są z własnym IDE i setkami gotowych bibliotek.<br />Wracając do Bascoma - to czegu mu najbardziej brakuje to linkera. Bez tego nie da się stworzyć sensownego, dużego projektu. Takie projekty zwykle wymagają rozbicia na wiele plików nad którymi pracuje się niezależnie. Brakuje mu też nowoczesnego IDE i wielu innych rzeczy.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-67929000236079230912016-09-17T17:27:08.040+02:002016-09-17T17:27:08.040+02:00Śmieszy mnie gdy ktoś szydzi z Bascoma, a wynika t...Śmieszy mnie gdy ktoś szydzi z Bascoma, a wynika to głównie z nieznajomości tego języka i jego możliwości.<br /><br />Kilka faktów:<br /><br />- Bascom umożliwia wstawki w Asemblerze, co daje max power dla wrażliwych czasowo aplikacji oraz umożliwia budowanie skomplikowanych i wielowątkowych aplikacji z użyciem przerwań w bardzo krótkim czasie.<br /><br />- Bascom w porównaniu np do Arduino, nie wymaga żadnych bootloaderów i obsługuje długą listę mikrokontrolerów a najtańsze z nich można kupić za 2 zł ( oryginalne Arduino ~ 100zł ) do tego Arduino obsługuje tylko kilka procesorów.<br /><br />- Czas napisania sterownika w Bascomie (i jego prostota) korzystającego z I2C, RC5, 1wire, USART i LCD to nokaut dla języka C.<br /><br />TO tylko "kilka" zalet. 500zł za pełną wersję programu jest wręcz śmieszna kwotą, biorąc pod uwagę tylko te kilka zalet i zwraca się bardzo szybko. Być może autor ma czas za FREE, jednak warto tutaj wspomnieć iż każda godzina to min ~10zl zarówno na naukę jak i pisanie programu. Do tego należy doliczyć koszt użytych podzespołów co dyskwalifikuje Arduino.<br /><br />Porządny kompilator do C kosztuje znacznie więcej niż Bascom, i faktem jest że C można używać na różnych platformach. Jednak czas (koszt!) jaki należy poświęcić na jego naukę aby osiągnąć umiejętność pisania korzystając z w/w protokołów wielokrotnie przekracza to 500zł wspomniane przez autora, bynajmniej na tym poziomie C nokautuje Arduino.<br /><br />Osobiśćie używam Bascom włącznie z Asemblerem, bo to najlepszy duet do pisania wszelakiego rodzaju sterowników. Argument iż Bascom obsługuje tylko jedną rodzinę "procków" jest akurat na plus. Gdyż lepiej znać dobrze jedną rodzinę i potrafić wycisnąć z nich max, niż też znać 10 po trochu i korzystać z darmowego i marnego kompilatora C.<br /><br />Aby nie było, lata wstecz swoją naukę rozpocząłem od Atari Basic, póżniej Asembler, Delphi, C/C++, Bascom ,Php, Mysql, Javascript i Html oraz C dla Arduino kończąc.<br /><br />Każdemu kto chce uczyć się Bascom, polecam równolegle podstawową naukę Asemblera, pomoże to zrozumieć jak działa mikrokontroler i znacznie tym samym rozszerzyć możliwości Bascom'a czyniąc go wyjątkowo efektywnym nawet w zastosowaniach komercyjnych, takich jak sterowniki przemysłowe i to za śmieszne 500zł licencji wliczonej w Bascom.<br /><br />Pozdrawiam wszystkich i mam nadzieje iż nikogo nie uraziłem.<br />Greg.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-59968773404597521192016-09-09T13:54:49.574+02:002016-09-09T13:54:49.574+02:00A propos Pascala "na wymarciu":
11-te mi...A propos Pascala "na wymarciu":<br />11-te miejsce według Tiobe (stan na wrzesień 2016)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-62861098939559374312015-10-23T02:32:59.530+02:002015-10-23T02:32:59.530+02:00Po latach doświadczeń, a zaczynałem od asm, mogę ...Po latach doświadczeń, a zaczynałem od asm, mogę stwierdzić, że warto zacząć od powszechnego C, lub C++, o czym za chwilę. Zawsze miałem hamulec do przejścia z asm do C, ale gdy to zrobiłem zacząłem żałować, dlaczego nie wcześniej. C uwolnił mnie od setek etykiet, bez ktorych w asm nie da rady, oraz w arytmetyce liczb wielobajtowych. Jedak w C zabrakło mi kontroli nad każdym cyklem, chyba raczej z przyzwyczajenia, bo w praktyce nie robi się tego często. No i ważny aspekt przy tej migracji - co bardziej boli: przesiadka z asm na C, czy z C na asm, bo to dwie różne filozofie programowania. Wg mnie z asm na C jest łatwiej. Asm nie jest dziś ekonomicznie wydajny, hobbistycznie można zaczynać od asm, ale zawodowo nie bardzo. Właściwie nowicjuszom poleciłbym C++, oczwiście do momentu obiektowego, bo to już inny wymiar i początkujàcego może odstraszyç, ale ten pierwszy etap języka, to przecież poczciwy C, z pięknymi mechanizmami jeszcze bardziej ułatwiającymi życie programiście np. parametry domniemane, definicje zmiennych w każdym miejscu kodu, referencje i wiele innych. A później skok w obiekty, to z automatu, i właściwie w którą stronę programowania później nie pójdziemy to drzwi są już otwarte.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-6893757470302783572015-05-07T13:50:20.900+02:002015-05-07T13:50:20.900+02:00Piszę o tym w artykule w opisie assemblera: cyt.
...Piszę o tym w artykule w opisie assemblera: cyt. <br />"warto poznać gdyż przydaje się w newralgicznych projektach (szybkość, mniejsza zajętość pamięci programu, itp.),"<br /><br />Natomiast, czy C bez assemblera da radę, zależy od zadania i częstotliwości taktowania mikrokontrolera. <b>Dlatego nie można jednoznacznie powiedzieć, że rady nie da. Proszę pamiętać, że artykuł nie dotyczy tylko i wyłącznie AVR.</b>Donduhttps://www.blogger.com/profile/00935153382439363150noreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-20029161085302485442015-05-07T13:20:30.170+02:002015-05-07T13:20:30.170+02:00"[..] jest tylko jeden fragment wymagający as..."[..] jest tylko jeden fragment wymagający asemblera [..]"<br />"[..] jest jeszcze jeden moment, gdy asembler przy generowaniu video jest niezbędny [..]"<br />"[..] ponieważ tam timingi liczy się do każdego cyklu kompilator C mógłby wprowadzić jakieś dodatki [..]"<br />Czyli wreszcie osiągnęliśmy konsensus. Bez asemblera nie da rady i C tu nie pomoże.<br /><br />Zgadzam się z tym, że dużo można w C, więcej niż w BASCOM, ale jednak są projekty (jak ten wymieniony), w których bez asemblera po prostu się nie da.szafarznoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-86006012518733913992015-04-16T07:40:23.253+02:002015-04-16T07:40:23.253+02:00"No chyba, że masz mniej niż 12 lat lub nie b..."No chyba, że masz mniej niż 12 lat lub nie będziesz zajmował się tym zawodowo, to wybierz Arduino." <br />Arduino to takie małe PLC programowane w języku C , szybko i sprawnie.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-84773772915639616242015-04-14T21:10:07.374+02:002015-04-14T21:10:07.374+02:00Jeśli przejrzysz przykłady załączone do mojej ksią...Jeśli przejrzysz przykłady załączone do mojej książki "AVR. Układy peryferyjne" to znajdziesz tam kody w C generujące obraz TV. W załączonym w artykule Dondu przykładzie jest tylko jeden fragment wymagający asemblera - 3 instrukcje eliminujące jitter wejścia w przerwanie rozpoczynające generowanie nowej linii. A więc w C się da. Ogólnie jest jeszcze jeden moment, gdy asembler przy generowaniu video jest niezbędny - generowanie color burst dla systemu PAL, ponieważ tam timingi liczy się do każdego cyklu kompilator C mógłby wprowadzić jakieś dodatki i w efekcie w jednej wersji kompilatora by działało w innej niekoniecznie.tmfnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-82950169797025924172015-04-14T16:59:41.402+02:002015-04-14T16:59:41.402+02:00Rzeczywiście moje twierdzenie niewiele ma tu do ga...Rzeczywiście moje twierdzenie niewiele ma tu do gadania. Autor tego projektu uważa, że się nie da i dlatego część mało istotną (przygotowanie danych, niekrytyczne pod względem czasowym) napisał sobie w C a część roboczą w ASEMBLERZE. Stąd moje poparcie dla zdania, że się jednak nie da. Opornych zachęcam do pokazania, że się da, bo powiedzieć to może każdy, że nawet w BASCOMIE się da. Zadanie jest o tyle łatwe, że kod już jest wystarczy go napisać w C. Jeśli chodzi "konkretny przypadek fragmentu kodu programu i jego zadanie" to proszę bardzo: asm.S w kodzie żródłowym dostępnym na stronie projektu.szafarznoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-9758453092834945492015-04-08T22:33:53.419+02:002015-04-08T22:33:53.419+02:00Nie bardzo rozumiem, co masz na myśli :-)
Wszystko...Nie bardzo rozumiem, co masz na myśli :-)<br />Wszystko co wymieniłeś to tylko języki, których kompilatory zamieniają kod źródłowy na kod maszynowy i dopiero tym kodem programujemy mikrokontroler.Donduhttps://www.blogger.com/profile/00935153382439363150noreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-12109626529180800712015-04-08T21:06:04.329+02:002015-04-08T21:06:04.329+02:00Nie miałem w rękach mcu, którego można oprogramowa...Nie miałem w rękach mcu, którego można oprogramować w BASCOMie czy w FORTH. Za to zazwyczaj spotykam się z zestawem ASM/C/C++Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-78883662695205946722015-03-25T04:57:57.050+01:002015-03-25T04:57:57.050+01:00Możesz twierdzić co zechcesz, tak samo jak ja mogę...Możesz twierdzić co zechcesz, tak samo jak ja mogę robić dokładnie to samo. <b>Istotny jest konkretny przypadek fragmentu kodu programu i jego zadanie.</b> Dlatego stanowcze twierdzenie, że kompilator C przy odpowiednio włączonych parametrach optymalizacji nie jest w stanie wygenerować odpowiednio wydajnego kodu maszynowego jest błędne. Donduhttps://www.blogger.com/profile/00935153382439363150noreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-44150876400214066632015-03-24T22:17:38.099+01:002015-03-24T22:17:38.099+01:00Wciąż uważam, że się nie da. Zachęcam do przeczyta...Wciąż uważam, że się nie da. Zachęcam do przeczytania całego artykułu dotyczącego wspomnianego projektu i mojego posta o liczeniu taktów procesora. Wnioski dla nawet początkującego programisty (no, może ambitnego początkującego) sa oczywiste.szafarznoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-22978416718959435172015-01-24T03:11:28.684+01:002015-01-24T03:11:28.684+01:00Anonimowy kolego. Wytłumaczyłem Ci zasady jakimi k...Anonimowy kolego. Wytłumaczyłem Ci zasady jakimi kierujemy się na blogu w zakresie dyskusji w komentarzach. Niestety jesteś agresywny wobec kolegi tmf dlatego skasowałem Twój komentarz. <br /><br />Jeżeli nadal chcesz w ten sposób prowadzić rozmowę z emocjami i zaczepkami wobec kogokolwiek, to po prostu daj sobie spokój, bo posty będę kasował w całości nie patrząc już na wartościowe fragmenty.Donduhttps://www.blogger.com/profile/00935153382439363150noreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-5481508964075645942015-01-23T14:59:13.918+01:002015-01-23T14:59:13.918+01:00Ten komentarz został usunięty przez administratora bloga.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-65033803621581373592015-01-23T13:51:04.911+01:002015-01-23T13:51:04.911+01:00Kolego Anonimowy - jeśli zamierzasz dyskutować to ...Kolego Anonimowy - jeśli zamierzasz dyskutować to podaj jakieś argumenty. Bo na razie twierdzisz, że niszowy język, którego obecnie nikt poważny nie używa (jakoś ani firmy produkujące MCU, ani producenci peryferiów nie pokazują przykładów w tym języku, ani nie udostępniają w tym języku bibliotek) jest objawieniem. Twierdzisz, że brak kontroli typów jest super, podczas, gdy wszyscy idą w kierunku języków ze ścisłą kontrolą typów. Architektura - proszę bardzo - jak wygląda wykorzystanie pamięci i stosu w F, a jak wygląda organizacja i zarządzanie stosem w MCU? Nie widzisz tu niekompatybilności? Pytałem o jakieś przykłady na poparcie tezy o rzekomej innowacyjności w wypróbowaniu nowego pomysłu (cokolwiek to znaczy). Jak w świecie embedded chcesz uprościć cykl - pisanie programu-programowanie pamięci - testowanie? C różni się tylko etapem kompilacji i konsolidacji, które są robione automatycznie i w normalnym środowisku użytkownik praktycznie nie ma świadomości ich istnienia. Ale zbyłeś to milczeniem.<br />A porównania jakości kompilatorów są publicznie dostępne, analizy wad i zalet również. Więc albo zacznij pisać konkretnie, albo sobie odpuść. Bo mam wrażenie, że toczymy dyskusję z osobą, która właśnie z zakurzonej półki wyciągnęła starą książkę i uległa dziwnej fascynacji. <br />Warto też pamiętać, że w statystykach popularności języków używanych do programowania MCU, Forth nawet nie występuje - tak jest niszowy. Więc nawet, gdyby był to najgenialniejszy język na świecie to po prostu z przyczyn czysto praktycznych nie ma sensu w to wchodzić.<br /><br />tmfnoreply@blogger.comtag:blogger.com,1999:blog-6085382734211687437.post-46418082267994454172015-01-22T23:24:03.507+01:002015-01-22T23:24:03.507+01:00Jeśli chodzi o narzędzia płatne, profesjonalne - t...Jeśli chodzi o narzędzia płatne, profesjonalne - to przykładem takich może być SwiftX: http://www.forth.com/embedded/ (można pobrać bezpłatne wersje ewaluacyjne) - kliknij na "Supported microcontrollers" i zobaczysz obsługiwane "rodziny". Są i bezpłatne narzędzia, oczywiście (na SourceForge, na przykład: FlashForth, PICForth, CamelForth itd.), tudzież płatne innych firm (np. MPE).<br /><br />Artykuł? Może i napiszę - ale w wolnej chwili, a tych na razie mi brak. Po prostu: jeśli ma być napisane, to ma być napisane PORZĄDNIE. A nie, żeby po przeczytaniu pisano mi jakieś uczenie brzmiące nonsensy o "architekturach". ;)<br /><br />Nie, nie mówię, że inne języki są "złe" - ale i przytoczę takie powiedzonko o Forth-cie: "Forth działa jak wzmacniacz; dobry programista dokona w nim cudów, ale słaby programista sprowadzi prawdziwą katastrofę". Dlaczego? Bo kompilator Fortha jest idealnie posłuszny, można powiedzieć, zatem POZWALA NA WSZYSTKO: nie będzie bronił użytkownika przed jego własnymi błędami. Tu trzeba wiedzieć, co się robi! Cała odpowiedzialność spoczywa na Tobie - a nie na dostawcy "udogodnień". Ale jak się wie - to można sobie "pohulać"... :)<br /><br />P.S. Tu jest całkiem niezła charakterystyka języka; dość prosta nawet dla laika:<br />http://www.jupiter-ace.co.uk/Forth_PCWGoForthAnd.html<br /><br />Nie wiem, kiedy będę mógł coś odpisać na ew. pytanie - może już niedługo.Anonymousnoreply@blogger.com