[STM32] plik z funkcjami przerwan

Mar 21, 2012 3 Replies

Czesc. moze dosc dlupie pytanie dla Was ale sie troche pogubilem. Jest sobie projekt na STM32 pisany w srodowisku Keila. Jest plik main.c, jest startup.s. Nie wiem dlaczego w pliku main nie jest nigdzie dyrektywa include dolaczony plik z prototypami funkcji przerwan, natomiast jakos jest ten plik kompilowany i te funkcjie do projektu sa dolaczane. Dlaczego? W AVR kazda funkcja musiala miec prototyp i musialy jej deklaracje byc dolaczone, a tu? Czego nie dostrzegam?


W dniu 2012-03-21 09:07, slawek7 pisze:

Bo w opcjach (Project -> Options for target... -> c/C++ -> Include Paths) możesz mieć dopisaną ścieżkę, w której znajdują się automatycznie dołączane pliki *.h .

slawek7 snipped-for-privacy@wp.pl napisał(a):

Nie wiem jak w Keilu, ale w IAR te przerwania definiowane są w pliku asemblera, dołączanym do projektu.

Nie znam tego środowiska, ale zakładam, że jest tam standardowe podejście:

Funkcja przerwania jest zdefiniowana jako weak symbol w skrypcie linkera

- jak dostarczysz taki symbol to będzie on podpięty, jak nie dostarczysz to będzie podpięty ten ze startup.s (albo pętla nieskończona albo reset).

Nie muszą. Na AVR jest lukier składniowy w postaci makr ISR i żeby je rozwinąć musisz dołączyć nagłówek, ale jak lubisz nurkowanie w szambie to możesz pisać przerwania jako __vector_NUMER i wszystko się powinno ładnie skompilować.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required