重新编译烧写u-boot试验,发现串口输出乱码,可能是串口波特率设置不正确
分析代码发现,串口初始化在初始化序列的中serial_init,这个函数调用drivers/serial/serial_s3c24x0.c中的serial_init_dev,最后在_serial_setbrg中设置波特率
reg = get_PCLK() / (16 * gd->baudrate) - 1;
writel(reg, &uart->ubrdiv);
for (i = 0; i < 100; i++)
在get_PCLK中调用到get_HCLK
在get_HCLK中发现CONFIG_S3C2440没有定义
解决办法:
1、通过下面命令可以找到CONFIG_S3C2410宏定义在include/configs/smdk2440.h
grep “CONFIG_S3C2410” * -nR
2、在include/configs/smdk2440.h中替换宏CONFIG_S3C2410为CONFIG_S3C2440
//#define CONFIG_S3C2410
#define CONFIG_S3C2440
上传修改后的文件,编译发现s3c2410_nand.c 72行出现错误
解决办法:在s3c2410_nand.c 中
1、所有struct s3c2410_nand改为struct s3c2440_nand
2、所有s3c2410_get_base_nand改为s3c2440_get_base_nand