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