Add AT90USB configuration

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3678 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2011-06-07 19:06:07 +00:00
parent 284baee1bc
commit ce761cd85a
+35 -5
View File
@@ -93,21 +93,51 @@ struct xcptcontext
#ifndef __ASSEMBLY__
/* Read/write the SREG */
static inline irqstate_t getsreg(void)
{
irqstate_t sreg;
asm volatile ("in %0, __SREG__" : =r (sreg) :: );
return sreg;
}
static inline void putsreg(irqstate_t sreg)
{
asm volatile ("out __SREG__, %s" : : "r" (sreg) : );
}
/* Interrupt enable/disable */
static inline void irqenable()
{
asm volatile ("sei" ::);
}
static inline void irqdisable()
{
asm volatile ("cli" ::);
}
/* Save the current interrupt enable state & disable all interrupts */
static inline irqstate_t irqsave(void)
{
/* Needs to return the current interrupt state, then disable interrupts */
#warning "Not implemented"
return 0
irqstate_t sreg;
asm volatile
(
"\tin %0, __SREG__\n"
"\tcli\n
: "=&r" (sreg) ::
);
return sreg;
}
/* Restore saved interrupt state */
static inline void irqrestore(irqstate_t flags)
{
/* Based on the provided interrupt flags, conditionally enable interrupts */
#warning "Not implemented"
asm volatile ("out __SREG__, %s" : : "r" (flags) : );
}
#endif /* __ASSEMBLY__ */