RTV forum PL | NewsGroups PL

Kompilacja w AVR-GCC dla układów z zegarami DS1305 i DS1307 w jednym kroku

[AVR-GCC] Kompilacja "2drozna"

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Kompilacja w AVR-GCC dla układów z zegarami DS1305 i DS1307 w jednym kroku

Pawel K
Guest

Thu May 24, 2007 1:21 pm   



Witam,
mam 2 identyczne uklady roznica jest niewielka.
w jednym jest zegar DS1305 w drugim DS1307.
Jest mozliwosc zeby kompilator tworzyl binaria
za jednym zamachem dla obu ukladow?
Jak to uwarunkowac ???

--
--
Pozrdawiam
Pawel K from 3miasto
groups(at)kpw.qs.pl
GG: 1263183
---------------- end ----------------

Maciej Wywrocki
Guest

Thu May 24, 2007 2:04 pm   



Użytkownik "Pawel K" <groups@kpw.qs.pl> napisał w wiadomości
news:f34002$lbk$1@inews.gazeta.pl...
Quote:
Witam,
mam 2 identyczne uklady roznica jest niewielka.
w jednym jest zegar DS1305 w drugim DS1307.
Jest mozliwosc zeby kompilator tworzyl binaria
za jednym zamachem dla obu ukladow?

Kompilacja warunkowa?

Pzdr,
Maciek

Pawel K
Guest

Thu May 24, 2007 3:00 pm   



Maciej Wywrocki pisze:
Quote:
Użytkownik "Pawel K" <groups@kpw.qs.pl> napisał w wiadomości
news:f34002$lbk$1@inews.gazeta.pl...
Witam,
mam 2 identyczne uklady roznica jest niewielka.
w jednym jest zegar DS1305 w drugim DS1307.
Jest mozliwosc zeby kompilator tworzyl binaria
za jednym zamachem dla obu ukladow?

Kompilacja warunkowa?
no tak, jednak albo 1szy wariant albo 2gi.

Mi chodzi o obydwa warianty za jednym zamachem :)

--
--
Pozrdawiam
Pawel K from 3miasto
groups(at)kpw.qs.pl
GG: 1263183
---------------- end ----------------

Łukasz Zemła
Guest

Thu May 24, 2007 3:32 pm   



Pawel K pisze:
Quote:
Witam,
mam 2 identyczne uklady roznica jest niewielka.
w jednym jest zegar DS1305 w drugim DS1307.
Jest mozliwosc zeby kompilator tworzyl binaria
za jednym zamachem dla obu ukladow?
Jak to uwarunkowac ???

Edycja pliku Makefile, ale wydaje mi się, że prościej jednak utworzyć 2
projekty.
Albo inaczej - napisać skrypt, który najpierw utworzy pierwszą, a
następnie drugą binarkę.

--
Pozdrawiam,
Łukasz "Coulomb" Zemła

Bogdan G
Guest

Thu May 24, 2007 7:09 pm   



Quote:
Witam,
mam 2 identyczne uklady roznica jest niewielka.
w jednym jest zegar DS1305 w drugim DS1307.
Jest mozliwosc zeby kompilator tworzyl binaria
za jednym zamachem dla obu ukladow?

Kompilacja warunkowa?
no tak, jednak albo 1szy wariant albo 2gi.
Mi chodzi o obydwa warianty za jednym zamachem :)


A skąd kompilator ma wiedzieć, z którym układem bedzie program
współpracował?
Masz dwie możliwości:
Dwa kody wynikowe - każdy inny. Mogą być utworzone warunkami podczas
kompilacji. W zależności od ukłądu współpracującego programujesz jedną lub
drugą wersją.

Druga możliwość to jeden kod wynikowy, a program sam sprawdza jaki jest to
układ (na podstawie ich właściwości lub dodatkowych zworek) i wybiera
odpowiednie procedury obsługi. Ja bym wybrał do urządzenia mającego być
produkowanego z takimi lub takimi układami właśnie takie rozwiazanie (chyba,
że nie chciałoby się zmiescić w pamięci).

Wiktor S.
Guest

Thu May 24, 2007 10:23 pm   



Quote:
mam 2 identyczne uklady roznica jest niewielka.
w jednym jest zegar DS1305 w drugim DS1307.
Jest mozliwosc zeby kompilator tworzyl binaria
za jednym zamachem dla obu ukladow?
Jak to uwarunkowac ???

odpowiednio grzebiąc w makefile ;-)


--
Azarien

Adam Dybkowski
Guest

Fri May 25, 2007 1:22 am   



Pawel K pisze:

Quote:
mam 2 identyczne uklady roznica jest niewielka.
w jednym jest zegar DS1305 w drugim DS1307.
Jest mozliwosc zeby kompilator tworzyl binaria
za jednym zamachem dla obu ukladow?

Kompilacja warunkowa?
no tak, jednak albo 1szy wariant albo 2gi.
Mi chodzi o obydwa warianty za jednym zamachem Smile

No to w makefile wstawiasz do opcji kompilatora np. -DMAM_DS1305 a za
drugim razem -DMAM_DS1307 i sprawdzasz tą definicję #ifdef'em tak jak
inne kompilacje warunkowe. Warto zrobić oddzielne sprawdzenia każdej
definicji zamiast klauzuli #else aby wykryć ew. niezdefiniowanie typu
układu w pliku makefile.

Możesz tak napisać makefile, aby wszystkie pliki były wspólne, a tylko
kod do obsługi DS1305 wzięty z pliku ds.c wpadł do ds1305.o natomiast to
samo skompilowane dla DS1307 wpadło do pliku ds1307.o. Potem w spisie
plików linkowanych umieszczasz ds1305.o a innym razem 1307.o i po
kłopocie. Trzeba tylko powielić wywołanie linkera np. przy generacji
"all:" aby zrobiły się dwa pliki wynikowe.

--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

Pawel K
Guest

Fri May 25, 2007 9:14 am   



Adam Dybkowski pisze:
Quote:
No to w makefile wstawiasz do opcji kompilatora np. -DMAM_DS1305 a za
drugim razem -DMAM_DS1307 i sprawdzasz tą definicję #ifdef'em tak jak
inne kompilacje warunkowe. Warto zrobić oddzielne sprawdzenia każdej
definicji zamiast klauzuli #else aby wykryć ew. niezdefiniowanie typu
układu w pliku makefile.

Możesz tak napisać makefile, aby wszystkie pliki były wspólne, a tylko
kod do obsługi DS1305 wzięty z pliku ds.c wpadł do ds1305.o natomiast to
samo skompilowane dla DS1307 wpadło do pliku ds1307.o. Potem w spisie
plików linkowanych umieszczasz ds1305.o a innym razem 1307.o i po
kłopocie. Trzeba tylko powielić wywołanie linkera np. przy generacji
"all:" aby zrobiły się dwa pliki wynikowe.

dzieki wielkie .... jak zawsze niezawodny ...


--
--
Pozrdawiam
Pawel K from 3miasto
groups(at)kpw.qs.pl
GG: 1263183
---------------- end ----------------

elektroda NewsGroups Forum Index - Elektronika Polska - Kompilacja w AVR-GCC dla układów z zegarami DS1305 i DS1307 w jednym kroku

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map