diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-11-06 22:50:42 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-11-06 22:50:42 +0000 |
commit | ac654234d69944a91ecf9f81ae97d6ee15507707 (patch) | |
tree | b79e2bda3a1f0b4fc3ec8aa624e47399bf8d1414 /c/src/lib/libbsp/arm/rtl22xx/startup | |
parent | 2007-11-06 Till Straumann <strauman@slac.stanford.edu> (diff) | |
download | rtems-ac654234d69944a91ecf9f81ae97d6ee15507707.tar.bz2 |
2007-11-03 Ray Xu <rayx.cn@gmail.com>
* start/start.S, startup/bspclean.c: Add veneer between ARM and
Thumb instructions. also moved bss init after CPSR/stack init in
start.S
Diffstat (limited to 'c/src/lib/libbsp/arm/rtl22xx/startup')
-rw-r--r-- | c/src/lib/libbsp/arm/rtl22xx/startup/bspclean.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/rtl22xx/startup/bspclean.c b/c/src/lib/libbsp/arm/rtl22xx/startup/bspclean.c index 3e4986a4a1..2ea71522aa 100644 --- a/c/src/lib/libbsp/arm/rtl22xx/startup/bspclean.c +++ b/c/src/lib/libbsp/arm/rtl22xx/startup/bspclean.c @@ -19,7 +19,16 @@ int uart_poll_read(int); void rtemsReboot (void) { +#ifdef __thumb__ + int tmp; + asm volatile (" .code 16 \n" \ + "ldr %[tmp], =_start \n" \ + "bx %[tmp] \n" \ + "nop \n" \ + : [tmp]"=&r" (tmp) ); +#else asm volatile ("b _start"); +#endif } void bsp_cleanup(void) |