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

cmd编译c Bootloader之uBoot简介(转)(17)

电脑杂谈  发布时间:2018-02-07 21:23:30  来源:网络整理

对于其他BANK,比如网卡芯片CS8900所在的BANK2,原来的设置刚好匹配,无需更改;而对于BANK1、2、4、5、7,在U-Boot中并没有使用到它们外接的设备,也不需要理会。

(3)增加对S3C2440的支持。

S3C2440是S3C2410的改进版,它们的操作基本相似。不过在系统时钟的设置、

NAND

Flash控制器的操作等方面,有一些小差别。它们的MPLL、UPLL计算公式不一样,FCLK、HCLK和PCLK的分频化设置也不一样,这在下面的

代码中可以看到。NAND Flash控制器的差别在增加对NAND Flash的支持时讲述。

本章的目标是令同一个U-Boot二进制代码既可以在S3C2410上运行,也可以在

S3C2440上运行。首先需要在代码中自动识别是S3C2410还是S3C2440,这可以通过读取GSTATUS1寄存器的值来分

辨:0x32410000表示S3C2410,0x32410002表示S3C2410A,0x32440000表示

S3C2440,0x32440001表示S3C2440A。S3C2410和S3C2410A、S3C2440和S3C2440A,对本书来说没有区

别。

对于S3C2410开发板,将FCLK设为200MHz,分频比为

FCLK:HCLK:PCLK=1:2:4;对于S3C2440开发板,将FCLK设为400MHz,分频比为

FCLK:HCLK:PCLK=1:4:8。还将UPLL设为48MHz,即UCLK为48MHz,以在内核中支持USB控制器。

首先修改board/100ask24x0/100ask24x0.c中的board_init函数,下面是修改后的代码:

33 /* S3C2440: MPLL = (2*m * Fin) / (p * 2^s), UPLL = (m * Fin) / (p * 2^s)

34 * m = M (the value for divider M)+ 8, p = P (the value for divider P) + 2

35 */

36 #define S3C2440_MPLL_400MHZ ((0x5c<<12)|(0x01<<4)|(0x01))

37 #define S3C2440_UPLL_48MHZ ((0x38<<12)|(0x02<<4)|(0x02))

38 #define S3C2440_CLKDIV 0x05 /* FCLK:HCLK:PCLK = 1:4:8, UCLK = UPLL */

39

40 /* S3C2410: Mpll,Upll = (m * Fin) / (p * 2^s)

41 * m = M (the value for divider M)+ 8, p = P (the value for divider P) + 2

42 */

43 #define S3C2410_MPLL_200MHZ ((0x5c<<12)|(0x04<<4)|(0x00))

44 #define S3C2410_UPLL_48MHZ ((0x28<<12)|(0x01<<4)|(0x02))

45 #define S3C2410_CLKDIV 0x03 /* FCLK:HCLK:PCLK = 1:2:4 */

46

上面几行针对S3C2410、S3C2440分别定义了MPLL、UPLL寄存器的值。开发

板输入时钟为12MHz(这在include/configs/100ask24x0.h中的宏CONFIG_SYS_CLK_FREQ中定义),读者可


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

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

    • 阴玲枝
      阴玲枝

      行贿最多的就是浙商

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