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

Bascom i profesjonalne zastosowania

krzysztof1 31 Mar 2003 07:48 5677 38
  • #31
    Tdv
    Poziom 33  
    To po kolei: Pisząc o LINUXsie chodziło mi o to, że w C napisano bardzo wydajny program, a nie że takowe na uC tworzę.
    Jak ktos tu już napisał używanie C nie zwalnia z myślenia, więc jeżeli ktoś wie co robi to kontrola nad uC jest pełna, tak samo jak w asm ;-) i zgodzę się z argumentem, że długość kodu >= asm, a nie zdecydowanie >. Co zaś się tyczy asm i długości kodu to chyba wszyscy zakładają, że są geniuszami i w asm tworzą kod optymalny...
    Poza tym chciałbym zwrócić uwagę szanownych dyskutantów np. na konstrukcję rodziny AVR. Ilość rejestrów (i możliwość ich wykorzystania) predysponuje ewidentnie ten układ do aplikacji w językach wysokiego poziomu.
    A tak poza dyskusją to pisał już ktoś program w kodzie maszynowym? Bo mnie się już zdażyło... Upirdliwe to było jak diabli.
    painkiller: o co Ci z tymi diodami się rozchodzi?
  • #32
    krzysztof1
    Poziom 12  
    A co sšdzicie o pomyœle, że najbardziej optymalny program to taki, w który łšczy ASM i c? ASM do procedur operujšcych bezpoœrednio na sprzęcie a c do fragmentów niezależnych bezpoœrednio od sprzętu? Mam tu na myœli np. obsługę jakiegoœ menu, obliczenia matematyczne itp.
    Program wtedy pisze się stosunkowo łatwo a i mamy kontrolę nad wielkoœciš kodu i szybkoœciš.
  • #33
    Tdv
    Poziom 33  
    Ja uważam, że nie ma najbardziej optymalnych programów (no chyba, że mają dwie instrukcje). W każdym zaawansowanym programie znajdzie się coś, co dałoby się zoptymalizować. I to wynika też poniekąd z textów adwersarzy, bo jak pisali, "zmniejszali" swoje programy w asm, żeby się dało upakować w jakiś czip... A jak się dało zmniejszyć o 14 bajtów, to gdyby inaczej napisać program to może dało by się o kolejne 20?
    Prawda jest taka, że najlepszy jest zawsze ten program, który dobrze (nie koniecznie najlepiej, bo tego nigdy nie wiemy) spełnia zadania przed nim postawione. A tak przy okazji to sytuacje, w których liczy się każdy bajt, owszem zdażają się ale raczej nie na porządku dziennym.
    Wniosek jest jeden: zawsze trzeba myśleć co się robi...
  • #34
    elektryk
    Poziom 42  
    Pierwsza zasada optymalizacji - nigdy tego nie rób
    Druga zasada optymalizacji (dla bardzie zaawansowanych) - nawet nie próbuj tego robić.
    Czy sądzicie że w tym jest troche prawdy. Czasem optymalizowany kod działa zgodnie z założeniami ale czas włożony w jego optymalizacje też sporo kosztuje. Tak naprawde to czy w C czy w ASM trzeba od razu przy pisaniu zastanawiać się jak można to zoptymalizować. Komputer nie potrafi myśleć. A myślicie że kto zaprojektował maske do produkcji krzemu w waszych procesorach, nadal robią to ludzi i osiągają znacznie lepsze wyniki w tej dziedzinie niż komputery.
  • #35
    jasiekz
    Poziom 14  
    TDV akurat właśnie mam program który ma 16kilo i musze go w nim upchać bo dla kilku bajtów niewarto inwestować w następny procek. Przy produkcji trzeba właśnie na to uważać bo żeby być konkurencyjnym to trzeba zejść z ceną a nie ją podnosić.
    Elektryk a co zrobić jeżeli już zoptymalizowałeś przy pisaniu program a klient zmieni zdanie i coś chciałby zmienić. Jest takie powiedzonko : Klient nasz pan to przecież ona nam płaci.
  • #36
    Tdv
    Poziom 33  
    jasiekz: i co za każdym razem tak masz program na styk do procesora? Wiem, że to się zdaża, chodziło o to, że to tylko co n-ty przypadek, gdzie n jst dosyć duże. A tak BTW to w czym ten program napisany?
  • #37
    jasiekz
    Poziom 14  
    Większość to jedna wielka wstawka ASM + kilka procedur gotowych z bascoma AVR. Co się da mam napisane w asm. wykorzystuje wszystkie zegary, dwa comy (komunikacja z komputerem(modbus rtu) i z sterownikiem IDEC), i2c pzetwornik i pamięć, wyświetlanie stanów na lcd, ,rejestry wewnętrzne,klawiatura....

    Ale w kolejnych wersjach już będę musiał przejść i tak na większy procesor bo implementacja pełnego protokołu modbus jak i idec zajmie mi kolejne 10kB programu a i zmiennych i stosu też by się więcej przydało.
  • #38
    Tdv
    Poziom 33  
    Proponuję napisać swoje procedury (te które są z BASCOMa) i przekompilować w jakimś asemblerze, albo w C i na konkretnym przypadku będziemi mieli różnicę...
    A tak w ogóle to 16kB kodu w asm to tego musi być coś pod 100 stron źródłówki...
    Jaki czip?
  • #39
    jasiekz
    Poziom 14  
    dużo stron jest ale nie jest to takie straszne. Mam dwie wersje programu jedna tylko w bascomie a druga wyjściowa asm+bascom. Sam bascom ma ponad 2000 lini(w wordzie 10 bez marginesów to 25 stron). A asma nawet nie chcę sprawdzać (8O) . A procesor M161 atmela

    PS.
    Akurat skończyłem upychanie i działa nawet dobrze.