b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

文件系统转换 Bootloader之uBoot简介(转)(16)

电脑杂谈  发布时间:2018-02-07 22:32:44  来源:网络整理

BANK6外接两片容量为32MB、位宽为16的SDRAM芯片K4S561632,组成容量为64MB、位宽为32的内存

通过NAND Flash控制器外接容量为64MB,位宽为8的NAND Flash芯片K9S1208

对于NOR Flash和NAND

Flash,如图15.4所示划分它们的使用区域。由于NAND

Flash的“位反转”现象比较常见,为保证数据的正确,在读写数据时需要使用ECC较验。另外,NAND

Flash在使用过程中、运输过程中还有可能出现坏块。所以本书选择在NOR Flash中保存U-Boot,在NAND

Flash中保存内核和文件系统,并在使用U-Boot烧写内核、文件系统时,进行坏块检查、ECC较验。这样,即使NAND

Flash出现坏块导致内核或文件系统不能使用,也可以通过NOR Flash中的U-Boot来重新烧写。 [[Image:]]

图15.4 开发板固态存储器分区划分

smdk2410开发板已经支持NOR

Flash芯片AM29LV800,U-Boot本身也已经支持jffs2文件系统映像的烧写。下面一步一步移植U-Boot(所有的修改都在补丁文件

u-boot-1.1.6_100ask24x0.patch里,读者可以直接打补丁),增加如下新功能:

同时支持本书使用的S3C2410和S3C2440开发板

支持串口xmodem协议

支持网卡芯片CS8900

支持NAND Flash读写

支持烧写yaffs文件系统映像

1. 同时支持S3C2410和S3C2440

我们将在开发板smdk2410的基础上进行移植。

(1)新建一个开发板的相应目录和文件。

为了不破坏原来的代码,在board目录下将smdk2410复制为100ask24x0目录,并将board/100ask24x0/smdk2410.c改名为100ask24x0.c。

根据前面描述的配置过程可知,还要在include/configs目录下建立一个配置文件100ask24x0.h,可以将include/configs/smdk2410.h直接复制为100ask24x0.h。

还要修改两个Makefile,首先在顶层Makefile中增加如下两行:

100ask24x0_config:unconfig

@$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0

然后在board/100ask24x0/Makefile中,如下修改(因为前面将smdk2410.c文件改名为100ask24x0.c了):

COBJS:= smdk2410.o flash.o

改为:

COBJS:= 100ask24x0.o flash.o

(2)修改SDRAM的配置。

SDRAM的初始化在U-Boot的第一阶段完成,就是在board/100ask24x0/lowlevel_init.S文件中设置存储控制器。

检查一下BANK6的设置:位宽为32——宏B6_BWSCON刚好为DW32(表示32位),无需改变;另外还要根据HCLK设置SDRAM的刷新参数,主要是REFCNT寄存器。

本书所用开发板的HCLK都设为100MHz,需要根据SDRAM芯片的具体参数重新计算REFCNT寄存器的值(请参考第6章)。代码修改如下:

126 #define REFCNT 1113/* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */

改为

126 #define REFCNT 0x4f4/* period=7.8125us, HCLK=100Mhz, (2048+1-7.8125*100) */


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66092-16.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...