Hello, sorry for big delay with my answer ...
I'm targeting GZ32 mc using FSICE (btw, the file .mem for 32K emulation chip [MCUID 043B], wasn't available in prog\mem directory, I had to create, instead 16K and 48K .mem files are available, why ... ?).
The problem is in the prm file, below pieces of sorces :
FROM CODE:
#define vjmp 0xcc // JUMP opcode
typedef struct
{
char opcode;
void (* const _vectab)();
} tIntJmpTable;
#pragma CONST_SEG APPLVECT
const tIntJmpTable ApplIntJmpTable[22] =
{
vjmp, NullHand, /* msCAN Transmit */
vjmp, CanRxIntpt, /* msCAN Receive */
vjmp, CanErrorIntpt, /* msCAN Error */
vjmp, CanWakeUpIntpt, /* msCAN Wakeup */
vjmp, NullHand, /* Timbase */
vjmp, AdcIntp, /* ADC */
vjmp, KeyIntp, /* Keyboard */
vjmp, NullHand, /* SCI Transmit */
vjmp, NullHand, /* SCI Receive */
vjmp, NullHand, /* SCI Error */
vjmp, NullHand, /* SPI Transmit */
vjmp, NullHand, /* SPI Receive */
vjmp, NullHand, /* TIM2 Overflow */
vjmp, Tim2CH1Intp, /* TIM2 CH1 */
vjmp, Tim2CH0Intp, /* TIM2 CH0 */
vjmp, Tim1OverIntp, /* TIM1 Overflow */
vjmp, NullHand, /* TIM1 CH1 */
vjmp, NullHand, /* TIM1 CH0 */
vjmp, NullHand, /* PLL */
vjmp, NullHand, /* IRQ1 vector handler */
vjmp, ResetIntpt,
vjmp, ResetIntpt,
};
#pragma CONST_SEG DEFAULT
----------------------------------------------------------------------
PRM FILE:
NAMES END
SECTIONS
...
AVECT = READ_ONLY 0xE800 TO 0xE87F;
...
END
PLACEMENT
...
APPLVECT INTO AVECT;
...
END
At the beginning I didn't check prm file but it's clear that AVECT section didn't point to correct area where interrupts source are located (FFD4-FFFF), indeed at address 0xE82A there is Tim2CH0Intp vector address (instead to FFF0) ...
It doesn't seem to me that interrupt vectors can be relocated so I'm not able to understand how it's possible that mc could run well with this .prm (I didn't check) but, more probably, there was an mistake in prm version I've received.
Thanks for your answer.
Luis
I