wiki:TBR/BSP/Rtl22xx_t

Version 6 (modified by JoelSherrill, on 02/25/09 at 05:42:11) (diff)

Add BSP Infobox

Rtl22xx t

{{Infobox BSP |BSP_name = BSP name goes here |Manufacturer = Who made me? |image = |caption = optional image caption |Board_URL = http:/manufacturer.com/ExampleBoard |Architecture = Architecture |CPU_model = Model name |Monitor = uBoot, uMon |Simulator = Well? |Aliases = Any RTEMS BSP Aliases? |RAM = XXX MB |NVMEM = 32 MB Flash, 16 KB EEPROM |Serial = one. UART part name. |NICs = one. NIC part name. |Other = anything else you need to say }}

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, contex switch) is already changed. BSP developer should take care of there own assembly/inline-assembly codes which deal with CPSR/SPSR. Bellow is the codes 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 ARM and Thumb 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 bx reg is used instead of bl bootcard. If the code want to 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, if it is assembly, this function should be in thumb mode, 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. Note: 2007-Nov, this BSP and Thumb are first introduced into rtems. rtl22xx hardware can not run full test suits to verified thumb support(only tests in samples is run). It will be appreciated that other ARM based bsp can also test the thumb support and report bug.