From 27cb33b4a88a65a56a57bdb0b855144d73a165ee Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 26 Jun 2009 01:18:24 +0000 Subject: [PATCH] NXFLAT doesn't set bit 0 in the entry point address git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1958 42af7a65-404d-4744-a932-0658087f49c3 --- arch/arm/src/cortexm3/up_initialstate.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/src/cortexm3/up_initialstate.c b/arch/arm/src/cortexm3/up_initialstate.c index 9bf65bf57a6..951ce1a95f8 100644 --- a/arch/arm/src/cortexm3/up_initialstate.c +++ b/arch/arm/src/cortexm3/up_initialstate.c @@ -110,6 +110,16 @@ void up_initial_state(_TCB *tcb) xcp->regs[REG_PIC] = (uint32)tcb->dspace->region; } + + /* Make certain that bit 0 is set in the main entry address. This + * is only an issue when NXFLAT is enabled. NXFLAT doesn't know + * anything about thumb; the addresses that NXFLAT sets are based + * on file header info and won't have bit 0 set. + */ + +#ifdef CONFIG_NXFLAT + tcb->entry.main = (main_t)((uint32)tcb->entry.main | 1); +#endif #endif /* Enable or disable interrupts, based on user configuration */