-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.task.gda.pl
!not-for-mail
From: "Marcin Wasilewski" <j...@a...pl>
Newsgroups: pl.misc.elektronika
Subject: Re: książka o programowniu AVR w C
Date: Mon, 31 Jan 2011 20:39:04 +0100
Organization: CI TASK http://www.task.gda.pl/
Lines: 42
Message-ID: <ii734d$kr$1@news.task.gda.pl>
References: <ihpvpu$mvg$1@mx1.internetia.pl> <4...@i...pl>
<4d467cd6$1@news.home.net.pl> <ii61g5$af2$1@news.task.gda.pl>
<ii6612$1o6$1@news.onet.pl> <ii6fuk$3re$1@news.task.gda.pl>
<ii6h1t$djb$1@news.onet.pl>
NNTP-Posting-Host: host-81-190-189-35.kwidzyn.mm.pl
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response
Content-Transfer-Encoding: 8bit
X-Trace: news.task.gda.pl 1296502733 667 81.190.189.35 (31 Jan 2011 19:38:53 GMT)
X-Complaints-To: a...@n...task.gda.pl
NNTP-Posting-Date: Mon, 31 Jan 2011 19:38:53 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5994
Xref: news-archive.icm.edu.pl pl.misc.elektronika:603908
[ ukryj 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
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
- No proszę, a śmialiście się z hindusów.
- Zewnętrzne napięcie referencyjne LM385 1,2V -> 100mV dla ICL7106, Metex M-3800
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
Najnowsze wątki
- 2024-12-01 Rambo 2024. Co z radio-stopem
- 2024-12-01 Pijani kierowcy
- 2024-12-01 "Chciałem zamówić kurs tym"
- 2024-11-30 Windykatorzy ścigają spadkobierców z mandat nieboszczyka za przekroczenie prędkości???
- 2024-11-30 Łódź => Technical Artist <=
- 2024-11-30 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-30 Warszawa => Microsoft Dynamics 365 Business Central Developer <=
- 2024-11-30 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-30 Zielona Góra => Senior PHP Symfony Developer <=
- 2024-11-30 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-30 Lublin => Spedytor międzynarodowy <=
- 2024-11-30 Warszawa => Mid IT Recruiter <=
- 2024-11-30 Warszawa => Fullstack Developer <=
- 2024-11-30 Żerniki => Dyspozytor Międzynarodowy <=
- 2024-11-30 Warszawa => System Architect (background deweloperski w Java) <=