Page 1 of 1

PostPosted: Sat Jan 05, 2002 12:08 pm
by Steve Weigold
Hello all..

First warning.. 'ROOKIE'! :-)

Getting an accessing low memory warning from my emulator when I run a program created using PToolbox. Here are the specifics..

1 form
1 button
got a while loop with fevent and processing the return from fevent. This is just a BS program for me to play with the library so there is no code in the form other than the processing while loop. The button is used to exit. The code is pretty much right out of field_demo.c

I have the latest emulator, an m100 skin, and a ROM downloaded from my M105.

When I get the warning, if I click continue, the program works exactly as I would expect.

What causes the warning. Is it a problem. etc.. etc..

Thanks much

Steve Weigold

PostPosted: Sat Jan 05, 2002 4:04 pm
by jstadolnik
You are probably calling Field and Button on each pass of the loop.

Assuming this is the case, you need to move the Field and Button calls before the loop.

All form objects need to be installed before you use the form. Installing the same object multiple times in a form will cause all kinds of nasty problems. Each time an object is installed it consumes a chunk of memory. So you'll likely either end up running into low memory problems or you may get a ton of errors on exit.

In summary: "An object should only installed once per form".


The PToolboxLib guy.

PostPosted: Sat Jan 05, 2002 6:41 pm
by Steve Weigold

Thanks for the response, but thats not the problem.. The field and button calls are before the loop. I probably didn't explain the problem clearly. The exact message I get is:

"ProgramName" just read from memory location 0x00000028, which is in low memory.

Low memory is defined as the first 256 bytes of memory. It should not be directly accessed by applications under any circumstances.

As you can see, the problem is not that I'm running out of memory but that I seem to be in an address range that the emulator doesn't like.

Does that make the question more clear?


PostPosted: Sat Jan 05, 2002 6:55 pm
by jstadolnik
I have no clue. I'll need to see your source code.


The PToolboxLib guy.

PostPosted: Sat Jan 05, 2002 7:12 pm
by Steve Weigold
Here's the code... I stripped out some of my comments hoping that it would display better...

#define frmMAIN 3000
#define butEXIT 3001

library "PToolboxLib"
include "Fctl.h"

int Event;

Form(frmMAIN, "Error Message Demo");
Button(butEXIT , 0, 60, 140, 0, 0, "EXIT");

Fctl(DRAW, frmMAIN);

Event = Fevent(1);

case butEXIT: exit();

PostPosted: Sat Jan 05, 2002 8:11 pm
by jstadolnik
Interestingly enough, your program runs cleanly on the emulator (v3.3) and a m100 (v3.5.1) debug rom. There is no functional difference between m100 and m105 roms.

I strongly suspect that this an emulator bug. ROMs downloaded from devices have an additional section in the front of part of the ROM, as compared to debug roms. This extra section allow you to recover your device in case you accidentally do a bad rom burn.

Anyhow, I think that this extra block in the front of the device-ROMs is causing the emulator to bark. The emulator is likely checking for activity within a certain range of rom space and that address space will be different from debug roms to device-roms due this this "recovery block".

I've noticed the same warnings with a visor-prism rom someone sent me and thought that it was a visor rom problem... I'm thinking not now.

Provided that all you are getting are "read" errors, there shouldn't be any functional problem with using the library, and you can safely disable the warnings by checking the "low memory access" box in the emulator debug panel.

Also, the library does no direct reads of the lower address space. It is the palmOS which is doing it through some high level API calls. In short, there's nothing I can do get rid of the warnings, but they shouldn't be a problem.


The PToolboxLib guy.

PostPosted: Sat Jan 05, 2002 8:21 pm
by Steve Weigold
<big grin> It's amazing how much better the answer is when the question is asked clearly! Thanks Joe. Thats the info I was looking for. (and it IS read errors only)

As a side note, I have applied to the developers forum with the intention of getting debug ROMs. I'll post a followup when that occurs to let you/anyone else know if that makes the issue go away.

Thanks again.