-
Data: 2011-01-31 19:39:04
Temat: Re: książka o programowniu AVR w C
Od: "Marcin Wasilewski" <j...@a...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości
news:ii6h1t$djb$1@news.onet.pl...
>> a) co jest zrzucane na stos i dlaczego w takiej kolejności,
> Jakie to ma znaczenie w kodzie C?
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. A zasada jest prosta zrzuca się na
stos SR i używane w przerwaniu rejestry, a nie wszystko co się da na zapas
jak robi to kompilator C.
> Chyba, że się operuje na bitach... Poza tym jest to okropny styl pisania -
> komunikację z przerwaniami zawsze lepiej objąć w ATOMIC, bo inaczej łatwo
> o prosty błąd przy późniejszych przeróbkach kodu. (A koszt zazwyczaj
> pomijalny - 2 cykle +1 cykl opóźnienia.)
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.
>> g) że znacznie lepiej mnożyć/dzielić przez 2, 4, 8 itd., niż przez 10.
> Dlaczego? Jeżeli procesor ma układ sprzętowego mnożenia to jest to jeden
> cykl różnicy. Dzielenie przez stałą sensowny kompilator zamienia na
> mnożenie.
Po pierwsze zajmuje 2 takty samo mnożenie, ale jego wynik ląduje w
rejestrach R0/R1, co powoduje, że tracimy nast. kilka taktów aby je stamtąd
wydobyć. A przypominam, że R0-R15 są rejestrami w pewnym stopniu
upośledzonymi i nie wszystkie instrukcje dostępu do nich działają (np. ldi).
Rolowanie zajmuje jednak mniej.
>> I wiele, wiele innych rzeczy o których w tej chwili nie pamiętam.
> 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.
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). Poza tym, jak ktoś zna assembler, to sobie ze
wstawkami w newralgicznych miejscach poradzi.
Następne wpisy z tego wątku
- 31.01.11 20:04 Sebastian Biały
- 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
Najnowsze wątki z tej grupy
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
Najnowsze wątki
- 2025-01-08 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-08 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-07 Aero2
- 2025-01-06 odbiornik GPS z kablem USB
- 2025-01-07 Oszczędzanie nie jest łatwe
- 2025-01-07 Warszawa => Java Developer <=
- 2025-01-07 Warszawa => IT Recruiter <=
- 2025-01-07 Katowice => Administrator IT - Wirtualizacja i Konteneryzacja <=
- 2025-01-07 Żerniki => Specjalista ds. Employer Brandingu <=
- 2025-01-06 Jeździ, skręca, hamuje
- 2025-01-06 Białystok => System Architect (Java background) <=
- 2025-01-06 Gliwice => Specjalista ds. public relations <=
- 2025-01-06 Białystok => Solution Architect (Java background) <=
- 2025-01-06 Zielona GĂłra => Konsultant WdroĹźeniowy Comarch XL/Optima (KsiÄgowoĹ
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)