proptool error: Object files exceed 64k
Peter Verkaik
Posts: 3,956
I have a top object in which I declare
OBJ
· jvm: "jvmEngine"
When I comment it out and compile I get
Program size 5338 longs
Variable 0 longs
Stack/free 2850 longs
When I include jvm I get the error Object files exceed 64k.
jvmEngine only contains
OBJ
· comm:· "jvmComm"··· 'communication port object
· jd:··· "jvmData"··· 'jvm memory access object
·
PUB pp
{{ the jvm engine }}
·········
and comm and jd were already included in the top object file, prior to including jvm.
All objects only use DAT areas, no VAR areas.
Any thoughts?
regards peter
OBJ
· jvm: "jvmEngine"
When I comment it out and compile I get
Program size 5338 longs
Variable 0 longs
Stack/free 2850 longs
When I include jvm I get the error Object files exceed 64k.
jvmEngine only contains
OBJ
· comm:· "jvmComm"··· 'communication port object
· jd:··· "jvmData"··· 'jvm memory access object
·
PUB pp
{{ the jvm engine }}
·········
and comm and jd were already included in the top object file, prior to including jvm.
All objects only use DAT areas, no VAR areas.
Any thoughts?
regards peter
Comments
regards peter
jvmMain.spin is the top object.
I am using proptool 1.06
regards peter
I can't see a circular reference anywhere. I tried commenting out one of the objects in one of your subobjects and that didn't work.
Also tried it with jvm commented out and with an array to fill up the memory and that worked. If you comment out the two objects in jvm and replace them with TV_text it compiles.
I would guess that the compiler is generating some kind of circular reference somewhere and going berserk. It could be that the compiler has a limit on the number of times that you can include an object or something that isn't documented.
Steven
not even complex, with just 6 objects.
Who do I notify about this? Looks like·a·compiler update is necessary.
regards peter
·
together with a function that returns the address of the array.
This object is only included in the top object file.
Other objects that must access the array get the array address and size
via their init routine.
regards peter
I changed JAVASIZE downto 8k and it compiles.
Seems that the compiler checks whether the data fits into RAM before it detects that this module has already been loaded
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
It seems, as one of you said, that while·the compiler's·gathering up the sub-objects from which it will amass the top object, it's·seeing an intermediate size in excess of 32KB, which is causing the error. I think the best way to remedy this will be to have the compiler get a little smarter when it brings in a new object, making sure not to load anything that is redundant. I will look at this over the weekend and we should be able to post a new Propeller Tool app sometime next week. Sorry about this.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
There is no need for being sorry. The Propeller IDE has an extraordinarily low number of (known) bugs. I would not have believed this before, as I am accustomed through my job to another order of magnitude of issues...
The only real nuissance I know of is the missing warning/error message in case you try to start a method of a foreign object with COGNEW.
We suffer the same headaches as you over development issues.·An inordinate amount of Jeff's time goes into just keeping·the Propeller IDE·running under Windows. It's getting to the point where you could write a thesis on the nuances required to successfully operate a serial port under it. A few months ago, our chip design tools were mysteriously loosing schematic wire connections, but that seems to have been fixed with a new version. We're trying to make perfect things out of broken things and it's an uphill battle.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
Is that enough chips in one post Chip?
Steven