s5pv210调试过程

1.板子回来后第一块板子,烧写uboot到sd卡然后启动,串口输出No Boot Image,尝试各种方法找不到问题的所在。无奈之下换一块板子调试,同样烧写uboot到sd卡启动结果串口输出了uboot版本等信息。

此时做了一个实验,用两个sd卡一个1G一个4G。

1)用dd if=/dev/zero of=/dev/sdf bs=8192把两个卡都清空,启动时串口输出

No Boot Image

Uart negotiation error

inser on OTG...

2)在上一步的基础上写如bl1,启动时串口输出

No Boot Image

OK

由于此现象和第一块板子的现象相同,故猜测第一块板子bl1跑完了。

3)在2)的基础上再写入uboot.bin,启动时串口输出ubot的版本等信息

由此进一步猜测第一块板子bl1运行了,但是bl2没运行,原因未知。

2.uboot中start.S一般不会有问题,如果此处不能运行一般会是硬件电路出了问题。

3.多几块板子做交叉验证,交叉验证对软硬件调试都是一个很好的方法。

4.为什么系统运行跑到Calibrating delay loop...后过好久才能继续运行或者直接死在这里?

由于在system timer没有动或好一会儿才动,所以没产生时钟中断或过好一会儿system timer才动。

而对于s5pv210芯片system timer是与xrtcxti有关的,所以归根结底是由于rtc的晶震没震或者是过好一会儿才震动,导致system timer没动或过好一会儿才动。

所以导致jiffies数值一直没有变化或过一会儿才有变化,所以calibrate_delay函数里的死循环出不来或过一会儿才能出来,导致上面的现象。

在calibrate_delay函数(init/calibrate.c)中有一下代码:

146                 while ((loops_per_jiffy <<= 1) != 0) {
147                         /* wait for "start of" clock tick */
148                         ticks = jiffies;
149                         while (ticks == jiffies)
150                                 /* nothing */;
151                         /* Go .. */
152                         ticks = jiffies;
153                         __delay(loops_per_jiffy);
154                         ticks = jiffies - ticks;
155                         if (ticks)
156                                 break;
157                 }

如果jiffies不便的化149和150行的循环一直成立,知道jiffies有变化即system timer产生时钟中断。

5.硬件调试心得,板子刚打出来是首先确认供给cpu的晶震和电压工作正常,对每个有问题的外设首先要确定其clock正常,然后在查其他的pin脚。

6.system timer和rtc是不同的概念。system timer要产生时钟中断的。rtc是记录年月日的

7.sd不识别的问题

产生此问题的原因是三星s5pv210的bsp默认是把内部flash挂在为sdcard,但是内部flash并没有分出作为sdcard的分区,所以挂在不到sd卡。

解决办法是修改/system/etc/vold.fstabgu外部的tf卡作为sdcard

参考:http://www.linuxidc.com/Linux/2011-11/47136.htm

8.检测sd卡驱动是否ok的方法:

如果把sd卡插入设备,在 /dev/block/ 目录下面也会多出几个设备节点,证明sd卡的驱动已经成功加载。 我自己测试的目录下面会形成 mmcblk0  和 mmcblk0p1 节点,注意:这两个节点的意思,mmcblk0代表第一个SD卡设备,mmcblk0p1代表第一个SD卡设备的第一个分区。真正挂载到系统中的是mmcblk0p1而不是mmcblk0,这一点很重要。

9.inand和sd卡不识别的问题。

10.使用rda5876蓝牙芯片的过程中,发现第二批板子可以正常工作,第一次打出的板子蓝牙芯片无法正常工作,现象是有时能搜到其他设备,有时搜索不到,即使搜到的设备连接传输数据时,有时也会失败。问题是出在使用的晶振不同,导致蓝牙芯片有频偏,频偏正好处在临界点,故出现上述现象。换一个晶振或校准一下频偏就ok了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值