książka o programowniu AVR w C

Jan 26, 2011 88 Replies

Użytkownik "identifikator: 20040501" snipped-for-privacy@go2.pl napisał w wiadomości news:iic9qp$i5o$ snipped-for-privacy@mx1.internetia.pl...

A co chcesz wiedzieć? Książka wczoraj do mnie dotarła, wg mnie całkiem fajna pozycja. Poza tym przecież masz w tamtej aukcji pdf z dostępnym rozdziałem i spisem treści, wg mnie na podstawie tego całkiem sporo można powiedzieć na temat tej książki. W odróżnieniu od "Mikrokontrolery AVR programowanie w języku C" A.Witkowskiego nie stanowi ona suchego opisu opcji kompilatora, rodzaju zmiennych, ale pokazuje jak rozwiązywać praktyczne problemy.

Czy będziesz zadowolony? No cóż zależy jaki jest twój stopień zaawansowania. Jeśli na AVR w C napisałeś już z 10 projektów, to obejdziesz sę bez tej książki. Jeśli dotąd korzystałeś z gotowych bibliotek i nie zhańbiłeś się bezpośrednią obsługą pryferii też chyba będziesz zadowolony.

On 2011-02-02 12:43, Michoo wrote: [.....]

Także początek i koniec stosu dynamicznie tworzonych wątków/zadań? :-)

o to mi chodziło, dzięki.

Use RTOS Luke. We Freertosie definiujesz wielkość stosu dla każdego taska.

On 2011-02-03 13:37, Mario wrote: [.....]

No popatrz, to podobnie jak pod Linuksem. Lub pod Windows. Lub pod NutOS. Lub pod "moim własnym" OS-em. :-) Pytanie jest tylko skąd kompilator C ma wiedzieć jaką wielkość stosu dla jakiegoś wątku wymyślił sobie użytkownik i pod jakim adresem postanowił umieścić jego dno. :-)

W dniu 2011-02-03 14:05 JDX napisał(a):

Jeżeli używasz nieco większych procków niż AVR (powiedzmy chociażby ARM7TDMI) to kompilatorowi gcc możesz powierzyć sprawdzanie przekroczenia stosu na początku każdej funkcji. Oczywiście jest to sprawdzane podczas wykonywania kodu i nieco go zwalnia a nie podczas kompilacji. Jeden rejestr procesora wtedy jest zarezerwowany na adres końca obszaru stosu i twój system operacyjny musi go odpowiednio przełączać przy zmianie wątku (podobnie jak przełącza sam wskaźnik stosu i inne rejestry). Poczytaj o opcji kompilatora -fstack-check. Teoretycznie to samo można by zrobić w AVRach ale nie wiem czy kompilator avr-gcc obsługuje tą opcję. Przy procesorach z ochroną pamięci (np. ARM926EJ-S) jest jeszcze prościej.

Była mowa o programowaniu mikrokontrolerów.

Lub pod

A co mnie obchodzi jak on to znajduje. Jest skrypt xTaskCreste który używam do tworzenia zadania. W nim podaję wielkość stosu. Jak to w czasie kompilacji gcc odczyta i gdzie umieści początek stosu to już nie moja sprawa. Nie jestem programistą systemowym. Po to piszę w c i pod rtosem żeby nie zarządzać pamięcią podczas pisania aplikacji. Jak pisałem w asemblerze też robiłem durnowate sztuczki żeby zdjąć coś ze stosu i wyskoczyć na chama z procedury ale nie jest to wystarczający powód żeby trwać we własnoręcznym generowaniu kodu maszynowego ubranego w słówka MOV, ADD czy LJMP.

Dnia Tue, 01 Feb 2011 10:01:53 +0100, J.F. napisał(a):

A czy on miał coś wspólnego z programem obecnie dostępnym pod nazwą Cadstar?

W dniu 2011-02-21 22:51 badworm napisał(a):

formatting link
formatting link

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required