Fix some AVR context save errors

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3704 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-06-15 17:23:48 +00:00
parent 02e2da2f03
commit 0cad779b3e
2 changed files with 16 additions and 14 deletions

View File

@ -377,7 +377,7 @@ void usart1_configure(void)
#elif CONFIG_USART1_BITS == 8
ucsr1c |= ((1 << UCSZ10) | (1 << UCSZ11));
#elif CONFIG_USART1_BITS == 9
ucsr1c |= (U(1 << CSZ10) | (1 << UCSZ11));
ucsr1c |= ((1 << CSZ10) | (1 << UCSZ11));
ucsr1b |= (1 << UCSZ12);
#else
# error "Unsupported word size"

View File

@ -150,34 +150,36 @@
* handler.
*
* On Entry:
* r0 - has already been pushed onto the stack and now holds the IRQ number
* r24 - has already been pushed onto the stack and now holds the IRQ number
* sp - Points to the top of the stack
* Only the stack is available for storage
*
* PCL
* PCH
* R0
* R24
* --- <- SP
*
* At completion:
* Register state is saved on the stack; All registers are available for usage except sp.
* Register state is saved on the stack; All registers are available for usage except sp and
* r24 which still contains the IRQ number as set by the HANDLER macro.
*
********************************************************************************************/
.macro EXCPT_PROLOGUE
/* Save R1 - The zero register (but might not be zero) */
/* Save R0 -- the scratch register */
push r1
push r0
/* Save the status register on the stack */
in r1, __SREG__ /* Save the status register */
in r0, __SREG__ /* Save the status register */
cli /* Disable interrupts */
push r1
push r0
/* R1 must be zero for our purposes */
/* Save R1 -- the zero register (which may not be zero). R1 must be zero for our purposes */
push r1
clr r1
/* Save r2-r17 - Call-saved, "static" registers */
@ -230,12 +232,12 @@
* it was on entry into this macro. We'll have to subtract to get that value.
*/
in r24, __SP_L__
in r25, __SP_H__
adiw r24, XCPTCONTEXT_REGS
in r26, __SP_L__
in r27, __SP_H__
adiw r26, XCPTCONTEXT_REGS
push r24
push r25
push r26
push r27
.endm
/********************************************************************************************