Error[e16]: Segment INTVEC (size: 0x78 align: 0x1) is too long for segment definition. At least 0x38 more bytes needed. The problem occurred while processing the segment placement command "-Z(CODE)INTVEC=FF80-FFFF", where at the moment of placement the available memory ranges were "CODE:ff80-ffaf,CODE:ffbf-ffff"
Reserved ranges relevant to this placement:
It seems that the IAR tools define the starting location of the interrupt vector table to 0xFF80 and then reference all the interrupt vectors from this base address. Does anyone know how to get around this issue to reclaim the addresses? Where does IAR define the base address for the interrupt vector table? I'm not able to locate it. The reason we'd like to do this is to maintain compatibility with another product.
First crude guess, you have declared INTVEC twice with two different ranges. It isn't clear if "INTVEC" is tied to a fixed size representing the entire interrupt vector range. I suggest you contact IAR support even if you have to pay a few (when I was working we paid the early support fee to keep free tech support active) and get there input as to how to redirect vector space to code space. You might be able to declare some address variable(s) and assign them the vector addresses you wish to exploit and move datum into those locations using you address variable(s). If the space is not really used for interrupt vectors this may work if there aren't compiler or other IAR operational considerations that would corrupt your datum. That's why I suggest getting IAR help.
Regards, Keith Abell