-
Data: 2011-01-31 20:04:26
Temat: Re: książka o programowniu AVR w C
Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 2011-01-31 20:39, Marcin Wasilewski wrote:
> Takie, że jak się pisze w C na scalaki typu Tiny13, które mają "aż" 64
> bajty RAMu to się można zdziwić, jaką sieczkę odwala (a raczej odkłada
> na stos) kompilator C wchodząc w przerwanie.
To bug w kompilatorze jeśli wrzuca za dużo. Nikt nie twierdzi ze avr-gcc
jest doskonały bo sam wiem że *za* dużo rejestrów używa w przerwaniach.
> a nie wszystko co się da
> na zapas jak robi to kompilator C.
Kompilator C tak nie robi. Tak robi tylko *zły* kompilator C.
> Tak, szczególnie jak masz np. 1K Flash-a i 64B ramu :)
> Ale wtedy co robi programista w C? Zamiast ATtiny13, ładuje się
> ATtiny2313 i problem rozwiązany.
I ma wiele racji. Dla $0.50 oszczędności per sztuka może sie okazać że
nie ma co robić rekodzieła w kodzie asm przez 4 miesiące aż się
*zmieścisz* co do bajta tylko od razu wziąść na zapas i program napisać
w dwa wieczory.
> Po pierwsze zajmuje 2 takty samo mnożenie
Jesli kompilator nie potrafi zamienić a *= 2; na operacje shift bitów to
jest marnym kompilatorem.
>> I wiele, wiele innych rzeczy o których programista C _nie musi_ pamiętać.
> Do momentu jak mu się program "zesra", bo stos wlezie na zmienne.
Zapewne asm jest tak magiczny że to się nie ma prawa popsuć w ten
sposób, nie?
> Podsumowując - pisanie w C wymaga sporo mniej czasu, jednak pewne rzeczy
> dostępne w asm od ręki C ma wyjątkowo upierdliwie rozwiązane (np. dostęp
> do zmiennych w pamięci FLASH).
To raczej brak supportu ze strony kompilatora. C nie ma nic do tego że
są jakieś rózne pamięci, choć było by miło gdyby miał.
> Poza tym, jak ktoś zna assembler, to
> sobie ze wstawkami w newralgicznych miejscach poradzi.
Rzecz w tym że:
a) niektórzy programisci starej daty w C piszą dokładnie tak samo jak w
asm (wlacznie z uzywaniem goto). Dla nich nie ma różnicy bo i tak nie
potrafia w gruncie rzeczy wykorzystać C.
b) niektórzy uważają że wstawką może być cały program.
Wiec jest kwestią zdrowego rozsądku sensownie to podzielić. Osobiście
jestem zdania że najlepszy jest podział 100% C++ i 0% asm.
Następne wpisy z tego wątku
- 31.01.11 20:13 kk
- 31.01.11 20:54 Sebastian Biały
- 31.01.11 21:20 kk
- 31.01.11 21:27 JDX
- 31.01.11 21:34 Marcin Wasilewski
- 31.01.11 21:40 JDX
- 31.01.11 23:17 RoMan Mandziejewicz
- 01.02.11 07:21 ohouapss
- 01.02.11 07:35 4CX250
- 01.02.11 08:42 J.F.
- 01.02.11 08:45 J.F.
- 01.02.11 08:51 J.F.
- 01.02.11 08:53 Piotr Gałka
- 01.02.11 08:53 ohouapss
- 01.02.11 09:01 J.F.
Najnowsze wątki z tej grupy
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
Najnowsze wątki
- 2025-06-01 nie ustąpiła moturowi?
- 2025-05-31 Skoro jest tak dobrze i TANIO to dlaczego jeszcze nie jeździmy na takich akumulatorach?
- 2025-05-31 Warszawa => IT Data Analyst (obszar Power BI) <=
- 2025-05-31 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-05-31 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-05-31 Gdańsk => PHP Developer <=
- 2025-05-31 Lublin => Delphi Programmer <=
- 2025-05-31 co to za obcęgi? [OT]
- 2025-05-30 Rondo :)
- 2025-05-30 Warszawa => Senior Account Manager <=
- 2025-05-30 Warszawa => Senior C++ Developer (analiza numeryczna i modelowanie) <=
- 2025-05-30 Gdańsk => Team Lead Data Engineer (Snowflake) <=
- 2025-05-30 Warszawa => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-05-30 Gdańsk => Programista Delphi <=
- 2025-05-30 Warszawa => Software Engineer .Net <=