Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1481023
  • 博文数量: 108
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 997
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-29 09:58
个人简介

兴趣是坚持一件事永不衰竭的动力

文章分类

全部博文(108)

文章存档

2021年(1)

2020年(10)

2019年(19)

2018年(9)

2016年(23)

2015年(43)

2013年(3)

我的朋友

分类: 嵌入式

2013-07-27 18:44:39

原本只想学习一个linux开发的,当真正入手开发板后,发现linux内核需要引导程序,而开发板提供的bootloader源码却不公开,或者不通用,造成下载内核映象zImage后,没有任何输出,这时候弄得无所适从了,到底是内核问题,还是bootloader问题呢?开发板厂商的bootload没有源码,就是一个黑匣子,去怀疑它什么好呢,思来想去,还是决定,把uboot研究一下。这倒好,编译uboot后,写了Norflash后串口没有任何输出,这下麻烦大了,还要单步调试?是的,单步调试又涉及到更多的问题了,关于调试环境的安装,又是个麻烦问题,因为是学,百度了一大把,没一个写详的啊,因此,折腾了近一个月,才将uboot调试到有串口输出。好了,废话就到这里了,下面记录过程和上传源码。

1.  代码的移植,参考了网友的帖子,他的最简单,最清晰,在此谢过了

网址:http://blog.chinaunix.net/uid-24919665-id-435489.html

2.  在内存中调试

    1)为了能在内存中调试,将board/mini2440/u-boot.lds中第30

           . = 0x00000000;

           改为

    . = 0x33000000;

    说明:(1)mini2440文件夹是在第一步中创建的

             (2) 改为. = 0x33000000;的原是,便于直接下载u-boot.bin到内存中运行,以便调试,事实上,不改的话,使用arm-linux-gdb u-boot单步调试,虽然也是下载到内存中运行,但单步调试总是出问题,总是跑飞,这也是这种给点希望却又不给结果导致我u-boot调了一个月才调到有串口输出的原因

        2)现在编译,得到u-boot.bin

        3)打开J-link Commander (我是在win7下打开的)
       4)输入3条命令

    >Loadbin G:\u-boot.bin 0x33000000

    >setpc 0x33000000

    >g
                 

    第一条命令是将uboot下载到0x33000000开始的内存地址,需要等1分钟左右

    第二条命令是将pc指针 设为0x33000000 ,也就是uboot的第一指令地址

    第三条命令是开始从PC指针处全速执行

    

     好了,没有意外的话,应该会看到SecureCRT上字符输出了,如果有,恭喜你了,小功告成,入门了。注意这里只是调通了串口输出,可以看到,DRAM256是不对的,需要继续修改。


阅读(3910) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

dushuaihu2015-01-26 12:36:17

我也遇到你上面说的问题了,想问问你,为什么用使用arm-linux-gdb u-boot单步调试,虽然也是下载到内存中运行,但单步调试总是出问题,总是跑飞???我现在遇到的也是这种情况,百思不得其解???能否告诉我呢?315221790@qq.com 是我的邮箱 能否告诉我这是为什么老是跑飞??