Version 10 (modified by Mehr Mohammad Sachal, on Nov 7, 2018 at 8:14:48 AM) (diff)


Rtl22xx t


ManufacturerPhilips NXP
captionLPC2294 header
CPU_modelPhilip's LPC22xx ARM
MonitoruBoot, uMon
NVMEMno ROM, 0/256KB flash
Serial2 ports


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.

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:

#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 #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 #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 #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.