diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-05-13 16:19:05 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2009-05-13 16:19:05 +0000 |
commit | d85a6b5e74dbbf82ef5ed1518d9c588356a11251 (patch) | |
tree | dea1afe1fb2cb6db6e1f6aaf63c72fe52a1a62f5 /nuttx/arch/arm/src/common/up_initialstate.c | |
parent | 27bee603a196dd9049de194777cc3be0d7514075 (diff) | |
download | px4-nuttx-d85a6b5e74dbbf82ef5ed1518d9c588356a11251.tar.gz px4-nuttx-d85a6b5e74dbbf82ef5ed1518d9c588356a11251.tar.bz2 px4-nuttx-d85a6b5e74dbbf82ef5ed1518d9c588356a11251.zip |
1st cut at lm3s6918 interrupt handling
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1776 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/common/up_initialstate.c')
-rw-r--r-- | nuttx/arch/arm/src/common/up_initialstate.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/nuttx/arch/arm/src/common/up_initialstate.c b/nuttx/arch/arm/src/common/up_initialstate.c index 2dd1695ba..a945b4c51 100644 --- a/nuttx/arch/arm/src/common/up_initialstate.c +++ b/nuttx/arch/arm/src/common/up_initialstate.c @@ -81,11 +81,18 @@ void up_initial_state(_TCB *tcb) /* Initialize the initial exception register context structure */ memset(xcp, 0, sizeof(struct xcptcontext)); - xcp->regs[REG_SP] = (uint32)tcb->adj_stack_ptr; - xcp->regs[REG_PC] = (uint32)tcb->start; -#ifdef CONFIG_SUPPRESS_INTERRUPTS - xcp->regs[REG_CPSR] = SVC_MODE | PSR_I_BIT | PSR_F_BIT; + xcp->regs[REG_SP] = (uint32)tcb->adj_stack_ptr; + xcp->regs[REG_PC] = (uint32)tcb->start; + +#ifdef __thumb2__ +# ifdef CONFIG_SUPPRESS_INTERRUPTS + xcp->regs[REG_PRIMASK] = 1; +# endif #else - xcp->regs[REG_CPSR] = SVC_MODE | PSR_F_BIT; +# ifdef CONFIG_SUPPRESS_INTERRUPTS + xcp->regs[REG_CPSR] = SVC_MODE | PSR_I_BIT | PSR_F_BIT; +# else + xcp->regs[REG_CPSR] = SVC_MODE | PSR_F_BIT; +# endif #endif } |