Chinaunix首页 | 论坛 | 博客
  • 博客访问: 197952
  • 博文数量: 23
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 428
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-05 12:46
个人简介

博客转移至CU。之前的百度空间博客http://hi.baidu.com/williwill。

文章分类

全部博文(23)

文章存档

2014年(18)

2013年(5)

我的朋友

分类: 嵌入式

2014-03-07 22:56:01

  • 在纯linux环境下由于没有ADS工具,所以u-boot烧写到Nandflash会是一个问题。可以采用一个特殊的u-boot,我们可以通过JLink的GDBServer和GDB环境把这个u-boot load到内存中,之后在该u-boot中通过tftp加载移植的u-boot然后nand write到Nandflash中。这个特殊的u-boot一般通过已有功能正常的u-boot,加上SKIP_LOWLEVEL_INIT,屏蔽从Nandflash自举的代码来做。当然,也可以先在已经能在内存中运行的移植版本上实现网络和Nandflash驱动,来做这个u-boot。当然如果在windows环境下,有并口,用JTAG烧写Nandflash是很简单的事。

  • 较新版本的u-boot在u-boot.lds链接过程有所改动,有时需要把某个.o文件放在靠前地址,在lds文件加上后会出现重复定义的错误,这时可参考start.S所在目录的Makefile文件,参考此文件对需要提前的.o文件的选项进行修改(如extra-y := lowlevel_init.o)。

  • u-boot较新的版本对于启动部分改动较大,C的一部分(board_init_f)放在了Norflash中,对于S3C2440 4KB的stepstone来说,做到把跳转内存(board_init_r)之前的部分放进去有点困难。而我在移植过程中尝试直接跳转到内存中的board_init_f,最终以失败告终,PC跳转到内存中后就down掉了。而同样的CPU、DRAM初始化在2010.06版本能正常从Nandflash启动,这样看来可能在C环境堆栈设置上有问题。由于时间精力问题,这部分就暂不深究了,后面我会在2010.06版本上做后续移植工作,从Nandflash启动部分也是针对的此版本,稍后做个记录。
阅读(2144) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~