Chyba při kompilaci ve vývojovém prostředí uVision2
Ing. Petr Weissar, Ph.D.
weissar@kae.zcu.cz
Pondělí Září 6 21:35:35 CEST 2004
Zdravim,
nepouzivam sice uVision, ale u C51 je to casta situace.
> Nastavím-li v nabídce PROJECT - Options for target - Use on-chip ROM u
> modelů s malou vnitřní pamětí dat (892051),
> dojde při kompilaci kódu s definovanými datovými segmenty a současně při
> odkazech na externí proměnné k následujícím chybám:
> *** ERROR L107: ADDRESS SPACE OVERFLOW
Tahle je dulezita, ostatni jsou "zavlecene" ...
> *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
> *** ERROR L120: CONTENT BELONGS TO ERRONEOUS SEGMENT
> *** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
> Když segmenty nedefinuji a tudíž tak nemohu použít vícemodulovou
> strukturu programování, uvedenou chybu nezahlásí.
> Věděl by někdo, zda a jak se dá problém vyřešit?
Co s tim ? Setrit pamet. Takze se podivat, jestli nepouzivate nekde pole intu
misto charu apod. .... A jinak nastavit linkeru prepinac OVERLAY (kde to je v
klikani nevim, pouzivam command-line v davce), coz znamena, ze se pokusi
spolecne vyuzit pametovy prostor funkci, ktere se navzajem nevolaji. To sice
pomuze, ale zpravidla jen docasne ...
Na druhou stranu, pokud mate 128B pameti, kde je jeste az 4 banky registru a
nejaky ten zasobnik, tak toho moc nevykouzlite. A moduly ? Hm, hm, externi
promenne linker urcite moc nezoptimalizuje tim overlayem, protoze jsou v ramci
modulu globalni. U malych RAM v procesoru bych na nejake velke modulovani radsi
rezignoval ....
S pozdravem
Ing. Petr Weissar, Ph.D.
Další informace o konferenci Hw-list