基于uClinux内核移植ARM开发板应用
k-elf-tools/arm-elf-tools-20030314.sh
将arm-elf-tools-20030314.sh拷贝到根目录,运行安装:
sh arm-elf-tools-20030314.sh
5.2内核配置
下面就可以开始配置uClinux的内核和用户选项了。打开终端。
# cd /home/uClinux-dist
# make
menuconfig
进入uClinux配置(uClinux v3.1.0 Configuration),选中“Kernel/Library/Defaults
Selectionà”敲空格进入。其中有两个选项:定制内核设置和定制用户选项设置:
[*] Customize Kernel Settings
[
] Customize Vendor/User Settings
选中定制内核设置选项,按下ESC键退出,在询问是否保存时,选择Yes并回车。
终端将首先进入内核配置选单。我们在配置uClinux内核时,就可以通过对这些选项的选择和取消选择来设定内核所具有的功能项。这也是裁减uClinux内核的基本方法。
每个选项都对应着一个宏定义,make
menuconfig执行结束后,自动将配置结果保存为.config文件,将前一次的配置结果备份为.config.old文件。
读者可到http://www.hzlitai.com.cn/download/linux/8019/kernelconfig_eth
处下载内核配置文件(其中包括对网卡驱动的配置),读者可对照进行配置。
5.3交叉编译
按下面的步骤对uClinux源码包进行编译:
# make dep
# make clean (非必要)
# make
lib_only
# make user_only
# make romfs
# make image
#
make
初次移植时,在make
lib_only到make这5步编译过程中很可能产生错误,无法继续下去。如果产生了错误,可以尝试根据报告的错误内容修改一下源程序,这一过程将有助于你熟悉uClinux内核源程序的结构,或者可以跟我们联系
Support@hzlitai.com.cn
。
交叉编译成功后,在 uClinux-dist/目录下产生images目录,其中包含的3个文件:image.ram,
image.rom和romfs.img就是我们可以使用的二进制文件。参考《uClinux的移植包在ARMSYS上的使用说明》的方法,下载或烧录这些二进制文件,并启动运行uClinux。
6.启动信息
正确启动信息的例子如下:
Linux version 2.4.24-uc0 (root@localhost) (gcc
version 2.95.3 20010315
(release)(ColdFire patches - 20010318 from http://fiddes
.net/coldfire/)(uClinux XIP and shared
lib patches from http://www.snapgear.com/
)) #165 五 10月 8
20:04:10 CST 2004
Processor: Samsung S3C44B0X revision 0
Architecture:
S3C44B0X
On node 0 totalpages: 2048
zone(0): 0 pages.
zone(1): 2048
pages.
zone(2): 0 pages.
Kernel command line: root=/dev/rom0
init=/linuxrc
Calibrating delay loop... 31.84 BogoMIPS
Memory: 8MB = 8MB
total
Memory: 6592KB available (1270K code, 155K data, 40K init)
Dentry
cache hash table entries: 1024 (order: 1, 8192 bytes)
Inode cache hash table
entries: 512 (order: 0, 4096 bytes)
Mount cache hash table entries: 512
(order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096
bytes)
Page-cache hash table entries: 2048 (order: 1, 8192 bytes)
POSIX
conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon
Swansea University Computer Society NET3.039
Initializing RT netlink
socket
Starting kswapd
ttyS0 at I/O 0x1d00000 (irq = 3) is a
S3C44B0
ttyS1 at I/O 0x1d04000 (irq = 2) is a S3C44B0
ne.c:v1.10 9/23/94
Donald Becker (becker@scyld.com)
Last
modified Nov 1, 2000 by Paul Gortmaker
NE*000 ethercard probe at 0x8000000:
00 00 e8 12 34 56
eth0: NE1000 found at 0x8000000, using IRQ 22
Blkmem
copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth
Albanowski
Blkmem 1 disk images:
0: C400000-C47CBFF [VIRTUAL
C400000-C47CBFF] (RO)
RAMDISK driver initialized: 16 RAM disks of 1024K size
1024 blocksize
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: IC
IP:
routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured
(established 512 bind 512)
VFS: Mounted root (romfs filesystem)
readonly.
Freeing init memory: 40K
Shell invoked to run file:
/etc/rc
Command: hostname Samsung
Command: /bin/expand /etc/ramfs.img
/dev/ram0
Command: mount -t proc proc /proc
Command: mount -t ext2
/dev/ram0 /var
Command: mkdir /var/config
Command: mkdir
/var/tmp
Command: mkdir /var/log
Command: mkdir /var/run
Command: mkdir
/var/lock
Command: cat /etc/motd
Welcome to
____ _ _
/
开发 应用 ARM 移植 uClinux 内核 基于 相关文章:
- 嵌入式软件设计中查找缺陷的几个技巧(03-06)
- 基于算法的DSP硬件结构分析(04-02)
- Windows CE下驱动程序开发基础(04-10)
- DSP+FPGA在高速高精运动控制器中的应用(05-17)
- 基于USB接口和DSP的飞机防滑刹车测试系统设计(05-19)
- 一种基于DSP平台的快速H.264编码算法的设计(05-19)