这些日子断断续续的琢磨 u-boot 在RAM 中启动运行(因为还没试验过用debugger下载BOOT 到NAND上)。主要做了以下:
1. 在start.S 中,启动点亮LED0。(表示U-BOOT已经运行)
2. 解决串口打印乱码
其实是时钟设置有问题。CONFIG_SYS_CLK_FREQ = 12M。FL2440板子上的晶振是12MHz的。
3. 解决启动crash问题
在board_init_f()中加了
gd->ram_size = gd->bd->bi_dram[0].size;
不知道为什么U-BOOT把全局数据中的gd->bd->bi_dram[0].size的都初始化了,但后面代码中用的 gd->ram_size 一直是0。不知道是U-BOOT本身的Bug还是跟我的RAM IM RAM 有关。还要再研究。或者等到RUN FROM NAND的时候就明白了。