diff --git a/arch/avr/include/avr/irq.h b/arch/avr/include/avr/irq.h index b946be3ef56..65abae20128 100644 --- a/arch/avr/include/avr/irq.h +++ b/arch/avr/include/avr/irq.h @@ -91,8 +91,8 @@ /* The program counter is automatically pushed when the interrupt occurs */ -#define REG_PCH 35 /* PC */ -#define REG_PCL 36 +#define REG_PC0 35 /* PC */ +#define REG_PC1 36 /**************************************************************************** * Public Types @@ -112,8 +112,8 @@ struct xcptcontext /* These are saved copies of PC and SR used during signal processing.*/ - uint8_t saved_pcl; - uint8_t saved_pch; + uint8_t saved_pc1; + uint8_t saved_pc0; uint8_t saved_sreg; #endif diff --git a/arch/avr/src/at90usb/at90usb_exceptions.S b/arch/avr/src/at90usb/at90usb_exceptions.S index cb51c1616c7..542ad7f74f6 100755 --- a/arch/avr/src/at90usb/at90usb_exceptions.S +++ b/arch/avr/src/at90usb/at90usb_exceptions.S @@ -112,8 +112,8 @@ * On Entry: * The return PC and the saved r24 is on the stack, r24 now contains the IRQ number * - * PCL - * PCH + * PC1 + * PC0 * R0 * --- <- SP * diff --git a/arch/avr/src/atmega/atmega_exceptions.S b/arch/avr/src/atmega/atmega_exceptions.S index d8a37271a91..b594ffc74c3 100755 --- a/arch/avr/src/atmega/atmega_exceptions.S +++ b/arch/avr/src/atmega/atmega_exceptions.S @@ -201,8 +201,8 @@ * On Entry: * The return PC and the saved r24 is on the stack, r24 now contains the IRQ number * - * PCL - * PCH + * PC1 + * PC0 * R0 * --- <- SP * diff --git a/arch/avr/src/avr/excptmacros.h b/arch/avr/src/avr/excptmacros.h index 1abc14273d2..a4674bbe859 100644 --- a/arch/avr/src/avr/excptmacros.h +++ b/arch/avr/src/avr/excptmacros.h @@ -99,16 +99,16 @@ * sp - Points to the top of the stack. The PC is already on the stack. * Only the stack is available for storage * - * PCL - * PCH + * PC1 + * PC0 * --- <- SP * * At completion: * Stack pointer is incremented by one, the saved r24 is on the stack, r24 now contains the * IRQ number * - * PCL - * PCH + * PC1 + * PC0 * R0 * --- <- SP * @@ -134,8 +134,8 @@ * sp - Points to the top of the stack * Only the stack is available for storage * - * PCL - * PCH + * PC1 + * PC0 * R24 * --- <- SP * @@ -333,10 +333,10 @@ .macro USER_SAVE - /* Pop the return address from the stack (PCH then PCL). R18:19 are Call-used */ + /* Pop the return address from the stack (PC0 then PC1). R18:19 are Call-used */ - pop r19 /* r19=PCH */ - pop r18 /* r18=PCL */ + pop r19 /* r19=PC0 */ + pop r18 /* r18=PC1 */ /* Save the current stack pointer as it would be after the return(SPH then SPL). */ @@ -399,8 +399,8 @@ /* Save the return address that we have saved in r18:19*/ - st x+, r19 /* r19=PCH */ - st x+, r18 /* r18=PCL */ + st x+, r19 /* r19=PC0 */ + st x+, r18 /* r18=PC1 */ .endm /******************************************************************************************** @@ -428,8 +428,8 @@ * Y [r28:29] */ - movw r28, r26 /* Get a pointer to the PCH/PCL storage location */ - adiw r28, REG_PCH + movw r28, r26 /* Get a pointer to the PC0/PC1 storage location */ + adiw r28, REG_PC0 /* Fetch and set the new stack pointer */ @@ -441,21 +441,21 @@ /* Fetch the return address and save it at the bottom of the new stack so * that we can iret to switch contexts. The new stack is now: * - * PCL - * PCH + * PC1 + * PC0 * --- <- SP */ - ld r25, y+ /* Load PCH (r25) then PCL (r24) */ + ld r25, y+ /* Load PC0 (r25) then PC1 (r24) */ ld r24, y+ - push r24 /* Push PCH and PCL on the stack (PCL then PCH) */ + push r24 /* Push PC0 and PC1 on the stack (PC1 then PC0) */ push r25 /* Then get value of X [r26:r27]. Save X on the new stack where we can * recover it later. The new stack is now: * - * PCL - * PCH + * PC1 + * PC0 * R26 * R27 * --- <- SP diff --git a/arch/avr/src/avr/up_dumpstate.c b/arch/avr/src/avr/up_dumpstate.c index 97b9d1d409d..383734323fb 100644 --- a/arch/avr/src/avr/up_dumpstate.c +++ b/arch/avr/src/avr/up_dumpstate.c @@ -152,7 +152,7 @@ static inline void up_registerdump(void) current_regs[REG_R30], current_regs[REG_R31]); lldbg("PC: %02x%02x SP: %02x%02x SREG: %02x\n", - current_regs[REG_PCH], current_regs[REG_PCL], + current_regs[REG_PC0], current_regs[REG_PC1], current_regs[REG_SPH], current_regs[REG_SPL], current_regs[REG_SREG]); } diff --git a/arch/avr/src/avr/up_initialstate.c b/arch/avr/src/avr/up_initialstate.c index 8672e6da752..3fbfc557987 100644 --- a/arch/avr/src/avr/up_initialstate.c +++ b/arch/avr/src/avr/up_initialstate.c @@ -96,8 +96,8 @@ void up_initial_state(struct tcb_s *tcb) /* Save the task entry point */ - xcp->regs[REG_PCH] = (uint8_t)((uint16_t)tcb->start >> 8); - xcp->regs[REG_PCL] = (uint8_t)((uint16_t)tcb->start & 0xff); + xcp->regs[REG_PC0] = (uint8_t)((uint16_t)tcb->start >> 8); + xcp->regs[REG_PC1] = (uint8_t)((uint16_t)tcb->start & 0xff); /* Enable or disable interrupts, based on user configuration */ diff --git a/arch/avr/src/avr/up_schedulesigaction.c b/arch/avr/src/avr/up_schedulesigaction.c index 4bafc7f1b2e..78386076f6e 100644 --- a/arch/avr/src/avr/up_schedulesigaction.c +++ b/arch/avr/src/avr/up_schedulesigaction.c @@ -154,16 +154,16 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver) */ tcb->xcp.sigdeliver = sigdeliver; - tcb->xcp.saved_pcl = current_regs[REG_PCL]; - tcb->xcp.saved_pch = current_regs[REG_PCH]; + tcb->xcp.saved_pc1 = current_regs[REG_PCL]; + tcb->xcp.saved_pc0 = current_regs[REG_PCH]; tcb->xcp.saved_sreg = current_regs[REG_SREG]; /* Then set up to vector to the trampoline with interrupts * disabled */ - current_regs[REG_PCL] = (uint16_t)up_sigdeliver & 0xff; - current_regs[REG_PCH] = (uint16_t)up_sigdeliver >> 8; + current_regs[REG_PC1] = (uint16_t)up_sigdeliver & 0xff; + current_regs[REG_PC0] = (uint16_t)up_sigdeliver >> 8; current_regs[REG_SREG] &= ~(1 << SREG_I); /* And make sure that the saved context in the TCB @@ -188,16 +188,16 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver) */ tcb->xcp.sigdeliver = sigdeliver; - tcb->xcp.saved_pcl = tcb->xcp.regs[REG_PCL]; - tcb->xcp.saved_pch = tcb->xcp.regs[REG_PCH]; + tcb->xcp.saved_pc1 = tcb->xcp.regs[REG_PCL]; + tcb->xcp.saved_pc0 = tcb->xcp.regs[REG_PCH]; tcb->xcp.saved_sreg = tcb->xcp.regs[REG_SREG]; /* Then set up to vector to the trampoline with interrupts * disabled */ - tcb->xcp.regs[REG_PCL] = (uint16_t)up_sigdeliver & 0xff; - tcb->xcp.regs[REG_PCH] = (uint16_t)up_sigdeliver >> 8; + tcb->xcp.regs[REG_PC1] = (uint16_t)up_sigdeliver & 0xff; + tcb->xcp.regs[REG_PC0] = (uint16_t)up_sigdeliver >> 8; tcb->xcp.regs[REG_SREG] &= ~(1 << SREG_I); } } diff --git a/arch/avr/src/avr/up_sigdeliver.c b/arch/avr/src/avr/up_sigdeliver.c index 0db6a03344f..1901cf420bd 100644 --- a/arch/avr/src/avr/up_sigdeliver.c +++ b/arch/avr/src/avr/up_sigdeliver.c @@ -101,8 +101,8 @@ void up_sigdeliver(void) /* Save the real return state on the stack. */ up_copystate(regs, rtcb->xcp.regs); - regs[REG_PCL] = rtcb->xcp.saved_pcl; - regs[REG_PCH] = rtcb->xcp.saved_pch; + regs[REG_PC1] = rtcb->xcp.saved_pcl; + regs[REG_PC0] = rtcb->xcp.saved_pch; regs[REG_SREG] = rtcb->xcp.saved_sreg; /* Get a local copy of the sigdeliver function pointer. We do this so that