\r
#if defined(__IAR_SYSTEMS_ICC__)\r
\r
- EXTERN Irq_Entry\r
-\r
-\r
-DECLARE_IRQ_MAP_GLOBAL MACRO name\r
+DECLARE_IRQ_MAP_GLOBAL MACRO // name\r
PUBLIC irq_\1\r
ENDM\r
\r
-DECLARE_IRQ_MAP MACRO name nr\r
+DECLARE_IRQ_MAP MACRO //name, nr\r
irq_\1:\r
- movb #\2, -10, sp // save irq nr. above context space\r
- bra Irq_PreEntry\r
+ movb #\2,-10,sp // save irq nr. above context space\r
+ call .LWRD.(Irq_PreEntry),.BYT3.(Irq_PreEntry)\r
ENDM\r
\r
-DECLARE_IRQ_TIMER_MAP MACRO name, nr, intflag\r
+DECLARE_IRQ_TIMER_MAP MACRO //name, nr, intflag\r
irq_\1:\r
- movb #nr, -10, sp // save irq nr. above context space\r
- bset TFLG1, #intflag // clear timer interrupt flag\r
- bra Irq_PreEntry\r
+ movb #\2,-10,sp // save irq nr. above context space\r
+ bset TFLG1,#\3 // clear timer interrupt flag\r
+ call .LWRD.(Irq_PreEntry),.BYT3.(Irq_PreEntry)\r
ENDM\r
\r
DECLARE_IRQ_MODULUS_COUNTER_MAP MACRO\r
irq_mccnt_underflow:\r
movb #IRQ_NR_MCCNT_UNDERFLOW, -10, sp // save irq nr. above context space\r
bset MCFLG, #0x80 // clear interrupt flag\r
- bra Irq_PreEntry\r
+ call .LWRD.(Irq_PreEntry),.BYT3.(Irq_PreEntry)\r
ENDM\r
\r
#else\r
/*\r
* Save context, prepare args, call Irq_Entry, restore context (if we are returning to same task)\r
*/\r
+ EXTERN Irq_Entry\r
+\r
+ PUBLIC Irq_PreEntry\r
Irq_PreEntry:\r
SAVE_CONTEXT_FROM_INTERRUPT\r
ldaa #0 // load irq nr. as arg 0..\r
ldab -1,sp // ..from above context space\r
sts 2,-sp // put SP as arg 1\r
- call Irq_Entry //\r
+ call .LWRD.(Irq_Entry),.BYT3.(Irq_Entry)\r
tfr d,sp // load stack_p returned from Irq_Entry\r
RESTORE_CONTEXT_FOR_INTERRUPT\r
rti\r
DECLARE_IRQ_MAP cop_clock, IRQ_NR_COP_CLOCK\r
\r
#if defined(__IAR_SYSTEMS_ICC__)\r
- end\r
+ END\r
#endif\r
# __IAR_SYSTEMS_ASM__ - asm \r
\r
\r
-IAR_COMPILE=/c/devtools/IAR_5.6/hcs12\r
+#IAR_COMPILE=/c/devtools/IAR_5.6/hcs12\r
IAR_BIN=$(IAR_COMPILE)/bin\r
IAR_LIB=$(IAR_COMPILE)/lib/dlib\r
\r
\r
AS = $(IAR_BIN)/ahcs12.exe\r
\r
-asflags-y += --error_limit=10\r
+#asflags-y += --error_limit=10\r
#asflags-y += -proc e500 -gdwarf-2\r
#asflags-$(CFG_VLE) += -vle\r
ASFLAGS += $(asflags-y)\r
ifeq (${COMPILER},cw)\r
CW_COMPILE?=${DEFAULT_CW_COMPILE}\r
endif\r
+ifeq (${COMPILER},iar)\r
+IAR_COMPILE?=${DEFAULT_IAR_COMPILE}\r
+endif\r
\r
# Check cross compiler setting against default from board config\r
ifeq (${COMPILER},cw)\r
${warning CW_COMPILE: ${CW_COMPILE} [${origin CW_COMPILE}]}\r
${warning DEFAULT_CW_COMPILE: ${DEFAULT_CW_COMPILE} [${origin DEFAULT_CW_COMPILE}]}\r
endif\r
+else ifeq (${COMPILER},iar)\r
+ifneq (${IAR_COMPILE},${DEFAULT_IAR_COMPILE})\r
+${warning Not using default cross compiler for architecture.}\r
+${warning IAR_COMPILE: ${IAR_COMPILE} [${origin IAR_COMPILE}]}\r
+${warning DEFAULT_IAR_COMPILE: ${DEFAULT_IAR_COMPILE} [${origin DEFAULT_IAR_COMPILE}]}\r
+endif\r
else\r
ifneq (${DEFAULT_CROSS_COMPILE},)\r
ifneq (${CROSS_COMPILE},${DEFAULT_CROSS_COMPILE})\r