]> rtime.felk.cvut.cz Git - arc.git/commitdiff
More iar stuff. Mainly fixed so that arch_irq.sx compiles.
authorjcar <devnull@localhost>
Sun, 28 Oct 2012 07:01:46 +0000 (08:01 +0100)
committerjcar <devnull@localhost>
Sun, 28 Oct 2012 07:01:46 +0000 (08:01 +0100)
arch/hc1x/hcs12d/kernel/arch_irq.sx
makefile
scripts/cc_iar.mk
scripts/rules.mk

index 3938c2c126e3a15cc8d484a5e23c7b0eac14414d..8cef65bfce7fc633b7aceea93e93b821c5b12dae 100644 (file)
 \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
@@ -167,12 +164,15 @@ irq_mccnt_underflow:
 /*\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
@@ -252,5 +252,5 @@ Irq_PreEntry:
        DECLARE_IRQ_MAP cop_clock, IRQ_NR_COP_CLOCK\r
 \r
 #if defined(__IAR_SYSTEMS_ICC__)\r
-       end\r
+       END\r
 #endif\r
index 6b64781e01bdcf74fb4f8c405a197028774c181e..c73a1a822be6a9cb2263290d2d84c3da2df86b76 100644 (file)
--- a/makefile
+++ b/makefile
@@ -141,6 +141,8 @@ show_build:
        @echo "  COMPILER:       $(COMPILER) [$(origin COMPILER)]"      \r
 ifeq ($(COMPILER),cw)  \r
        @echo "  CW_COMPILE:     $(CW_COMPILE) [$(origin CW_COMPILE)]"\r
+else ifeq ($(COMPILER),iar)    \r
+       @echo "  IAR_COMPILE:     $(IAR_COMPILE) [$(origin IAR_COMPILE)]"\r
 else \r
        @echo "  CROSS_COMPILE:  $(CROSS_COMPILE) [$(origin CROSS_COMPILE)]"\r
 endif\r
index df751a4ccaddb2020ee578e0ba24c660efad196d..0a7ce434faa4a2db4579447d9f12fb2ec176ca30 100644 (file)
@@ -8,7 +8,7 @@
 #  __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
@@ -107,7 +107,7 @@ libitem-y += $(libitem-yy)
 \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
index 67fa17872131842a6a993b52e096c280c65679ec..d79c9c3f59d76fd661ad93bfb1bbb48a58fd6e7c 100644 (file)
@@ -22,6 +22,9 @@ endif
 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
@@ -30,6 +33,12 @@ ${warning Not using default cross compiler for architecture.}
 ${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