ARM仿真器-foxICE 设为首页   |   加入收藏夹   |   网站地图         
  站内搜索:
 
http://www.foxice.net
最新下载_foxICE
ARM7TDMI R3内核
ARM7EJS内核
ARM946E-S内核
ARM966E-S内核
ARM9TDMI内核
ARM940T内核
ARM指令集速查卡
ARM925T内核(TI925T)

更多 >> 

 技术专栏RSS订阅

   首页>技术专栏>U-boot>U-boot移植日记(s3c44b0)

U-boot移植日记(s3c44b0)

上一页

点击下载

CFG_CMD_EEPROM| \
CFG_CMD_I 2C | \
CFG_CMD_FAT | \
CFG_CMD_JFFS2)
把 CFG_CMD_EEPROM 改成 CFG_CMD_FLASH 吧,虽然不改也是可以的,具体没考究。

以下是板上 env 参数设置,看一下吧,其实我觉得了解一下就行的了,只是一些初始设置值,以后可以用命令 setenv  saveenv 来修改的。
#define CONFIG_BOOTDELAY3                这个就是运行 bootcmd 之前的等待时间
#define CONFIG_BOOTARGS  "devfs=mount root=ramfs console=ttyS0,115200" 引导 uClinux 的时候传递的参数,不会就先不用管它也行。
#define CONFIG_ETHADDR00:50:c2:1e:af:fb    网卡的物理地址 MAC
#define CONFIG_NETMASK  255.255.255.0       掩码地址,设置过 ip 的人都应该知道吧
#define CONFIG_IPADDR   192.168.0.30          这是你板上网卡 8019 的 ip 地址
#define CONFIG_SERVERIP192.168.0.10       这是你宿主机的 ip 地址,以后用 tftp 下载的时候用到,一定要跟你的宿主机一致才行。
#define CONFIG_BOOTFILE"u-boot.bin"         这个就是你要下载文件的默认名字
#define CONFIG_BOOTCOMMAND"bootm 0x50000"    这是 bootdelay 后运行的命令

Miscellaneous configurable options 部分,参考一下吧:
#defineCFG_LONGHELP/* undef to save memory*/
#defineCFG_PROMPT"s 3c 44b0=>"    这是进入命令模式下的提示符,改个帅一点的吧
#defineCFG_CBSIZE256/* Console I/O Buffer Size*/
#defineCFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
#defineCFG_MAXARGS 100/* max number of command args*/
#define CFG_BARGSIZECFG_CBSIZE/* Boot Argument Buffer Size*/

#define CFG_MEMTEST_START    0x 0C 400000/* memtest works on*/
#define CFG_MEMTEST_END0x 0C 800000/* 4 ... 8 MB in DRAM*/
#undef  CFG_CLKS_IN_HZ/* everything, incl board info, in Hz */
#defineCFG_LOAD_ADDR0x 0c 008000 默认的下载地址
#defineCFG_HZ1000/* 1 kHz */
#define CFG_BAUDRATE_TABLE  { 9600, 19200, 38400, 57600, 115200 } 可供选择的波特率

Physical Memory Map 部分,比较重要,修改你的 sdram 和 flash 的地址和容量。
#define CONFIG_NR_DRAM_BANKS1    我们只占用了一个 Bank 用来映射 sdram
#define PHYS_SDRAM_10x 0c 000000     sdram 的起始地址
#define PHYS_SDRAM_1_SIZE0x00800000     sdram 的容量( 8M )
#define PHYS_FLASH_10x00000000     flash 的起始地址
#define PHYS_FLASH_SIZEflash 的容量( 2M )
#define CFG_FLASH_BASEPHYS_FLASH_1    定义多个名字而已,其它地方会用到

FLASH organization 部分,看注释应该知道了吧,参考一下:
#define CFG_FLASH_ERASE_TOUT4120000/* Timeout for Flash Erase (in ms)*/
#define CFG_FLASH_WRITE_TOUT4000/* Timeout for Flash Write (in ms)*/

按着来一步步的做应该不难,这里提一下 vi 程序的用法,其实在 google 一搜就找到了,不过为了方便大家,还是说一声吧,
在命令模式下:
按 / xxx 再回车即可搜索到你所需要的内容( xxx ),再按 n 搜索下一个,按 shift+n 搜索上一个
按 :xxx 即可跟到你想要的行
按 :set nu 显示行号
其它查书都可以找到就不说了。

做到这个时候,你可以再编译一下,看有没有错,这一步我就没有帮你们做了,不过我觉得应该不会有问题吧,下载到 ram 中运行,看看效果。

7 )终于到了 flash 的设置部分了,这完全是我个人悟出来的,网上资料好像讲得不是先清楚。
首先介绍一下 flash 的识别吧,每块 flash 都有一个 id ,前部分用来说明生产厂家,后部分用来说明它的容量,类型,位数等。它们的定义是在 u-boot-1.1.2/include/flash.h 中,就以我的 ssts9vf1601 为例:
#define SST_MANUFACT0x00BF00BF   这是生产厂家 id
#define SST_ID_xF16010x234B234B   这是它的型号,容量,位数等 id
#define FLASH_SST 160A 0x0046       这个我还说不清楚,有个要注意的问题是像 sst160 是不能用奇地址的,我做的过程中是把 SST 160A 改成 SST1601 的,懒得帮它创一个
好了,相信你已经找到你的板上所用的 flash 对应的 id 号了吧?现在就来谈谈怎么改。
先进入 u-boot-1.1.2/board/myboards 3c 44b0/common/flash.c
它里面已经帮 SST 160A 设置好了,我的做法是把 SST 公司的 160A 都改成 1601 ,是不是很简单,当然你也可以帮 1601 再写一分,但是我是个懒人,所以我就样做了 ^_^

到这里还有个问题没提到的,就是如果你重新用 setenv saveenv 设置了参数,但是复位后会发现怎么没有保存到的(不信你试试看)。其实我是故意留到这里讲的,应该它不会报错,可以说是比较隐秘的问题,所以我故意放到这里来说,以引起你的重视。
解决方法: vi u-boot-1.1.2/board/myboard/common/flash.c
找到这个函数: write_buff
里面有这句话: #ifdef CONFIG_B2
要把 B2 改了,因为我们的板不叫 B2 ,那叫什么呢?原来是在这里定义的: u-boot-1.1.2/include/configs/myboards 3c 44b0.h
里面有这句话: #define CONFIG_HFRK 你不喜欢 HFRK 这个名字也行,可以改成别的名字,只不过相应地前面的 B2 也要改成这个名字而已。

4. 后记:
   本来是想刚做好的时候写的,但是后来发现有些功能实现不了,所以就停住了笔,等我搞好了以后,又急着去学习 uClinux 的移植,真的很忙,现在终于 抽空把它写完。虽然有些地方还没说清楚(毕竟我对它的了解还不是很深,但我相信在我以后移植系统的过程中会逐步加深对它的了解),我还是希望它能成为最详 尽的 u-boot 移植新手指导,对 u-boot 移植的初学者起到实质性的作用,这样就不枉我花了这么多的心思来写这个文档。

参考资料:
http://blog.21ic.com/more.htm?name=sockit&id=8509
我所认为的最有奉献精神,写得最详细的记录,在此表示我深深的敬意!

上一页 页首

立即下载:
点击下载
相关文档
U-Boot在44B0X开发板上的移植以及代码分析
uboot移植到S3C44B0X开发板的经历
S3C44B0\U-Boot的启动流程及移植
U-Boot在S3C2410上的移植
uboot在ARM s3c2410上移植过程
VxWorks 的bootrom 到u-boot 的移植心得
嵌入式系统中U-Boot基本特点及其移植方法
下载说明:
  1. 未经本站明确许可,任何网站不得非法盗链及抄袭本站资源!
 

 


首页 | 产品介绍 | 技术支持 | 下载中心 | 技术专栏 | 关于我们 | 联系我们
电话:86-755-82798083   82796301   传真:86-755-82799007    Email:sales@foxice.net   sales6@foxice.net
在线咨询:QQ:346466907   MSN:sales6@foxice.net   ini3000@msn.com

© 2006 Foxice.net 版权所有