6867|16

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教USBH问题 [复制链接]

我这两天在跟踪此问题,发现有几个不明白的地方,贴在这里请教大家.
第一,USBH的中断问题。
USBH到底有没有使用到中断?我有两个板子,一个是2443,一个是2450,2443当U盘插进去的时候,它立即就认出来是harddisk,而2450死活都没有反应。一开始我怀疑是中断的问题,但发现2443里面USBH也是被屏蔽掉的,那么看上去也不是中断的问题。那么系统通过什么方式获得有没有插入USB盘呢?(注册表里的确有物理中断号,虚拟中断号,但实际上跟踪代码发现,它根本没有加载物理中断号对应的ISR,所以看上去不是中断通知系统的)

第二,HcdPdd_CheckConfigPower()函数
在platform/src/driver/usb/hcd/s3c24xx_OHCI.C里面,有HcdPdd_CheckConfigPower()函数,
函数的原型如下:
extern BOOL HcdPdd_CheckConfigPower(
    UCHAR bPort,         // IN - Port number
    DWORD dwCfgPower,    // IN - Power required by configuration
    DWORD dwTotalPower)  // IN - Total power currently in use on port
{
retailmsg(1,(TEXT("cfgpwr=%d,%d\r\n"),dwCfgPower, dwTotalPower));
    return ((dwCfgPower + dwTotalPower) > 500) ? FALSE : TRUE;
}
在2443里面,当我一插入U盘的时候,立即输出cfgpwr=100,0;在2450里面打出来的值是50,0。(我还有一块板子,压根什么都不打印,不知道是什么问题)。那么请问这个50,100是从哪里来的?系统总得通过驱动或者我的BSP获得这个值吧?那么这个值寄存在什么地方?或者说通过什么方式获得的?
谢谢。

最新回复

帮你顶一个先  详情 回复 发表于 2008-12-4 13:22
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
搜索你的源代码,定位你的调试是从那里打印出来的!
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
打印是从我自己的代码里面打出来的。
调用是在PUBLIC\common\oak\drivers\usb\hcd\common\Cdevice.cpp里,参数是它传下来的。我的问题是它传下来的参数的依据是在什么地方,就是为什么2443传100,0,而2440传50,0。。。当然,我可以修改public目录下代码,然后全编译,然后一步步跟踪调试,但没有这个时间啊。所以才来这里咨询,哪位有这方面的经验。。。
谢谢啊
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
没有人顶,我自己顶
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

5
 
你要实现什么?插到PC成为U盘?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
不是,开发板作为主机,要支持插入U盘功能。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

7
 
能作为键盘插入吗??
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

8
 
一个开发板用鼠标是可以的,但USB disk不行。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 5 楼 Seven_zhangxw 的回复:
不是,开发板作为主机,要支持插入U盘功能。



那就是USB OTG功能了!!!你的是什么硬件平台?有对应的USB OTG驱动吗?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
samsung 2450
2443代码一样,但2443可以工作。唯一不同的就是打印语句稍稍有点差别。。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

11
 
我的开发板起来之后,我插入U盘,它会认出来harddisk。但如果我插入它开机,系统就不会认出来有U盘。
请问这该怎么处理啊?怎么让系统一起来就识别U盘?

另外一个问题,如果我开发代码,我该怎么判断u盘有没有插入?createfile(harddisk...)?还是
谢谢啦。。。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

12
 
我在U盘里面存放了一个1.txt文件,然后插入U盘,系统识别出了它,并在它根目录下创建了harddisk目录,进去后,的确有这个1.txt文件。
我写了一个代码,如下:
        hFS= CreateFile(TEXT("\\harddisk\\1.txt"),
        GENERIC_READ | GENERIC_WRITE,
        0, NULL,
        OPEN_EXISTING,
        0, NULL);
        if (hFS == INVALID_HANDLE_VALUE)
        {
                RETAILMSG(1, (TEXT("Open FS driver failed...0x%x\r\n"),GetLastError()));
                return 1;
        }
打印的结果是Open FS driver failed...0x3。查看错误号,知道是#define ERROR_PATH_NOT_FOUND             3L
如果我要访问这里面的文件,我该怎么操作?
谢谢。

开机不能识别U盘的问题还没有思路,希望大家多多指教。。。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

13
 
识别U盘,对D+上拉即可。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 12 楼 gooogleman 的回复:
识别U盘,对D+上拉即可。

怎么上拉?为什么正常情况下我不需要上拉,而开机的时候需要上拉呢?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

15
 
媒人顶,我自己顶!!!
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

16
 
自己顶一把先
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

17
 
帮你顶一个先
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表