PDA

View Full Version : Running out of Code Space - or so it seems



Squibcakes
- 6th July 2006, 01:39
<b>I'm getting a compile error with PBP on my 16F88.</b>

Apparently my code <i>crosses boundary @ 800H.</i> This is the error msg that MCC brings up after the compile.

Now the 16F88 has programming memory for 4096 word instructions, yet when I compile, MCC calculates that I've used a little over 2000 words.

<font color='red'>This is well short of the 4096 limit.</font>

If I <i>REM</i> out a few lines of code, the error msg goes away.

<h3>Any Ideas?</h3>
Squib.

paul borgmeier
- 6th July 2006, 04:09
I'm getting a compile error with PBP on my 16F88.

Apparently my code crosses boundary @ 800H. This is the error msg that MCC brings up after the compile.
Are you sure it is an error an not just the standard (i.e., normal) warning about crossing page boundaries? It sure sounds like the latter to me. Please confirm.

Paul Borgmeier
Salt Lake City, Utah
USA

Christopher4187
- 6th July 2006, 04:14
I have never used that chip nor am I an expert but I have gotten this message before on other chips. This message is only a notificaiton and should have no ill effects on the operation. This is also discussed in the PBP manual. There is always a "but" and this case is no different....someone with more experience can probably chime in and explain it better. There can be an issue on how your program is set up because it may be on a different stack. Personally, I have never experienced any issues with this type of notification but I really wouldn't call it an error.

Chris

Darrel Taylor
- 6th July 2006, 04:25
Warning (and other Compilation Error) Messages
http://www.picbasic.co.uk/forum/showthread.php?t=555

Crossing Page Boundary - Solution
http://www.picbasic.co.uk/forum/showthread.php?t=40
<br>

Squibcakes
- 6th July 2006, 06:22
Thanks D.T.

Learning all the time ;)

Squib

Charles Linquis
- 6th July 2006, 16:44
You can find out just how big your code really is by looking at the HEX file. The first two HEX digits gives the number of bytes in the line. This will usually be "10" (16 bytes). Digits 3,4,5 & 6 give the load address of the first byte on that line. Scroll down to the bottom of the HEX file, and see what the last address is. Compare that with the memory map of the device and you will always know where you stand - at least when it comes to filling up the device.