移植u-boot学习笔记4-----修改代码之建新板_时钟

我们用的是2440开发板,但在u-boot里面只有2410的board/samsung目录下只有smdk2410文件,没有发现2440.

1、创建新单板

(1)u-boot的修改

在u-bootu-boot目录下,切换到 board/samsung/目录

cd board/samsung/

新建smdk2440文件,并把smdk2410文件里的内容完全拷贝到smdk2440里面去。
cp smdk2410 smdk2440 -rf

切换到配置文件目录,每一种单板都有一个配置文件
cd ../../include/configs/

吧smdk2410.h拷贝为smdk2440.h
cp smdk2410.h smdk2440.h

配置u-boot出现错误


在u-boot源代码搜索smdk2410,头文件无需理会,boards.cfg文件还需要修改,修改65行。看文件的前面可知这些参数是什么意思,第一个参数是架构,


修改boards.cfg:
仿照
smdk2410  
                  arm         arm920t     -                   samsung        s3c24x0
添加:
smdk2440  
                  arm         arm920t     -                   samsung        s3c24x0

重新配置(用于mkconfig选择传入的参数)

make smdk2440_config  
编译

make
(2)烧写看结果
(3)调试(关心内存设置和CPU时钟)

a. 阅读代码发现不足:

UBOOT里先以60MHZ的时钟计算参数来设置内存控制器但是MPLL还未设置,仍以12M频率执行
   处理措施: 把MPLL的设置放到start.S里(参考自己写bootloader的时钟设置),取消board_early_init_f里对MPLL的设置



(4)验证MPLL未设置情况下SDRAM能否使用(用openjtag调试)

  编译出来的uboot非常大(400多K),先烧写主光盘里的u-boot.bin到nor,然后用这个uboot来烧写新的uboot


查看u-boot分区大小,下面大小是0x40000,换算成十进制是262K ,而需要烧写的u-boot大小是400多K,因而用命令烧写


接上usb_device那条线,打开dnw,

用usb 1 30000000命令下载,usb是指usb命令,1是指一直等待直到下载完,30000000是指下载到SDRAM的地址。然后用dnw下载

然后去掉nor flash的写保护


从0地址开始擦除,结束地址是7FFF,共擦除512K


从SDRAM 的3000,0000地址拷贝到nor flash的0地址,拷贝大小为512K 


烧写完毕后重启开发板

(5)出现 乱码(串口波特率)

查看串口波特率的设置,发现在get_HCLK里没有定义CONFIG_S3C2440

这里根据PCLK除以波特率得到某个系数,把这个系数reg写到串口控制器的寄存器里面就可以设置


    处理措施:include/configs/smdk2440.h: 去掉CONFIG_S3C2410
                                          #define CONFIG_S3C2440

发现错误后,想把某个文件去掉,是去看他的Makefile,根据Makefile就可以知道他依赖于哪一个宏,才能知道去把哪个宏注释掉。

如暂时不提供nand flash支持,因而不需要吧s3c2410_nand.c编进内核,因而要把CONFIG_NAND_S3C2410这个宏定义去掉,在u-boot中搜索可以看到


因为     CONFIG_NAND_S3C2410这个宏 是否被定义是CONFIG_NAND_S3C2410的宏被定义   ,因而 
   //#define CONFIG_CMD_NAND 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值