Hi, I'm programming for a Cypress EZ-USB FX2 platform, and I'm adding onto the default firmware. I'm having some problems compiling some code, and I'm wondering if I'm running into space limitations already.
First of all, I get warnings when I try to initialize the I2C interface by calling
EZUSB_InitI2C();
I get the warning message
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS NAME: _EZUSB_WAITFOREEPROMWRITE/I2C *** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS NAME: _EZUSB_WRITEI2C_?I2C *** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS NAME: _EZUSB_READI2C_?I2C Program Size: data=112.4 xdata=6830 const=216 code=8870
Next, when I try to add in another for loop as below
for (i=0;i<16;i++) EZUSB_ReadI2C(ZTBL_ADDR+i, 0x01, z_table[i]);
I am unable to compile. I get the following error messages on top of the warning message
*** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: CODE SEGMENT: ?L?COM001A LENGTH: 00000BH *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: CODE SEGMENT: ?L?COM0022 LENGTH: 000009H *** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS CAUSE: JUMP TARGET OUT OF RANGE ADDRESS: 0750H *** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS CAUSE: JUMP TARGET OUT OF RANGE ADDRESS: 0761H *** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS CAUSE: JUMP TARGET OUT OF RANGE ADDRESS: 0785H *** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS CAUSE: JUMP TARGET OUT OF RANGE ADDRESS: 07B0H Program Size: data=112.4 xdata=6830 const=216 code=8993 Target not created
Have I run out of space already?
Thanks!
"It is a common mistake to assume that 'RAM' and 'XDATA' are synonymous"
See my post, "8051/8052 Memory Architecture" in this thread: http://www.keil.com/forum/docs/thread10634.asp
Thanks for the 8052.com link Andy, I was trying to find an article that details the memory hierarchy of 8051 MCUs.
Anyway, I guess there's not much I can do to solve my problem is there? Would it be possible to add external memory to increase code space?
"I was trying to find an article that details the memory hierarchy of 8051 MCUs."
That would be the so-called "bible" for the 8051:
Chapter 1 - 80C51 Family Architecture: www.nxp.com/.../80C51_FAM_ARCH_1.pdf
Chapter 2 - 80C51 Family Programmer's Guide and Instruction Set: www.nxp.com/.../80C51_FAM_PROG_GUIDE_1.pdf
Chapter 3 - 80C51 Family Hardware Description: www.nxp.com/.../80C51_FAM_HARDWARE_1.pdf
You would have to consult the chip's Datasheet for the answer to that...