Shop OBEX P1 Docs P2 Docs Learn Events
proptool error: Object files exceed 64k — Parallax Forums

proptool error: Object files exceed 64k

Peter VerkaikPeter Verkaik Posts: 3,956
edited 2008-02-09 09:30 in Propeller 1
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

Comments

  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-02-07 10:17
    Do you use the _stack or _free directives?
  • Peter VerkaikPeter Verkaik Posts: 3,956
    edited 2008-02-07 10:33
    No.

    regards peter
  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-02-07 10:41
    Do you have a circular reference maybe? Do you want to post the code and I'll see if it works on my computer.
  • Peter VerkaikPeter Verkaik Posts: 3,956
    edited 2008-02-07 10:54
    Just unzip it in some folder.
    jvmMain.spin is the top object.

    I am using proptool 1.06

    regards peter
    jvm.zip 18.7K
  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-02-07 11:12
    Tried it with prop tool 1.05.8 and also doesn't work. You can comment out any one of the four objects and it will compile (if you comment out the code in main).
    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
  • Peter VerkaikPeter Verkaik Posts: 3,956
    edited 2008-02-07 11:31
    I figured it was a compiler issue. The hierarchy of objects in this case is
    not even complex, with just 6 objects.
    Who do I notify about this? Looks like·a·compiler update is necessary.

    regards peter

    ·
  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-02-07 11:41
    The parallax people will probably see this thread and investigate the problem. Since its probably the middle of the night over there there probably won't be a response from them until tomorrow. They seem to be pretty responsive when a real problem is raised. You may want to send one of them a PM to make sure that they get this. Maybe you could try using a different length name for some of the files. There was a problem with the length of assembly labels at one stage that they fixed.
  • Peter VerkaikPeter Verkaik Posts: 3,956
    edited 2008-02-07 17:48
    I found a workaround, by putting the large array into its own object file,
    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
  • deSilvadeSilva Posts: 2,967
    edited 2008-02-07 20:46
    It looks like a compiler issue.
    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 BakerPaul Baker Posts: 6,351
    edited 2008-02-08 05:41
    I'll forward the information, it may take a while, he's on paternity leave.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • deSilvadeSilva Posts: 2,967
    edited 2008-02-08 07:41
    That could take years....
  • Fred HawkinsFred Hawkins Posts: 997
    edited 2008-02-08 16:11
    deSilva, those years have already passed. He'll be back no later than the terrible two's.
  • cgraceycgracey Posts: 14,133
    edited 2008-02-09 06:22
    It won't take years. I am the one responsible for the compiler which goes into Jeff's Windows application.

    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.
  • deSilvadeSilva Posts: 2,967
    edited 2008-02-09 08:26
    Chip Gracey (Parallax) said...
    ....as one of you said
    He's got a name and is called deSilva smile.gif
    said...
    Sorry about this.
    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.
  • cgraceycgracey Posts: 14,133
    edited 2008-02-09 09:16
    deSilva said...
    Chip Gracey (Parallax) said...
    ....as one of you said
    He's got a name and is called deSilva smile.gif
    said...
    Sorry about this.
    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.
    Okay, I'll add an error that will·suggest you place parentheses around a foreign object's PUB inside a COGNEW, so that it will at least not look like you are trying to do what can't be done.

    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.
  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-02-09 09:30
    So, just write a program to do chip design on the prop smile.gif Then you will be able to design the perfect chip on the perfect chip.

    Is that enough chips in one post Chip? smile.gif

    Steven
Sign In or Register to comment.