Elektroda.pl
Elektroda.pl
X
Relpol przekaźniki
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pisanie programów i używanie bibliotek w C i Asemblerze

kamyczek 09 Wrz 2016 23:35 8637 260
  • #181
    grko
    Poziom 33  
    @jesion40
    Cytat:

    Chcę korzystać z edytora WUSIWUG (to nie nazwa własna - rozumiem, że nie muszę rozwijać skrótu?)


    Rozwiń proszę ten skrót. Może się okazać, że również nie jesteś nieomylny;)

    @Freddie Chopin
    No właśnie też rozkminiam ten skrót :D
  • Relpol przekaźniki
  • #182
    kamyczek
    Poziom 34  
    Dobra kończymy te docinki i piszemy czajnik
    grko napisał:
    * ile funkcjonalności pokryto z założeń
    * ile czasu zajęła implementacja
    * jaka jest zajętość flash oraz ram wersji w asm oraz w C
    * ile błędów będą w stanie inni wyszukać w programów
    * ile czasu zajmie innemu użytkownikowi modyfikacja programu


    0 Mam napisać co czajnik potrafi :)
    1 Mam włączać stoper jak piszę ?
    2 Wersja jest tylko 1 piszę w ASM
    3 Chodzi o błędy w pisowni czego?
    4 Program ma być zrozumiały dla mnie nie dla innych
  • #183
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #184
    jesion40
    Poziom 27  
    Freddie Chopin napisał:
    Często układy są znacząco "przewymiarowane", bo projekty ewoluują potem przez lata i/lub urządzenie wymaga tylu pinów, że potrzebny jest układ w 144-pinowej obudowie (te zwykle mają też najwięcej pamięci).
    Wątpię czy większość projektów tworzonych współcześnie na uC to projekty klasy RTOS a nawet czy większość programistów piszących na uC zajmuje się takimi projektami.
    Freddie Chopin napisał:
    Jeśli ktoś uważa, że dziarganiem w assemblerze i używaniem jakichś mikromikromikrokontrolerów jest w stanie wyprodukować coś masowego co będzie tańsze niż chiński odpowiednik to "have fun & good luck".
    I znów skąd przekonanie, że chodzi o takie założenia?
    Freddie Chopin napisał:
    Może więc problemem jest to, że niektórzy w tej dyskusji piszą z perspektywy "zawodowej", a inni z "hobbystycznej" - wtedy z pewnością się nie dogadamy
    Skąd to lekceważenie dla hobbystów? Ale już przynajmniej wiemy, że się nie dogadamy. I dlaczego.
    Freddie Chopin napisał:
    Musisz wybaczyć złośliwość, ale raczej chodziło Ci o "programik".
    Złośliwość zupełnie niepotrzebna, wszak od początku pisałem, że chodzi mi o proste gadżety. W poważnych projektach nie da się ani nie ma powodu by ograniczać się do asm. Czy z tego wynika, że proste projekty nie mają racji bytu? Potrzebuję prosty sterownik do bramy - parę czujników, sterowanie falownikiem, sygnalizacja stanu. Drugi przykład: potrzebuję prosty sterownik regulujący wydajność wentylatorów w zależności od temperatur. I co, mam się wstydzić, że to takie małe, proste? Sztucznie komplikować? Jestem w stanie to napisać i w asm i w C (choć w tym ostatnim przypadku zapewne z wstawkami w asm). Na razie skłaniam się do asm, choć jeszcze nie podjąłem decyzji. W każdym razie wasze argumenty do mnie nie trafiają.

    Dodano po 10 [minuty]:

    Piotrus_999 napisał:
    Slangowa wersja - używana głównie przez potomków mieszkańców afryki. ale sądzę że w Polsce mało używana.
    Fakt, przepraszam, powinienem był użyć poprawnej wersji, choć gdy byłem w Stanach spotykałem się częściej z tą "slangową" i to niekoniecznie wśród "potomków mieszkańców afryki" (pewne Afryki, skoro dbamy o szczegóły?). Wujek google nie ma jednak problemów z rozwinięciem nawet tej slangowej wersji skrótu.
  • Relpol przekaźniki
  • #185
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #186
    Freddie Chopin
    Specjalista - Mikrokontrolery
    jesion40 napisał:
    I znów skąd przekonanie, że chodzi o takie założenia?

    Skoro padają argumenty że mniejszy mikrokontroler jest tańszy, to niby po co ma być tańszy jak nie w celu milionowych oszczędności?

    jesion40 napisał:
    Skąd to lekceważenie dla hobbystów? Ale już przynajmniej wiemy, że się nie dogadamy. I dlaczego.

    Nie ma lekceważenia - po prostu to dwie inne perspektywy pomiędzy którymi porozumienie w tej akurat sprawie jest fizycznie niemożliwe.

    jesion40 napisał:
    Złośliwość zupełnie niepotrzebna, wszak od początku pisałem, że chodzi mi o proste gadżety. W poważnych projektach nie da się ani nie ma powodu by ograniczać się do asm. Czy z tego wynika, że proste projekty nie mają racji bytu? Potrzebuję prosty sterownik do bramy - parę czujników, sterowanie falownikiem, sygnalizacja stanu. Drugi przykład: potrzebuję prosty sterownik regulujący wydajność wentylatorów w zależności od temperatur. I co, mam się wstydzić, że to takie małe, proste? Sztucznie komplikować? Jestem w stanie to napisać i w asm i w C (choć w tym ostatnim przypadku zapewne z wstawkami w asm). Na razie skłaniam się do asm, choć jeszcze nie podjąłem decyzji. W każdym razie wasze argumenty do mnie nie trafiają.

    Skoro w poważnych projektach nie trzeba się ograniczać do assemblera, to czemu w "niepoważnych" trzeba, należy lub warto? Co Ci da napisanie takich rzeczy o których piszesz w assemblerze? Ani to nie musi być super szybkie ani nie musi być super małe, więc czemu napisanie tego w C nazywasz komplikacją? Jak dla mnie (i chyba większości uczestników tego wątku) byłoby dokładnie odwrotnie - będzie krótszy, łatwiejszy do późniejszych modyfikacji i napiszesz go szybciej (jeśli faktycznie znasz jeden i drugi język). Jeśli chcesz to zrobić w assemblerze dla własnej satysfakcji to oczywiście proszę bardzo, tylko nie dorabiaj do tego ideologii, że to "lepszy wybór". No i po co Ci w tych projektach jakiekolwiek wstawki assemblera?
  • #187
    kamyczek
    Poziom 34  
    Panowie chyba się lekko zagalopowaliśmy wszyscy bez wyjątku . Powinniśmy wrócić do czajnika . Każdy projekt dziś w starciu z chińską machiną klonującą jest skazany na niepowodzenie Gotowy czajnik w hurcie kosztuje 5 pln ktoś podniesie temat i zrobi taniej ? . To samo jest z waszymi projektami na armach klonuje się wszystko od aut po telefony komórkowe odbezpiecza się wasze army , motorole , atmela pica i co się chce.
  • #188
    jesion40
    Poziom 27  
    Na razie chętnie zobaczę wynik challenge'u. Mam wrażenie, że w prostych projektach pisanych w C większość programu sprowadzi się do operacji, które mogą równie dobrze być zapisane w asm - testowanie linii wejściowych, ustawianie i zerowanie linii wyjściowych. Proste obliczenia. Może zresztą napiszę dwie wersje, żeby je porównać. Ostatecznie jestem hobbystą, a moim głównym celem jest odświeżenie i zaktualizowanie wiedzy z tego zakresu.

    W każdym razie kończę udział w tej dyskusji, bo swoje stanowisko już przedstawiłem a wątek zajmuje zbyt wiele czasu, który można lepiej wykorzystać.
  • #189
    kamyczek
    Poziom 34  
    Napisz kolego czajnik choć nas dwóch napisze dla porównania to samo w asemblerze .Ciekawy jestem czy ktoś jeszcze napisze program do czajnika . Może to niezbyt wymagające zadanie ale na 100k kodu można dojść do tych samych wniosków co na 2k Dokończmy tą zabawę w tym samym gronie w którym ją zaczęliśmy 189 postów w kilka dni to całkiem niezły wynik
  • #190
    Freddie Chopin
    Specjalista - Mikrokontrolery
    kamyczek napisał:
    Może to niezbyt wymagające zadanie ale na 100k kodu można dojść do tych samych wniosków co na 2k

    No właśnie niezbyt, przy 100k można dojść do zasadniczo innych wniosków (;
  • #191
    tronics
    Poziom 37  
    Cytat:
    Może to niezbyt wymagające zadanie ale na 100k kodu można dojść do tych samych wniosków co na 2k

    Taa... czyli po przebiegnięciu 10km ma się ogólne pojęcie na temat ultramaratonu ;)
    O ile konfiguracja peryferiów AVR to nic trudnego i w ASM można to spokojnie zrobić, tak jak obsługę hd44780, sensorów 1 wire itp. o tyle chciałbym widzieć jak wyglądać będą bloki regulatora PID zapisane w ASM vs C, albo wyliczenia ustawienia obiektu na podstawie danych z akcelerometru. Czy to będzie w ASM czytelne, proste w modyfikacji jeśli wymiary obiektu się zmienią? Mnie nawet nie chodzi o to, że nie trzeba ASM znać, w sumie nie trzeba żeby cokolwiek napisać, aczkolwiek jest to przydatne jeśli chcemy coś zoptymalizować ręcznie. Zatem nie jest tak, że wszyscy tutaj olewają ASM. Kwestia jest taka, że warto używać najlepiej dopasowanego do zadania narzędzia. Ja bym dał "czelendź" taki - kol. kamyczek proszę napisać obsługę lsm303 (proc. obsługi i2c, proc. odczytu rejestrów lsm, wyliczenia ułożenia obiektu) w asm avr, a następnie zrobić to samo w asm arm, a później w asm PIC. A my napiszemy w C. Może być?
  • #192
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #193
    tmf
    Moderator Mikrokontrolery Projektowanie
    Piotrus_999 napisał:

    Inny przykład - można z uporem maniaka stosować np drogą Xmegę lub w tej samej cenie pewnie ze 4 razy szybszy, mający o wiele więcej zaawansowanych peryferiów i układów (np FPU) ARM. Dyskusja wtedy o stosowaniu lub nie np. floatów przestaje mieć większy sens.


    Proponuję do tego wątku o wszystkim i o niczym nie mieszać kolejnego tematu. Pisanie, że za te same pieniądze ma się wypaśny procek z niewiadomojakimi peryferiami jest mitem. Tanie ARMy są jak tanie AVRy, wykastrowane do granic. Poza tym floaty zazwyczaj nie powinno się stosować nie z powodu szybkości obliczeń... lecz z powodu niedokładnej reprezentacji. Obecność FPU w magiczny sposób nie spowoduje, że stosowanie floatów jest uzasadnione. Poza tym ARM z FPU to już nie jest tani, ani prosty ARM będący zamiennikiem AVRów.

    Dodano po 34 [minuty]:

    jesion40 napisał:

    A przy okazji jakoś nikt się odniósł do mojego pytania jak to jest, że kompilatory są genialne, kod optymalny a żeby zainstalować byle edytor muszę mieć wolne GB na dysku? Procesory coraz szybsze, pamięć co najmniej kilka GB a co najmniej połowa użytkowników narzeka, że komputery się "mula"?


    Hmm, ja jakoś nie narzekam, że mi coś zamula. No ale do nowoczesnego IDE nie używam komputera sprzed 20 lat. Reszta tego co piszesz to też mity. Owe zajęte GB - owszem. Weźmy takie Atmel Studio - zajmuje 3,1 GB, tylko, że w tym 623 MB zajmuje toolchain - wersja dla AVR8, ARM i AVR32, a w toolchainie komplet plików opisu MCU, nagłówków, helpów itd. Kolejne 1,2 GB u mnie zajmują dodatki i rozszerzenia, które sam sobie poinstalowałem. Kolejne 1,3 GB to kody źródłowe do bibliotek dla wszystkich procków Atmela + helpy do nich. A więc z 3,1 GB właściwy kod IDE to około 100-200 MB. I gdyby mi na tym z jakiegoś powodu zależało, to całość bym do tych 200 MB odchudził, tylko po co, skoro mam na dysku wolne kilka TB! Czy jak będę mał wolne dodatkowe kilkaset MB więcej to będzie w jakimś stopniu lepiej? Raczej nie.
    Jak pisałem, co prawda nie odczuwam żadnego zamulania (pomimo, że komp mam sprzed 3-4 lat), to weź pod uwagę jakie funkcje obecnie oferuje IDE i skąd się bierze obciążenie. Przede wszystkim to podpowiedź składni i wyświetlanie pomocy kontekstowej. A to wymaga stałego parsowania tysięcy plików, żeby z nich wyciągnąć informacje o składni i stworzyć podpowiedzi. Np. piszę zmienna->, a IDE sprawdza jej typ, odnajduje deklarację, parsuje pola i wyświetla mi propozycje, jednocześnie parsując komentarze i info dla Doxygena, żeby wyświetlić kontekstowo opis. Druga sprawa - to integracja z serwisami umożliwiająca np. pisanie kodu zespołowo, w chmurze itd. Czyli cały edytor ma skomplikowaną funkcjonalność przeglądarki internetowej. I wiele innych rzeczy. Prawdę mówiąc to jest to wręcz zaskakujące, że wszystko tak płynnie działa. Sam pisałeś, że programowaniem od lat się nie zajmujesz - po prostu zatrzymałeś się na funkcjonalnościach dostępnych lata temu, które były proste z natury i nie wymagały większych zasobów. Nikt nie zabrania ci wyłączyć tych zaawansowanych funkcji i cieszyć się płynnym działaniem na maszynie sprzed 20 lat. Tylko po co? Ciągle np. dla AVR jest coś takiego jak programmers notepad - nikt tego już nie rozwija, bo nikt z tego nie korzysta. Jakoś wszyscy wolą zaawansowane IDE...
  • #194
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #195
    grko
    Poziom 33  
    Cytat:
    Tylko po co? Ciągle np. dla AVR jest coś takiego jak programmers notepad - nikt tego już nie rozwija, bo nikt z tego nie korzysta. Jakoś wszyscy wolą zaawansowane IDE...


    Chciałbym zaznaczyć, że nie wszyscy wolą zaawansowane IDE. Atmel studio to nie jest jedyny słuszny wybór dla AVR/ARM.
  • #197
    tronics
    Poziom 37  
    @michalko12 - ta xmega kosztowała poniżej 9zł w detalu ;) Wiem bo mam ich kilka szt. świetne układy do kontrolerów mocy/sterowników silników. Swoją drogą... kurka wodna, F4 poniżej dychy? :)
  • #198
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #199
    jnk0le
    Poziom 18  
    Poza skalą produkcji, należy dołożyć przejęcie Atmela przez monopoliste któremu nie bardzo zależy na tym aby mieć konkurencję na polu 8-bitówców.
    (po tygodniu dosłownie podwoili ceny oficjalnego debuggera/programatora oraz kilku zestawów ewaluacyjnych)
  • #200
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #201
    tronics
    Poziom 37  
    Cytat:
    To że czasami w detalu trafają się okazji o niczym nie śwadczy

    Nie drogi kolego, to była normalna cena tego procesora, tak jak tiny88 za <3zł w przeliczeniu... jeszcze kilka miesięcy temu, a atmel-ice pcba za ~120zł. To, że ceny się zmieniły nie znaczy, że nagle te zakupy które wcześniej robiłem pochodziły z szarej strefy. Aktualnie działania Atmel skutkują tym, że wykorzystuję do zabawy to co mam, a z całym "majdanem" przenoszę się do STM.
  • #202
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #203
    michalko12
    Specjalista - Mikrokontrolery
    Piotrus_999 napisał:
    Porównaj sobie skalę produkcji to pojmiesz :). I do tego nie musisz jako producent sam go opracowywać

    Sorry, ale AVR to konstrukcja 20 letnia więc o opracowywaniu czegoś nowego nie ma mowy. Jedyne co to mogą pracować nad peryferiami, ale nad nimi wszyscy producenci pracują.
    Wyciągają od fanów AVR ile się da i tyle.
  • #204
    tmf
    Moderator Mikrokontrolery Projektowanie
    michalko12 napisał:
    tmf napisał:
    Poza tym ARM z FPU to już nie jest tani, ani prosty ARM będący zamiennikiem AVRów.

    Takich kwiatków to już w ogóle nie pojmuję!

    http://pl.farnell.com/atmel/atxmega32e5-au/mc...hLookAhead&searchView=table&iscrfnonsku=false

    http://pl.farnell.com/stmicroelectronics/stm3...hLookAhead&searchView=table&iscrfnonsku=false


    To prawda, coś im ostatnio odbiło. Przewnie przez przejęcie przez Microchipa. Jak tak dalej pójdzie to istotnie warto będzie rozważać inne MCU, ciekawe czy ta patologia też dotknie ARMów od Atmela. Jeszcze do niedawna relacje cenowe były inne, a chipy można było kupić za połowę obecnej ceny.
    Ale, żeby się przyczepić - czy przed chwilą na uwagi kol. Kameczek dotyczące możliwości upakowania kodu w mniejszy i tańszy MCU, nie odpowiadaliście, że cena MCU w waszych projektach jest bez znaczenia? Bo stanowi ułamek ceny końcowej urządzenia i nie robicie milionowych serii? Czyżby jakaś niekonsekwencja?

    Dodano po 5 [minuty]:

    michalko12 napisał:
    Piotrus_999 napisał:
    Porównaj sobie skalę produkcji to pojmiesz :). I do tego nie musisz jako producent sam go opracowywać

    Sorry, ale AVR to konstrukcja 20 letnia więc o opracowywaniu czegoś nowego nie ma mowy. Jedyne co to mogą pracować nad peryferiami, ale nad nimi wszyscy producenci pracują.
    Wyciągają od fanów AVR ile się da i tyle.


    ARM to też odgrzewany kotlet. Największa siła MCU to właśnie peryferia. To one decydują o wszystkim. Jeśli wytniesz peryferia, to nie zostaje nic - do obliczeń są lepsze i szybsze procesory niż ARMy.
    Atmel ma jeszcze jedną zaletę - darmowe Atmel Studio. Żaden producent procków nie daje darmowego środowiska działającego prosto z pudełka bez żadnych ograniczeń. Chętnie poznałym jakieś jeśli się mylę. Niestety środowiska konkurencji mają ceny poza zasięgiem amatora.
  • #205
    michalko12
    Specjalista - Mikrokontrolery
    tmf napisał:
    Ale, żeby się przyczepić - czy przed chwilą na uwagi kol. Kameczek dotyczące możliwości upakowania kodu w mniejszy i tańszy MCU, nie odpowiadaliście, że cena MCU w waszych projektach jest bez znaczenia? Bo stanowi ułamek ceny końcowej urządzenia i nie robicie milionowych serii? Czyżby jakaś niekonsekwencja?

    Ale to była tylko i wyłącznie odpowiedź na Twoje wątpliwości. Ja na cenę procesora zwracam uwagę, ale nie ma znaczenia czy będzie on kosztował 5$ czy 15$. Ważne są możliwości i widząc takie dwa przypadki nigdy nie zdecydowałbym się na tego Xmega mimo, że całkowicie by mi wystarczył. Po drugie to Atmel, nie raz już pokazali gdzie mają klientów, a historia jak widać powtarza się.
  • #206
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #207
    michalko12
    Specjalista - Mikrokontrolery
    tmf napisał:
    Atmel ma jeszcze jedną zaletę - darmowe Atmel Studio. Żaden producent procków nie daje darmowego środowiska działającego prosto z pudełka bez żadnych ograniczeń. Chętnie poznałym jakieś jeśli się mylę. Niestety środowiska konkurencji mają ceny poza zasięgiem amatora.


    LPCXpresso - do 256kB full wersja za darmo. Dla amatora całkiem wystarczająca, a za 495$ dla nie amatora to żaden wydatek, 1/x miesięcznej pensji developera. Środowisko do Kinetisów niei widziałem żadnych ograniczeń, ale tu nie jestem pewien.
  • #208
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #209
    michalko12
    Specjalista - Mikrokontrolery
    Piotrus_999 napisał:
    W przeciwnym razie to przejęcie nie miałoby sensu

    Mogło chodzić też o patenty i inne IP.
  • #210
    Użytkownik usunął konto
    Użytkownik usunął konto