From e3cd548e74e0b64e83693e5029ff2d3bb981cafc Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 26 Jun 2009 01:18:24 +0000 Subject: 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 --- nuttx/arch/arm/src/cortexm3/up_initialstate.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'nuttx/arch') diff --git a/nuttx/arch/arm/src/cortexm3/up_initialstate.c b/nuttx/arch/arm/src/cortexm3/up_initialstate.c index 9bf65bf57..951ce1a95 100644 --- a/nuttx/arch/arm/src/cortexm3/up_initialstate.c +++ b/nuttx/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 */ -- cgit v1.2.3