dodatek do części 9 zmiany w AVR LibC

background image

Programowanie procesorów w języku C

dodatek do części 9: “Zmiany w avr-libc”

Uwaga: Pełny opis zmian (w języku angielskim) można znaleźć na stronie:

www.nongnu.org

/avr-libc/

avr-libc 1.2 a 1.4 – najważniejsze różnice

1. Makro INTERRUPT (umożliwiające tworzenie przerwań obsługiwanych w taki sposób, że zaraz po ich

wywołaniu przerwania są odblokowywane) zostało oznaczone jako element do usunięcia i nie powinno już być
używane. Jeśli potrzebujesz takiej właśnie obsługi przerwania możesz wykorzystać zapis jak niżej:

void

NAZWA_PRZERWANIA(

void

) __attribute__((interrupt))

2. Wprowadzono nowe makro służące do tworzenia przerwań: ISR. Działa ono identycznie jak poprzednie

SIGNAL. Makro SIGNAL może zostać usunięte w przyszłych wersjach i nie powinno być już stosowane.

3. Praktycznie wszystkie dane z pliku <avr/signal.h> zostały przeniesione do pliku <avr/interrupt.h>.

Pierwszy z wymienionych plików jest aktualnie pusty i w następnych wersjach może zostać usunięty.

4. Został wprowadzony nowy plik nagłówkowy: <compat/deprecated.h>. Znajdują się w nim elementy

przeznaczone do usunięcia (takie jak makro INTERRUPT). Kompilacja starszych programów może wymagać
jego dodania, jeśli nie chcemy zmieniać kodu.

5. Część plików nagłówkowych została przeniesiona do katalogu util. Jedynym z przeniesionych plików,

który do tej pory był nam przydatny jest delay.h. W katalogu avr pozostał plik o nazwie delay.h, jednak
dołącza on swoją wersję z katalogu util jednocześnie generując ostrzeżenie.

6. Wprowadzone zostały nowe nazwy przerwań. Aktualnie stare oraz nowe nazwy będą współistniały. Nie

wyklucza się jednak usunięcia starych nazw. Nowe nazwy są krótsze w zapisie i o tyle wygodniejsze, że są
praktycznie odwzorowaniem nazw stosowanych przez firmę ATMEL, z dodanym przyrostkiem _vect.

Poniżej przedstawiam kilka przykładowych nazw wektorów przerwań AT90S2313 według nowego i starego

stylu:

7. Rozwinięta została biblioteka stdio. Umieszczenie definicji stałej __STDIO_FDEVOPEN_COMPAT_12

przed dołączeniem nagłówka <stdio.h> sprawia, że biblioteka staje się w dużej mierze kompatybilna ze
starszą wersją. Może się okazać to pomocne przy kompilacji starszych kodów.

7.0. Z funkcji fdevopen usunięto niewykorzystywany, trzeci parametr.
7.1.
Funkcje put oraz get strumienia przyjmują teraz dodatkowy parametr, którym jest wskaźnik na obiekt

FILE powiązany ze strumieniem. Zostało to wprowadzone przede wszystkim na punkt następny.

7.2. Wprowadzona została funkcja fdev_set_udata() oraz fdev_get_udata() które dają możliwość

ustawienia oraz odczytania danej użytkownika znajdującej się w zmiennej FILE. Dana ta może zostać
wykorzystana w dowolny sposób. W połączeniu ze zmianą 7.1 daje to, między innymi, możliwość
wykorzystania tych samych funkcji put oraz get dla dwóch różnych urządzeń, rozróżnianych jedynie przez
daną użytkownika.

7.3. Zdefiniowano dokładnie wartości jakie może zwrócić funkcja get. _FDEV_ERR – błąd, _FDEV_EOF –

koniec pliku. Powodują one odpowiednie zachowanie funkcji czytających.

7.4. Wprowadzone zostało makro fdev_setup_stream() umożliwiające powiązanie strumienia z plikiem bez

pośrednictwa dynamicznej alokacji pamięci. Makro FDEV_SETUP_STREAM() umożliwia z kolei inicjację
tworzonej zmiennej typu FILE. W ten sposób udostępniona została nam funkcjonalność której poszukiwaliśmy
w poprzedniej części.

Jednocześnie, aby makra te mogły działać prawidłowo, struktura FILE została zdeklarowana jawnie w pliku

stdio.h.

Wersja przeznaczona do bezpłatnego udostępnienia poprzez stronę

www.elportal.pl

(

www.elportal.com.pl

,

www.edw.com.pl

). Jeśli

pobrałeś ten plik z innego miejsca – proszę, poinformuj mnie o tym:

radoslaw.koppel@elportal.pl

. Jeśli chcesz umieścić ten plik na

swojej stronie lub masz jakieś uwagi – skontaktuj się ze mną.

-1/1-

Nowy styl

S tary styl

SIG_COMPARAT OR
SIG_INT ERRUPT 0
SIG_INT ERRUPT 1

...

ANA_COMP_vect
INT 0_vect
INT 1_vect
T IMER0_OVF_vect

SIG_

OVERFLOW0

T IMER1_CAPT 1_vect

SIG_INPUT _

CAPTURE1


Wyszukiwarka

Podobne podstrony:
D19220862 Rozporządzenie Ministra Skarbu z dnia 16 października 1922 r w przedmiocie częściowej zmi
D19240417 Rozporządzenie Ministra Skarbu z dnia 29 kwietnia 1924 r w przedmiocie częściowej zmiany
D19210086 Rozporządzenie wykonawcze z dnia 24 stycznia 1921 r do ustawy z dnia 28 listopada 1920 r
D19210726 Rozporządzenie Ministra Skarbu z dnia 28 października 1921 r w przedmiocie częściowej zmi
Założenia do części drugiej z worda
2010 Dodatek do śpiewnika z akordami Biało żółta
ZESTAW ZADAŃ TESTOWYCH DO CZĘŚCI TEORETYCZNEJ EGZAMINU
Klucz do części praktycznej MS 1
dodatek do laborek
Slowa klucze do czesci MOZG
Dodatek do To zad egz 1
dodatek do cw6, POLITECHNIKA LUBELSKA
5841, pisemne, pytania do części wstępnej, pisemnej - w celu wyłonienia ok
dodatek do wykladu 3 4
pytania oraz odpowiedzi do części mostowej
Dodatek do skryptu
Klucz do części praktycznej Thx 1

więcej podobnych podstron