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?
[STM32] plik z funkcjami przerwan
Mar 21, 2012
3 Replies
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