ea_lpc2478

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ea_lpc2478 [2011/09/10 09:19] – [Embedded Artists LPC2478 evaluation board] adminea_lpc2478 [2011/09/27 21:26] (current) – [Building uClinux] admin
Line 2: Line 2:
 ====== Embedded Artists LPC2478 evaluation board ====== ====== Embedded Artists LPC2478 evaluation board ======
  
 +===== Board specs =====
   * ARM7TDMI with 512KB Flash and 96KB RAM   * ARM7TDMI with 512KB Flash and 96KB RAM
   * External Flash: 128MB NAND, 4MB NOR   * External Flash: 128MB NAND, 4MB NOR
Line 8: Line 9:
   * 32.768kH RTC   * 32.768kH RTC
  
-Embedded Artists provides patches for u-boot 1.1.6. This is a very old u-boot but we have to use it as our board is not supported on the main u-boot development line. The version of u-boot that we are using, 1.1.6, does not seem to be compilable under Codesourcery g++. A non-EABI tool is needed, like bare metal, therefore crosstool-ng is needed.+===== Building U-boot ===== 
 +Embedded Artists provides patches for u-boot 1.1.6. This is a very old U-boot but we have to use it as our board is not supported on the main u-boot development line. The version of U-boot that we are using, 1.1.6, does not seem to be compilable under Codesourcery g++. A non-EABI tool is needed, like bare metal, therefore crosstool-ng is needed.
  
 +  # build a u-boot.hex
 +  cd u-boot
 +  make distclean
 +  make LPC2478OEM_Board_32bit_config
 +  make
 +  arm-linux-objcopy -I binary -O ihex u-boot.bin u-boot.hex
 +  
   # u-boot.bin is a raw binary image   # u-boot.bin is a raw binary image
   # u-boot is an image in ELF binary format, never used for booting   # u-boot is an image in ELF binary format, never used for booting
Line 16: Line 25:
   arm-unknown-elf-objcopy -I binary -O ihex u-boot.bin u-boot.hex   arm-unknown-elf-objcopy -I binary -O ihex u-boot.bin u-boot.hex
      
 +===== U-boot flashing =====
 jumper pin P2.10 jumper pin P2.10
-do not jumper pin RST 
-powercycle the board 
  
-wait for USB serial device to be seen +powercycle the board and wait for USB serial device to be seen
-run sudo lsusb until you see the device: "Future Technology Devices International..."+
  
-figure out which tty port it is: +run sudo lsusb until you see the device: "Future Technology Devices International...", then figure out which tty port it is: should be /dev/ttyUSB0, but could be /dev/tty/USBxMake sure your user has rw access to it
-should be /dev/ttyUSB0, but could be /dev/tty/USBx +
-Make sure your user has rw access to it+
  
 compile the utility: compile the utility:
-gcc -o lpcisp lpc21isp_148x.c +  gcc -o lpcisp lpc21isp_148x.c
- +
-build a u-boot.hex +
-cd u-boot +
-make distclean +
-make LPC2478OEM_Board_32bit_config +
-make +
-arm-linux-objcopy -I binary -O ihex u-boot.bin u-boot.hex+
  
 Run the utility Run the utility
-./lpcisp u-boot.hex /dev/ttyUSB0 115200 14746+  ./lpcisp u-boot.hex /dev/ttyUSB0 115200 14746 
 + 
 +The download should begin immediately and take a minute or so. 
 + 
 +Remove jumper on pin P2.10. 
 + 
 +We can connect to the serial port terminal with minicom, using these settings: 115200 8N1 no flow control. 
 + 
 +===== Building uClinux ===== 
 + 
 +   tar -xzvf /home/juan/projects/ARM/arm7dev/uClinux-dist-20070130.tar.gz  
 +   cd uClinux-dist/ 
 +   rm -r linux-2.* 
 +   tar -xzvf /home/juan/projects/ARM/arm7dev/linux-2.6.21.tar.gz  
 +   mv linux-2.6.21/ linux-2.6.x 
 +   patch -p1 < /home/juan/projects/ARM/arm7dev/lpc2478_ea_patches/ea-uClinux-081020.diff  
 +   patch -p1 < /home/juan/projects/ARM/arm7dev/lpc2478_ea_patches/ea-v3_1_incr1.diff  
 +   export ARCH=arm 
 +   export CPU=arm7tdmi  
 +   PATH=$HOME/install/usr/local/bin:${PATH} 
 +   make menuconfig 
 +   make CROSS_COMPILE=arm-elf- 
 + 
 +   compile problem, adding '#include <limits.h>' after strings.h in scripts/mod/sumversion.c fixes the issue.  
 + 
 +   make CROSS_COMPILE=arm-elf- clean 
 +   make CROSS_COMPILE=arm-elf- 
  
-The download should begin immediately and take a minute or so+   make ARCH=arm CROSS_COMPILE=arm-uclinuxeabi- menuconfig 
 +   make ARCH=arm CROSS_COMPILE=arm-uclinuxeabi- all 
 +    
 +   disable I2C in linux config 
 +    
 +   make ARCH=arm CROSS_COMPILE=arm-uclinuxeabi- CC=/home/juan/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-gcc LD=/home/juan/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-ld AR=/home/juan/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-ar NM=/home/juan/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-nm OBJCOPY=/home/juan/CodeSourcery/Sourcery_G++_Lite/bin/arm-uclinuxeabi-objcopy all 
 +    
 +   why isn't CROSS_COMPILE variable recognized within linux/Makefile? 
 +    
 +====== Some links ====== 
 +our development kit:\\ 
 +http://www.standardics.nxp.com/products/lpc2000/lpc24xx/\\ 
 +http://www.embeddedartists.com/products/uclinux/oem_lpc2478.php
  
 +documentation from the Embedded Artists support page:
 +  * Embedded Artists Homepage
 +  * LPC2478_OEM_Board_Users_Guide-Version_1.0_Rev_D.pdf
 +  * Getting started with uClinux
  
  • ea_lpc2478.1315646358.txt.gz
  • Last modified: 15 years ago
  • by admin