This document provides instructions for setting up and running a uClinux system on an ARM Cortex-M3 based LPC1788 board. It describes downloading files from a TFTP server using U-Boot, compiling the uClinux kernel and BusyBox tools, and booting the system from an SD card using U-Boot. The uClinux files are extracted and compiled after configuring the kernel and BusyBox. The resulting uImage file is copied to the SD card to boot the Linux system.
3. What basically a embedded system
is?
Embedded systems
are computers that
is built into
Devices e.g
4. Contents
LPC1788
The data on the card
Serial Console
Basics of boot loader U-Boot
Boot from SD
Booting via TFTP server
Recompile uCLinux
5. Specification
Data at a Glance:
ARM7 CPU LPC1788 (ARM7TDMI-S, little
endian).
3.5 inch T FT-called RM with back light and
touchscreen
(320x240 pixels)
MP3 decoder
64 MB SDRAM
512 KB on-chip flash
Location for SD / MMC card.
6.
7. DB-9 Connector(UART)
The 9-pin D-sub connector series is as
FOLLOWS:
1 - Frame ground (N / U)
2 - Rx Data
3 - Tx Data
4 - DTR
5 - Signal Ground
6 - DSR
8. u-boot
->The Universal Boot Loader, is a GPL'ed cross-platform boot
loader shepherded by project leader Wolfgang Denk.
→?U-Boot supports for hundreds of embedded boards and a wide
variety of CPUs including PowerPC, ARM, MIPS, NIOS, and x86
...etc.
->You can easily configure U-Boot to strike the right balance
between a rich feature set and a small binary footprint.
->Using U-Boot to take care of the low-level board initializations,
allowing you to focus on the core of your embedded application.
->If the need arises, however, you have the source code, and can
add support for new hardware or add a special feature in U-
9. u-boot
Boot loader :Das U-Boot (U-Boot).
U-boot has the ability to communicate via serial port to the host development
platform.
users commits serial console ̊ which
communicates with 115200 bps, 8 data bits, no parity.
Connect the serial port and start e.g Kermit or mini com.
example:
micocom -B 115200 / dev/ttyUSB0
U-Boot has a timeout for ̊ 3 seconds as Standard.
Press any key before that to enter u-boot prompt .
All Settings SETTINGS including timeout stored in u-boot variables.
Type printenv to show all enviornment variable.
10.
b o o t a r g s=r o o t =/d e v / ram i n i t r d
=0xa0800000 , 4 0 0 0 k c o n s o l e=t t y S 0 ,
1 1 5 2 0 0 N8
bootcmd=r u n u s b b o o t
b o o t d e l a y =3
b a u d r a t e =115200
t f t p b o o t=t f t p b o o t a0008000 l i n u x . b i
n ; t f t p b o o t a1800000 r o m f s . b i n ; go
a0008000
n a n d b o o t=nand r e a d 0 x a 0 0 0 8 0 0 0 0
11. U-boot prompt
U-Boot 2010.03-linux-cortexm-1.3.0 (Dec 06 2011
- 17:19:37)
CPU : LPC178x/7x series (Cortex-M3)
Freqs:
SYSTICK=108MHz,EMCCLK=54MHz,PCLK=54
MHz
Board: EA-LPC1788 rev 1
DRAM: 32 MB
Flash: 4 MB
*** Warning - bad CRC, using default environment
12. TFTP SERVER
tftpboot [load address] [[hostIPaddr:] boot
filename] loads a file(boot file) from a tftp server with the
boot name specified to memory address.
example:
tftpboot 0xa0008000 192.168.0.1 :/ linuxinstall/olimex/vmlinux.bin
go addr [arg ...] - k r is available on ̊ memory
address.
example:
13. TFTP SERVER
run was [...] - K R commands in the variable
var.
example:
The variable tftp boot controller FOLLOWS:
tftpboot 0xa0800000 192.168.0.1 :/ linuxinstall/olimex/romfs 5.img
tftpboot 0xa0008000
192.168.0.1 :/ linux-install/olimex/vmlinux.bin;
go a0008000
run tftp boot
14. Uclinux Compilation
FOLLOWS describes how to compile the
uClinux...
(busybox, kernel, etc).
The complete package is linux-cortexm1.6.0.tar.bz.
Unatar it to /opt
cd /opt
Type tar -xvf linux-cortexm-1.6.0.tar.bz.
15.
Cd linux-cortexm-1.6.0 .
Activate all the toolchains and enviornment variable by
using predefiened script ACTIVATE.sh.
Go to projects directory and go inside any project.
Then type make clone new = projectname .
Now type cd .. & cd projectname.
Now type make kmenuconfig utility to configure kernel and
make bmenuconfig to configure busybox.
18. Make
After selecting all the option just type make .
It will produce the projectname.uImage kernel compilation file in the
same directory.
Rename it to uImage and copy it to sd card.
Command to copy
cp /opt/linux-cortexm-1.6.0/projects/projectname/UImage.
/media/sdcard.
Then put the sd card in sd card slot.
It will boot the linux kernel by the help of u-boot.