直接烧写stepldr和eboot后,发现可以启动,但调试串口输出的都是乱码,即使修改了波特率也不行。原因是开发板使用的晶振是12MHz,而SMDK2440使用的是16.9344MHz的晶振,需要修改启动代码中PLL的配置。

1  打开S3C2440 datasheet的《CLOCK & POWER MANAGEMENT》一章,找到PLL VALUE SELECTION TABLE,需要根据此表的参数配置PLL。

2  打开PLATFORM\SMDK2440A\src\bootloader\eboot\startup.s文件,修改MPLLCON和UPLLCON:

  1.  ;PLLVAL      EQU     (((0x6e << 12) + (0x3 << 4) + 0x1))
  2.  PLLVAL      EQU     (((0x7f << 12) + (0x2 << 4) + 0x1))
  3.  …
  4.  ldr     r0, = UPLLCON
  5.  ;ldr     r1, = ((0x3c << 12) + (0x4 << 4) + 0x2)  ;Fin=16.9344MHz, Fout=47.98MHz
  6.  ldr     r1, = ((0x38 << 12) + (0x2 << 4) + 0x2) ; Fin=12MHz, Fout=48MHz
  7.  str     r1, [r0]

3  修改PLATFORM\SMDK2440A\Src\Inc\bsp_cfg.h头文件:

  1. //#define S3C2440A_FCLK    399651840       // 399.65MHz
  2. #define S3C2440A_FCLK  405000000           // 405MHz

4  打开PLATFORM\SMDK2440A\Src\Kernel\Oal\startup.s文件,将MPLLCON和UPLLCON修改成与步骤2一样的值。

posted on 2009-02-03 23:54  陈广强  阅读(290)  评论(0编辑  收藏  举报