RTV forum PL | NewsGroups PL

Jak działają funkcje przerwań w projekcie STM32 bez deklaracji w main.c?

[STM32] plik z funkcjami przerwan

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak działają funkcje przerwań w projekcie STM32 bez deklaracji w main.c?

slawek7
Guest

Wed Mar 21, 2012 10:07 am   



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?

Meloman
Guest

Wed Mar 21, 2012 10:36 am   



W dniu 2012-03-21 09:07, slawek7 pisze:
Quote:
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.

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 .

--
/ / .-. \ \ .----------------------------.
( ( ( o ) ) ) | Przemysław Korpas |
\ \ /|\ / / | meloman[at]radiopolska.pl |
/ | \ `----------------------------'

Grzegorz Niemirowski
Guest

Sun Mar 25, 2012 10:09 pm   



slawek7 <sholojda@wp.pl> napisał(a):
Quote:
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?

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

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 10 days, 22 hours, 10 minutes and 30 seconds

Michoo
Guest

Sun Mar 25, 2012 10:54 pm   



On 21.03.2012 09:07, slawek7 wrote:
Quote:
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.
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).

Quote:
Dlaczego? W AVR kazda funkcja musiala miec prototyp i musialy jej
deklaracje byc dolaczone, a tu? Czego nie dostrzegam?
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ć.

--
Pozdrawiam
Michoo

elektroda NewsGroups Forum Index - Elektronika Polska - Jak działają funkcje przerwań w projekcie STM32 bez deklaracji w main.c?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map