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 ???
[AVR-GCC] Kompilacja "2drozna"
May 24, 2007
7 Replies
U¿ytkownik "Pawel K" snipped-for-privacy@kpw.qs.pl> napisa³ w wiadomo¶ci news:f34002$lbk$ snipped-for-privacy@inews.gazeta.pl...
Kompilacja warunkowa?
Pzdr, Maciek
Maciej Wywrocki pisze:
no tak, jednak albo 1szy wariant albo 2gi. Mi chodzi o obydwa warianty za jednym zamachem :)
Pawel K pisze:
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ę.
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).
odpowiednio grzebi±c w makefile ;-)
Pawel K pisze:
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 pisze:
dzieki wielkie .... jak zawsze niezawodny ...
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required