wiki:TBR/BSP/Rtl22xx_t

Version 1 (modified by Rayx, on Nov 3, 2007 at 10:40:30 AM) (diff)

New page: This BSP is a thumb-enabled version of rtl22xx. Also, this bsp is an example of how development can development/change there own bsp from ARM mode to Thumb mode. Common code (IRQ, ISR) is ...

Rtl22xx t

This BSP is a thumb-enabled version of rtl22xx. Also, this bsp is an example of how development can development/change there own bsp from ARM mode to Thumb mode. Common code (IRQ, ISR) is already changed. BSP developer should take of there own assembly/inline-assembly codes which deal with CPSR/SPSR. Bellow is the things need to changed: 1) Changes the CPU_CFLAGS to CPU_CFLAGS += -mthumb in the BSP’s cfg file. -mthumb-interwork is not necessary because the low-level code has its own veneer that change between modes 2) start.S This file must be in ARM mode, so add .arm/.code 32 in the beginning. Code will transfer to thumb mode when call boot_card. So use bx instead of bl when doing this. If want the code return back to start.S after boot_card. LR must update because bx will not update lr automatically 3) bsp_dir/irq/bsp_irq_asm.S, it is better to write this function in C instead of assembly. However, this function should be thumb mode now, and when function finished, MUST return back to ARM mode with bx 4) bspclean.c. change the b _start to bx reg. Because the startup code must be in arm mode. (also b _start will refuse to compile in thumb mode)

BSP is compiled with gcc 4.2.1, binutils 2.18 with multi-lib for thumb enabled