AnsweredAssumed Answered

LocationType Fixup overflow

Question asked by Cab Jones on May 22, 2012
Latest reply on May 23, 2012 by Cab Jones

HC9S08GW, small model, CW 10.2

Get these build errors

Fixup overflow in MCU_init, to _ICSC1 type 1, at offset 0x17  
Fixup overflow in MCU_init, to _ICSC2 type 1, at offset 0x19  

Looking at MCU_init()  I expect these are at the offsets noted:

  ICSC1 = 0x04;                        /* Initialization of the ICS control register 1 */
  ICSC2 = 0x00; 



This does not seem to fit the JSR/BSR type problem, anyway I disabled all optimizations to no avail.  This is an uncomplicated project--just trying to get some sample I2C code running.  My title says Location Type because I saw it listed like that once, I don't see that now.



I'm new to CW, but prm-file doesn't seem to have anything discontiguous? unless it is PPAGE2 (which I don't understand)


SEGMENTS /* Here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
    Z_RAM                    =  READ_WRITE   0x00C0 TO 0x00FF;
    RAM                        =  READ_WRITE   0x0100 TO 0x08BF;
        /* unbanked FLASH ROM */
    ROM                        =  READ_ONLY    0xC000 TO 0xFF95;
    STANDBYRAM       =  NO_INIT      0x18C0 TO 0x18DF;
         /* INTVECTS             =  READ_ONLY    0xFF96 TO 0xFFFF; Reserved for Interrupt Vectors */
        /* banked FLASH ROM */
    PPAGE_2               =  READ_ONLY    0x028000 TO 0x02BFFF;
        /* PPAGE_3        =  READ_ONLY    0x038000 TO 0x03BFFF; PAGE already contained in segment at 0xC000-0xFFFF */

PLACEMENT /* Here all predefined and user segments are placed into the SEGMENTS defined above. */
    DEFAULT_RAM,                  /* non-zero page variables */
                    INTO  RAM;

    _PRESTART,                       /* startup code */
    STARTUP,                            /* startup data structures */
    ROM_VAR,                           /* constant variables */
    STRINGS,                            /* string literals */
    VIRTUAL_TABLE_SEGMENT,              /* C++ virtual table segment */
    NON_BANKED,                  /* runtime routines which must not be banked */
    COPY                                    /* copy down information: how to initialize variables */
             INTO  ROM;

    PAGED_ROM                       /* routines which can be banked */
             INTO  PPAGE_2;

    _DATA_ZEROPAGE,            /* zero page variables */
    STANDBY_RAM                    /* battery backed standby RAM */
             INTO  STANDBYRAM;