summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/shared/abort
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2010-01-12 15:03:22 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2010-01-12 15:03:22 +0000
commit39c8fdb416327c5ec0c23807ae701798a5739cdf (patch)
tree0f2bb4acb60e60d74b7ef08e345a21d7896aba20 /c/src/lib/libbsp/arm/shared/abort
parent2010-01-11 Marc Pignat <marc.pignat@hevs.ch> (diff)
downloadrtems-39c8fdb416327c5ec0c23807ae701798a5739cdf.tar.bz2
add support for lpc32xx
Diffstat (limited to 'c/src/lib/libbsp/arm/shared/abort')
-rw-r--r--c/src/lib/libbsp/arm/shared/abort/abort.c14
-rw-r--r--c/src/lib/libbsp/arm/shared/abort/simple_abort.c12
2 files changed, 14 insertions, 12 deletions
diff --git a/c/src/lib/libbsp/arm/shared/abort/abort.c b/c/src/lib/libbsp/arm/shared/abort/abort.c
index 3bd704c32e..123fda0f7e 100644
--- a/c/src/lib/libbsp/arm/shared/abort/abort.c
+++ b/c/src/lib/libbsp/arm/shared/abort/abort.c
@@ -63,7 +63,7 @@ char *_print_full_context_mode2txt[0x20]={
void _print_full_context(uint32_t spsr)
{
char *mode;
- uint32_t prev_sp,prev_lr,cpsr,tmp;
+ uint32_t prev_sp,prev_lr,cpsr,arm_switch_reg;
int i;
printk("active thread thread 0x%08x\n", _Thread_Executing->Object.id);
@@ -71,14 +71,16 @@ void _print_full_context(uint32_t spsr)
mode=_print_full_context_mode2txt[spsr&0x1f];
if(!mode) mode="unknown";
- asm volatile (" MRS %[cpsr], cpsr \n"
- " ORR %[tmp], %[spsr], #0xc0 \n"
- " MSR cpsr_c, %[tmp] \n"
+ asm volatile (ARM_SWITCH_TO_ARM
+ " MRS %[cpsr], cpsr \n"
+ " ORR %[arm_switch_reg], %[spsr], #0xc0 \n"
+ " MSR cpsr_c, %[arm_switch_reg] \n"
" MOV %[prev_sp], sp \n"
" MOV %[prev_lr], lr \n"
" MSR cpsr_c, %[cpsr] \n"
- : [prev_sp] "=&r" (prev_sp), [prev_lr] "=&r" (prev_lr),
- [cpsr] "=&r" (cpsr), [tmp] "=&r" (tmp)
+ ARM_SWITCH_BACK
+ : [arm_switch_reg] "=&r" (arm_switch_reg), [prev_sp] "=&r" (prev_sp), [prev_lr] "=&r" (prev_lr),
+ [cpsr] "=&r" (cpsr)
: [spsr] "r" (spsr)
: "cc");
diff --git a/c/src/lib/libbsp/arm/shared/abort/simple_abort.c b/c/src/lib/libbsp/arm/shared/abort/simple_abort.c
index 25f6aee4e5..b77c425a5e 100644
--- a/c/src/lib/libbsp/arm/shared/abort/simple_abort.c
+++ b/c/src/lib/libbsp/arm/shared/abort/simple_abort.c
@@ -56,7 +56,7 @@ char *_print_full_context_mode2txt[0x10]={
void _print_full_context(uint32_t spsr)
{
char *mode;
- uint32_t prev_sp,prev_lr,cpsr,tmp;
+ uint32_t prev_sp,prev_lr,cpsr,arm_switch_reg;
int i, j;
printk("active thread thread 0x%08x\n", _Thread_Executing->Object.id);
@@ -65,16 +65,16 @@ void _print_full_context(uint32_t spsr)
if(!mode) mode="unknown";
asm volatile (
- THUMB_TO_ARM
+ ARM_SWITCH_TO_ARM
"mrs %[cpsr], cpsr\n"
- "orr %[tmp], %[spsr], #0xc0\n"
- "msr cpsr_c, %[tmp]\n"
+ "orr %[arm_switch_reg], %[spsr], #0xc0\n"
+ "msr cpsr_c, %[arm_switch_reg]\n"
"mov %[prev_sp], sp\n"
"mov %[prev_lr], lr\n"
"msr cpsr_c, %[cpsr]\n"
- ARM_TO_THUMB
+ ARM_SWITCH_BACK
: [prev_sp] "=&r" (prev_sp), [prev_lr] "=&r" (prev_lr),
- [cpsr] "=&r" (cpsr), [tmp] "=&r" (tmp)
+ [cpsr] "=&r" (cpsr), [arm_switch_reg] "=&r" (arm_switch_reg)
: [spsr] "r" (spsr)
: "cc"
);