Keil - nowa wersja niekompatybilna ze starsza?

Oct 28, 2004 4 Replies

jakis czas term oprogramowalem '51 uzywajac keila bodajrze 6; przy probie kompilacji 7 sa problemy... dokladniej z wywolywaniem procedury z parametrem - z maina wywoluje bez klopotu, z innej procedury pojawia sie ostrzezeine, a skompilowany program dziala nieprawidlowo... w przypadku procedury bez parametru wszystko jest ok... ma ktos pomysl jak zwalczyc problem?



pozdrawiam Artur



U¿ytkownik "ArturVF500" snipped-for-privacy@o2.pl napisa³ w wiadomo¶ci news:clregg$r85$ snipped-for-privacy@nemesis.news.tpi.pl...

jaki konkretnie warning ?

juz opisuje dokladnie: procedurka z ktora problem (uzyje nazw, zeby bylo latwiej) LCDpisz wywoluje LCDputchar, ktora zamienia ciag znakow na chary i wyrzuca na wyswietlacz; LCDpisz wywolywana z main pracuje bez zarzutu, wywolywana z innej procedury, czy przerwania powoduje warning:

*** WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?_LCDPISZ?PROJEKT CALLER1: ?PR?IT_T0?PROJEKT CALLER2: ?C_C51STARTUP

zrobilem maly test i stworzylem procedurke wywolujaca tylko LCDpisz i odpalilem ja z main; efekt byl taki, ze LCDpisz w kolko wyswietlal zadany text, tak jak by nie wracal z wywolania; i oczywiscie na starszej wersji keila dzialalo bez zarzutu,niesty po padzie systemu juz jej nie posiadam...

pozdrawiam Artur

U¿ytkownik "ArturVF500" snipped-for-privacy@o2.pl napisa³ w wiadomo¶ci news:clrgts$due$ snipped-for-privacy@atlantis.news.tpi.pl...

taki warnig oznacza, ze jedna procedura jest wywolywana z dwoch watkow

startup code ja wola ale nie wiem dlaczego, (moze cos inicjalizuje , jakies zmienne statyczne czy cos ?) a Ty ja wolasz z przerwania timerowego jak sie domyslam po nazwie

trzeba sie zastanowic dlaczego startup code chce cos od tej procedury

jesli sie okaze, ze tak musi byc to funkcje trzeba zadeklarowac jako reentrant i wtedy powinno dzialac tylko funkcja taka po kompilacji bedzie troche bardziej rozpasiona

niestety jako reentrant sie wysypuje... zauwazulem ze problemem jest wkaznik w deklaracji procedury; bez wzgledu na to co jest wewnatrz, jezeli pojawia sie wskaznik w deklaracji a wewnatrz jakiekolwiek wywolanie to pojawia sie ow blad... nic to chyba dluga noc przede mna... dzieki i pozdrawiam Artur

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required