天嵌 ARM开发社区

 找回密码
 注册
查看: 2576|回复: 5

u-boot,Windows下使用DNW下载文件时容易蓝屏原因及解决方法

[复制链接]
uyrfdcv 发表于 2010-12-13 09:30:25 | 显示全部楼层 |阅读模式
通过u-boot下载文件时,使用Windows下DNW软件,一不小心电脑就会蓝屏。一般认为是Windows USB驱动的问题,其实最主要的原因还是u-boot程序的问题。

电脑蓝屏的原因就是Windows USB驱动碰到了无法处理的异常情况,比如u-boot在写nand flash时是无法接收从USB传送过来的数据的,这时如果用户使用DNW通过USB往开发板烧写镜像时,DNW就会卡在那里,一般这种情况下复位开发板电脑就可能出现蓝屏,因为Windows USB驱动不知道该如何处理这种异常情况。

下面谈谈解决方法:

Windows USB驱动碰到了无法处理的异常情况导致电脑蓝屏是Windows内核的一种自我保护方式,在linux操作系统上就不会出现这种情况。当然放弃Windows而转向linux肯定不是最好的解决方法。

所以最好的解决方法之一就是修改u-boot,根据USB2.0协议,当USB Device无法处理USB Host发送过来的数据包时就应该发送一个stall数据包以作为回应,而u-boot显然没有这么做,结果Windows就不知道该怎么办了,然后一急之下就蓝屏了。

当然我并不是仅仅只经过理论分析就马上作出上面的结论,而是通过实验验证的。我将u-boot移植到ADS1.2下,并修改了USB驱动部分,当设备忙或其它原因而无法处理USB Host发送过来的数据包时就发送一个stall数据包以作为回应。结果之前经常出现的蓝屏问题就再也没有出现了。

我是在S3C2440开发板下进行测试的,读者可以点击下面的链接下载测试源代码来进行验证:

http://www.multisilicon.com/ml/bootloader/
cmasp 发表于 2010-12-13 11:59:26 | 显示全部楼层
不错的贴子,支持一下!
天嵌_support1 发表于 2010-12-13 15:54:06 | 显示全部楼层
1# uyrfdcv


我下载不了捏......
 楼主| uyrfdcv 发表于 2010-12-13 18:29:38 | 显示全部楼层
3# embedsky_lxt
我自己又测试了一遍,下载是没问题的。我QQ是152610778,如果还是下不了,请回复我,我发到你邮箱。谢谢
yuzhigen1 发表于 2011-2-3 09:56:15 | 显示全部楼层
下不了哦  yuzhigen1@163.com 谢谢了
我心永恒00 发表于 2012-3-10 21:47:52 | 显示全部楼层
楼主上面的修改是针对TQ2440开发板的么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-5 18:26 , Processed in 1.026407 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表