搜索
bottom↓
回复: 39

u-boot和uClinux(基于s3c44b0x)

[复制链接]

出0入0汤圆

发表于 2008-4-27 16:15:38 | 显示全部楼层 |阅读模式
一直对嵌入式操作系统感兴趣,几个月前移植了uc/os-II,感觉不过瘾,去海淀中发二楼买了块44b0的开发板,板子不错,核心板4层,先赞一个^_^
板子带有bootloader,但是感觉u-boot功能强大,所以决心移植,下面说一下u-boot-1.1.4的注意事项:
1、我的nor flash是sst39vf1601,为了擦写方便,配置成32个sector,每个sector大小为64k,共2M大小,网上有的移植笔记配置成512个sector,但是每个sector还是64k,汗!!!执行显示flash命令flinfo(fl)的时候会导致系统崩溃。
2、移植网卡的时候,大多的44bx板都是rtl8019 我的是cs8900,注意地址偏移量,和baseaddr,我的8900接在ngcs3上,所以地址是0x06000000,至于是6000000还是6000300,其实都一样(个人感觉,因为都能ping通),但是执行ping以后,用md命令看网卡的id号是在6000000,所以我用的是6000000,还有,要用16bit。
3、环境变量要设置在flash(默认是eeprom)
4、cpu/s3c44b0/start.s中断向量表修改,网上有现成的,拿来就用没有问题
5、最重要的,也是我费时最长的就是入口地址的修改,lowlevel_int.S,配置bank,我网上的都不能发现我的cs8900,只能根据开发板光盘例程里的改了,才好的,这里不列出我的了,免的误导大家,只要看厂家给的例程就行了。
以上就是uboot的移植,网上资料不少,但没有没错的,我就算做个补充吧。


(原文件名:uboot.JPG)

接下来是uClinux的移植,网上文章一大片,但仔细一看其实都是差不多的,真正原创的很少,2.6以上要自己编写串口控制台的驱动,比较麻烦,所以先从2.4开始。我用的uClinux-dist-20040408.tar.gz和uClinux-20040408-ARMSYS.patch
一开始解压源码、打补丁什么的就不说了,太多了。我说一下关键的地方:
1、按照http://blog.21ic.com/user1/738/archives/2006/18153.html来基本没问题,但是找不到网卡。
2、网卡问题,我的8900要自己添加驱动cs8900a。c放到driver/net文件夹,修改ne.c中ne2000的基址为自己的0x6000000 。make menuconfig的时候选网络设备的时候要选三项 cs8900 ne2000 16bit
修改后,cs8900正常工作

(原文件名:cs8900.JPG)


(原文件名:ping.JPG)

3、Sash command shell 功能太弱,换busybox,Busybox中集成进去的Shell有以下几个。
  ①Lash:很小,加起来有10k,非常适合执行命令,支持管道和重定向,但不支持Bourne Shell语法,无法解释脚本。
  ②Hush:也非常小, 18k左右,支持Bourne Shell语法,能够很好地处理if/then/else/fi结构语句,但是处理不了像for/do/done或者case/esac等循环语  句。
  ③Msh:加起来有30k左右,能够处理for/do/done、case/esac等循环语句。只要是Bourne shell能够做的,Msh一般都能做到,它的语法与Bourne Shell语法可能不完全相同,但大多数Bourne Shell语法都能被Msh解释。Msh是用vfork来创建新进程的,所以适于uClinux操作系统。
  ④Ash:在默认配置下大约有60k左右,是Busybox里最完整的Shell,但无法在uClinux 上编译通过。
综上所述,Busybox里的Msh是目前uClinux下最好的Shell。


(原文件名:uClinux(busybox).jpg)

最后的运行过程




Welcome To XW World!

U-Boot 1.1.4 (Apr 24 2008 - 17:54:43)

U-Boot code: 0C700000 -> 0C71A1E8  BSS: -> 0C71E33C

RAM Configuration:

Bank #0: 0c000000  8 MB

NOR Flash:  2 MB

In:    serial

Out:   serial

Err:   serial

CS8900 Ethernet chip ID:630E

Hit any key to stop autoboot:  0

## Booting image at 00040000 ...

   Image Name:   XW-uClinux-2.4.24-uc0

   Created:      2008-04-27  14:18:38 UTC

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    1063372 Bytes =  1 MB

   Load Address: 0c300000

   Entry Point:  0c300040

   Verifying Checksum ... OK

OK


Starting kernel ...


Uncompressing Linux........................................................................ done, booting the kernel.

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/)) #33 日 4月 27 22:15:28 CST 2008
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/ram0 console=ttyS0,115200
Console: colour dummy device 80x30
Calibrating delay loop... 23.85 BogoMIPS
Memory: 8MB = 8MB total
Memory: 5700KB available (2049K code, 243K data, 60K 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
NTFS driver v1.1.22 [Flags: R/O]
LCD buffer : 0c2d0000
fbcon_setup: No support for fontwidth 8
fbcon_setup: type 0 (aux 0, depth 0) not supported
Console: switching to colour frame buffer device 80x30
pty: 256 Unix98 ptys configured
Samsung S3C44B0X UART driver version 0.1 <thomas.eschenbacher@sympat.de>
ttyS0 (irq = 3) is a builtin Samsung S3C44B0X UART
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: C12F958-C217557 [VIRTUAL C12F958-C217557] (RO)
RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
eth0: cs8900 rev K(3.3 Volts) found at 0x6000000
cs89x0 media RJ-45, IRQ 23
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
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: 60K
Welcome to
          ____ _  _
         /  __| ||_|                 
    _   _| |  | | _ ____  _   _  _  _
   | | | | |  | || |  _ \| | | |\ \/ /
   | |_| | |__| || | | | | |_| |/    \
   |  ___\____|_||_|_| |_|\____|\_/\_/
   | |
   |_|

For further information check:
http://www.uclinux.org/
XW_powered <genuinetata@163.com>



BusyBox v0.60.5 (2008.04.27-14:13+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

# ls -F
bin/  dev/  etc/  home/ lib/  mnt/  proc/ sbin@ tmp@  usr/  var/
#

以上是本人最近学习linux的心得,希望老鸟多加指点,给咱们想学嵌入式的人一些帮助

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2008-4-27 16:19:21 | 显示全部楼层
补充一点,u-boot的运行地址最好设到内存的高端,默认是c100000,下载的默认地址是c008000,所以下载大文件会冲突

出0入0汤圆

发表于 2008-4-27 16:30:11 | 显示全部楼层
顶楼主。

一直以来都是玩PC机上的Linux,最近下了一个16G的ARM-Linux教程,才发现原来嵌入式Linux更好玩。

出0入0汤圆

 楼主| 发表于 2008-4-27 16:32:01 | 显示全部楼层
pc上的不是不好玩是太复杂,光驱动就能难倒一大片人,嵌入式的linux移植性比较强,相对简单。

出0入22汤圆

发表于 2008-4-27 17:58:33 | 显示全部楼层

出0入0汤圆

发表于 2008-4-27 19:08:21 | 显示全部楼层
问下楼主uboot可以移植到任何arm核心的处理器上面么?

出0入0汤圆

 楼主| 发表于 2008-4-28 08:16:47 | 显示全部楼层
回楼上 s64什么的估计不行 因为44b0的uboot编译完有100多k

出0入0汤圆

发表于 2008-5-18 21:20:14 | 显示全部楼层
今天把uboot-1.3.1移植成功了。
过两天上我的uboot移植笔记。

出0入42汤圆

发表于 2008-5-18 21:23:07 | 显示全部楼层
我正想把U-boot移植到LPC2200 ARM上

出0入0汤圆

发表于 2008-6-8 22:14:49 | 显示全部楼层
感谢楼主,楼主的博客是个好地方,已收藏!

出0入0汤圆

发表于 2008-6-12 18:09:06 | 显示全部楼层
嵌入式Linux最有趣的地方可能是可以调试操作系统的启动代码了,这在PC上通常是很困难的,不然,谁调试一个XP来看看。

出0入0汤圆

 楼主| 发表于 2008-7-8 11:32:24 | 显示全部楼层
谢谢楼上几位的支持,我只是看到网上移植的文章不少,但是没有几个原创的,所以把我的经验分享分享

出0入0汤圆

发表于 2009-1-12 14:48:55 | 显示全部楼层
2楼的仁兄,在那下载的视频,能否给个链接?

出0入0汤圆

发表于 2009-7-29 11:33:15 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:34:08 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:38:17 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:40:31 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:43:19 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:45:33 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:48:22 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:50:35 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:53:24 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:55:38 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 11:58:26 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 12:00:40 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 12:03:28 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 12:05:42 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-7-29 12:08:30 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-8-4 21:48:53 | 显示全部楼层
标记一个

出0入4汤圆

发表于 2009-8-4 22:06:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-27 23:12:53 | 显示全部楼层
赞一个。。。

出0入0汤圆

发表于 2010-1-8 18:00:58 | 显示全部楼层
强人!

出0入0汤圆

发表于 2010-8-15 17:03:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-30 08:42:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-3 22:05:40 | 显示全部楼层
学习学习啦

出0入0汤圆

发表于 2010-10-18 22:52:46 | 显示全部楼层
学习了

出0入0汤圆

发表于 2010-10-18 23:47:58 | 显示全部楼层
可不可以在虚拟机上玩?

出0入0汤圆

发表于 2011-7-5 14:05:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-31 22:11:56 | 显示全部楼层
收藏

出0入0汤圆

发表于 2012-1-19 14:42:46 | 显示全部楼层
刚刚申请账号。。。认真学习丫。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 19:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表