On Wed, Oct 8, 2014 at 3:16 PM, Joel Sherrill <joel.sherr...@oarcorp.com> wrote: > --- > c/src/lib/libbsp/arm/shared/abort/abort.c | 44 > +++++++++++++++++++------------ > 1 file changed, 27 insertions(+), 17 deletions(-) > > diff --git a/c/src/lib/libbsp/arm/shared/abort/abort.c > b/c/src/lib/libbsp/arm/shared/abort/abort.c > index a686a62..05432f8 100644 > --- a/c/src/lib/libbsp/arm/shared/abort/abort.c > +++ b/c/src/lib/libbsp/arm/shared/abort/abort.c > @@ -1,6 +1,10 @@ > /* > * ARM CPU Dependent Source > * > + * If you want a small footprint RTEMS, pls use simple_abort.c > + */ > + > +/* > * COPYRIGHT (c) 2007 Ray Xu. > * mailto: Rayx at gmail dot com > * > @@ -10,8 +14,6 @@ > * Copyright (c) 2002 Advent Networks, Inc > * Jay Monkman <jmonk...@adventnetworks.com> > * > - * If you want a small footprint RTEMS, pls use simple_abort.c > - * > * The license and distribution terms for this file may be > * found in the file LICENSE in this distribution or at > * http://www.rtems.org/license/LICENSE. > @@ -44,21 +46,26 @@ > #define SET_REG(r, ctx, v) (((uint32_t *)ctx)[r] = v) > #define GET_OFFSET(insn) (insn & 0xfff) > > -uint32_t g_data_abort_cnt = 0; > +/* > + * Prototypes > + */ > +void _print_full_context(uint32_t); > +void do_data_abort(uint32_t, uint32_t, Context_Control *); > + > +uint32_t g_data_abort_cnt = 0; > /*this is a big overhead for MCU only got 16K RAM*/ > -uint32_t g_data_abort_insn_list[1024]; > +uint32_t g_data_abort_insn_list[1024]; > > > char *_print_full_context_mode2txt[0x20]={ > - [0x0]="user", /* User */ > - [0x1]="fiq", /* FIQ - Fast Interrupt Request */ > - [0x2]="irq", /* IRQ - Interrupt Request */ > - [0x3]="super", /* Supervisor */ > - [0x7]="abort", /* Abort */ > - [0xb]="undef", /* Undefined */ > - [0xf]="system" /* System */ > - }; > - > + [0x0]="user", /* User */ > + [0x1]="fiq", /* FIQ - Fast Interrupt Request */ > + [0x2]="irq", /* IRQ - Interrupt Request */ > + [0x3]="super", /* Supervisor */ > + [0x7]="abort", /* Abort */ > + [0xb]="undef", /* Undefined */ > + [0xf]="system" /* System */ > +}; > > void _print_full_context(uint32_t spsr) > { > @@ -82,7 +89,7 @@ void _print_full_context(uint32_t spsr) > : [arm_switch_reg] "=&r" (arm_switch_reg), [prev_sp] "=&r" > (prev_sp), [prev_lr] "=&r" (prev_lr), > [cpsr] "=&r" (cpsr) > : [spsr] "r" (spsr) > - : "cc"); > + : "cc"); > > printk("Previous sp=0x%08x lr=0x%08x and actual cpsr=%08x\n", > prev_sp, prev_lr, cpsr); > @@ -102,8 +109,11 @@ void _print_full_context(uint32_t spsr) > * All unhandled instructions cause the system to hang. > */ > > -void do_data_abort(uint32_t insn, uint32_t spsr, > - Context_Control *ctx) > +void do_data_abort( > + uint32_t insn, > + uint32_t spsr, > + Context_Control *ctx > +) > { > /* Clarify, which type is correct, CPU_Exception_frame or > Context_Control */ > uint8_t decode; > @@ -156,6 +166,6 @@ void do_data_abort(uint32_t insn, uint32_t spsr, > while(1) { > continue; > } > - return; > + (void) level; /* avoid set but unused warning */ I'd prefer to see this closer to where level was set.
-Gedare > } > > -- > 1.9.3 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel