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