I am using MC9RS08LA8 controller and it displaying link error (L1102-Tiny ram at address 0x0E) while i compile. how to see the ram usage and how to solve this issue. I am new to this compiler.
thank you,
Message was edited by: karunanithi pratheep
Solved! Go to Solution.
Hi Karunanithi Pratheep,
It seems that the RAM required for your global and static variables, plus the stack, may exceed the available RAM capacity. Please take a look to Jorge Gonzalez's answer on the following post, it explains how you can find a summary of the memory usage in the *.map file:
Re: HC08: Code Warrior newbie questions
Hope it helps!
Best Regards,
Carlos Mendoza
Technical Support Engineer
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Karunanithi Pratheep,
It seems that the RAM required for your global and static variables, plus the stack, may exceed the available RAM capacity. Please take a look to Jorge Gonzalez's answer on the following post, it explains how you can find a summary of the memory usage in the *.map file:
Re: HC08: Code Warrior newbie questions
Hope it helps!
Best Regards,
Carlos Mendoza
Technical Support Engineer
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
the followings are memory allocation form my .Prm file,
if i use more then 128 bytes it showing tiny ram error... how can i utilze 256 bytes of ram..
NAMES END /* CodeWarrior will pass all the needed files to the linker by command line. But here you may add your own files too. */
SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
TINY_RAM = READ_WRITE 0x0005 TO 0x000D;
RAM = READ_WRITE 0x0050 TO 0x00BF;
RAM1 = NO_INIT 0x0100 TO 0x017F;
RESERVED_RAM = NO_INIT 0x0000 TO 0x0004;
ROM = READ_ONLY 0x2000 TO 0x3F00;
CONST_PAGE = READ_ONLY 0x3f01 TO 0x3FF9;
END
PLACEMENT /* Here all predefined and user segments are placed into the SEGMENTS defined above. */
RESERVED INTO RESERVED_RAM;
TINY_RAM_VARS INTO TINY_RAM;
DIRECT_RAM_VARS INTO RAM, TINY_RAM;
Myuse INTO RAM1;
DEFAULT_RAM INTO RAM, TINY_RAM;
DEFAULT_ROM INTO ROM;
CONST_ROM INTO CONST_PAGE;
END
STACKSIZE 0x00 /* no stack for RS08 */
/*********************************************************************************************/
READ_ONLY (R): 1CE6 (dec: 7398)
READ_WRITE (R/W): 78 (dec: 120)
NO_INIT (N/I): B4 (dec: 180)
Hi Karunanithi Pratheep,
By looking at the information in your .prm file, your DEFAULT_RAM segment is only using the RAM and TINY RAM segments, the RAM1 is only used for the Myuse segment this is why you are only using half the RAM. Is there a specific reason to use the RAM1 segment only for the Myuse segment?
What you can do is modify the PLACEMENT to the following:
PLACEMENT /* Here all predefined and user segments are placed into the SEGMENTS defined above. */
.
.
.
DEFAULT_RAM INTO RAM, RAM1, TINY_RAM;
.
.
.
END
Hope it helps!
Best Regards,
Carlos Mendoza
Technical Support Engineer
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
yes , There are some variables declared inside the myuse area. Now i got the solution.
Thanks,
K Pratheep