-
Data: 2011-01-31 14:30:22
Temat: Re: książka o programowniu AVR w C
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 31.01.2011 15:11, Marcin Wasilewski pisze:
> Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości
> news:ii6612$1o6$1@news.onet.pl...
>> W dniu 31.01.2011 11:05, Marcin Wasilewski pisze:
>>> Ale zgodze się, że
>>> pierwszy projekt dobrze jest napisać w assemblerze, bo wtedy ma się
>>> pojęcie o rzeczach, o których dłubacz kodu w C, nigdy nie będzie miał
>>> pojęcia.
>> Jak na przykład?
>
> Np. tak:
>
> a) co jest zrzucane na stos i dlaczego w takiej kolejności,
Jakie to ma znaczenie w kodzie C?
> b) że są rejestry w obszarze I/O i w ext. I/O, a w związku z tym sporo
> inaczej je się obsługuje, w szczególności jeśli chodzi o operacje bitowe.
Jakie to ma znaczenie w kodzie C, poza informacją, że porty mają
możliwość ustawiania/gaszenia atomowo jednego bitu? (Co jest w
dokumentacji.)
> c) że czasami po zapisie do rejestru warto wstawić nop, zanim zaczniemy
> go czytać.
O co powinien zadbać kompilator. Tak samo jak o uporządkowany zapis do
rejestrów 16b.
> d) że pewne instrukcje działają wyłącznie na dedykowanych rejestrach,
Jakie to ma znaczenie w kodzie C?
> e) że wartość z rejestru PC to tak naprawdę liczba słów i trzeba ją
> pomnożyć x2, jeśli chcemy tej wartości użyć poprzez lpm,
Jakie to ma znaczenie w kodzie C? Poza tym to jest w dokumentacji.
> f) że używając w C zmiennej typu char do wymiany danych z proc. obsługi
> przerwań, nie trzeba się tym przejmować, w odróżnieniu od int-ów i
> jeszcze dłuższych zmiennych,
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.)
> 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.
>
> 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ć.
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 31.01.11 15:38 J.F.
- 31.01.11 16:22 identifikator: 20040501
- 31.01.11 17:00 Michoo
- 31.01.11 17:27 J.F.
- 31.01.11 19:39 Marcin Wasilewski
- 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
Najnowsze wątki z tej grupy
- 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
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=