wiki:TBR/BSP/Lpc24xx
Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

Version 10 (modified by Richard Campbell, on 03/26/11 at 00:23:16) (diff)

/* Downloading and Executing */

Lpc24xx

{{Infobox BSP |BSP_name = LPC24xx |Manufacturer = NXP |image = Lpcxx.png |caption = LPC2478 board |Board_URL = http://www.embeddedartists.com/products/kits/ |Architecture = ARMv4 |CPU_model = ARM7TDMI-S |Monitor = U-Boot |Simulator = N/A |Aliases = Various |RAM = 32 MB SDRAM + 96 KB internal |NVMEM = 128 MB NAND Flash, 4 MB NOR Flash + 512 KB internal |Serial = 3 x I2C, 1 x I2S, 4 x UARTs, 3 x SPI/SSP |NICs = 10/100 Ethernet |Other = USB 2.0 full-speed OTG/Device/ OHCI plus PHY and DMA }}

Overview

The LPC24xx series is built on a 2-AHB bus architecture. Like the LPC23xx series, the LPC24xx features Ethernet, USB FS, and CAN. The LPC24xx further adds a USB Host/OTG, an external bus, and higher I/O count, making this the most powerful series of ARM7-based MCUs in the marketplace. The newest LPC247x microcontrollers further integrate an LCD controller supporting high resolution STN and TFT panels with up to 24-bit true color. These microcontrollers support Super-Twisted Nematic (STN) and Thin-Film Transistor (TFT) graphic display panels up to 1024 x 768 pixels, from monochrome up to 24-bit true-color, and with hardware cursor support. This capability is ideal for point-of-sale, industrial, and medical/diagnostic applications. Further, the LCD controller supports Windows CE data formats.

Key Features

  • 72-MHz, 32-bit ARM7TDMI-S with dual AHB buses
  • 512 KB of ISP/IAP Flash and 98 KB of SRAM
  • 10/100 Ethernet MAC with DMA and MII/RMII interface
  • Two CAN 2.0B controllers with acceptance filtering
  • General-purpose DMA controller
  • 10-bit A/D converter and 10-bit D/A converter
  • 160 general-purpose Fast I/O pins
  • XGA LCD controller with dedicated DMA for TFT and
  • STN panels (LPC247x only)
  • USB 2.0 full-speed OTG/Device/Host plus PHY and DMA
  • Multiple serial interfaces: three I2C, one I2S, four UARTs, three SPI/SSP
  • External memory interface for SDRAM, SRAM, and Flash
  • Two PWM units and Boundary scan
  • Four 32-bit timers, a low-power realtime clock, and a Watchdog timer
  • 4-MHz internal RC (IRC) oscillator trimmed to 1% accuracy
  • 160 general-purpose Fast I/O pins
  • Single 3.3-V power supply

400px?

Board Setup

RTEMS Lab Board

Use the boot monitor's "printenv" command to display the firmware settings:

LPC2468_OEM_Board #  printenv
bootargs=root=/dev/ram initrd=0xa1800000,4000k console=ttyS0,38400N8
bootdelay=3
tftp_boot=tftpboot a0008000 linux.bin;tftpboot a1800000 romfs.bin;go a0008000
nand_boot=nand read a0008000 0 200000;nand read a1800000 200000 400000;go a0008000
mmc_boot=mmc;fatload mmc 0 a0008000 linux.bin;fatload mmc 0 a1800000 romfs.bin;go a0008000
update_uboot=tftpboot a1000000 u-boot.bin;protect off 0 2ffff;erase 0 2ffff;cp.b a1000000 0 $(filesize)
update_nor=tftpboot a1000000 linux.bin;protect off 80000000 803fffff;erase 80000000 803fffff;cp.b a1000000 80000000 $(filesize);tftpboot a1000000 romfs.bin;cp.b a1000000 80200000
update_nand=nand erase;tftpboot a1000000 linux.bin;nand write a1000000 0 200000;tftpboot a1000000 romfs.bin;nand write a1000000 200000 400000
netmask=255.255.255.0
ethaddr=00:1a:f1:00:07:a2
bootcmd=echo Booting RTEMS ...;run rtems
ipaddr=192.168.1.246
serverip=192.168.1.92
rtems=tftp a1000000 /lpc24xx_ea.img;bootm
baudrate=115200
stdin=serial
stdout=serial
stderr=serial

Environment size: 989/4092 bytes

Downloading and Executing

Use the boot monitor's boot command to download and execute the RTEMS image:

LPC2468_OEM_Board # boot
Booting RTEMS ...
emac: link status = 100Mbps, full duplex
emac: MAC address =  0:1a:f1: 0: 7:a2
TFTP from server 192.168.1.92; our IP address is 192.168.1.246
Filename '/lpc24xx_ea.img'.
Load address: 0xa1000000
Loading: ##################################
done
Bytes transferred = 169211 (294fb hex)
## Booting image at a1000000 ...
   Image Name:   RTEMS
   Image Type:   ARM RTEMS Kernel Image (gzip compressed)
   Data Size:    169147 Bytes = 165.2 kB
   Load Address: a0000000
   Entry Point:  a0000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
## Transferring control to RTEMS (at address a0000000) ...?

Debugging

How do you debug code on this board? What gdb setup? BDM, stub, etc?

Test Reports

Complete test suite pass on 2009-12-28 with CVS head and VFP soft-float model.

References

{{Navbox_BSPs}}