天嵌 ARM开发社区

 找回密码
 注册
查看: 5004|回复: 6

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

[复制链接]
uyrfdcv 发表于 2010-12-11 19:59:23 | 显示全部楼层 |阅读模式
通过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/

评分

参与人数 1 +9 收起 理由
q598624337 + 9 6

查看全部评分

collonfan 发表于 2010-12-22 17:51:25 | 显示全部楼层
向楼主学习了
回复

使用道具 举报

jim229601 发表于 2011-3-28 22:37:47 | 显示全部楼层
链接下载测试源代码怎么打不开了
回复

使用道具 举报

我心永恒00 发表于 2012-3-10 21:46:37 | 显示全部楼层
楼主是说TQ2440的开发板U-boot有问题么?
回复

使用道具 举报

PIC16F54 发表于 2012-8-29 17:21:46 | 显示全部楼层
感觉很有道理。。。但是暂时还没学会怎么做。。。
回复

使用道具 举报

PIC16F54 发表于 2012-8-29 17:33:05 | 显示全部楼层
网上可以找到这个驱动,不知有没有效果,欢迎大家测试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

流浪的蝈蝈 发表于 2012-9-1 18:35:01 | 显示全部楼层
试试看,不知道有没有效果,很期待
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-8-15 18:28 , Processed in 2.056717 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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