主题 : 2440 USBHost与MMU不兼容 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 89902
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2013-04-07
最后登录: 2015-06-15
楼主  发表于: 2013-05-14 15:35

 2440 USBHost与MMU不兼容

机型:Mini2440,竖屏,首次烧写的例程2440test X35
问题:USB主机编程

    以Mini2440配套的2440test裸机程序为基础,在上面加USB功能(设想为两个开发板通过USB传数据,一个Host,一个Device)。
    USB Device编程成功,可以完成与PC通信(即PC为host)。
    USB Host成功了一半,将Main()函数的MMU_init()注释掉,即关闭MMU功能,开发板可以时时通过串口显示鼠标返回的状态变化数据。但是,不注释MMU_init(),即开启MMU功能,开发板USB无法与鼠标正常通信。可以通过HcInterruptStatus寄存器状态判断知(参看OHCI Rev1.0),TD与ED已处理完,但接收的TD缓存区的数据仍为0(不开MMU为0x8).
        虽然不开MMU能运行,但存在两个问题——需要另将中断向量表烧到0地址,麻烦。同时,机器的运行明显慢来了,如果还使用LCD和Camera的话,更吃力哟。
      
       USBHost与MMU不兼容如何解决?      

       PS:没上系统,裸机,想多学点基础编程!
                程序以2440test为基础,只是在while部分增加了USBHost功能。
[ 此帖被tongmuxiao1在2013-05-15 11:22重新编辑 ]
级别: 新手上路
UID: 89902
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2013-04-07
最后登录: 2015-06-15
1楼  发表于: 2013-05-14 22:06
谢谢大家来看,问题被自己KO了。
    是Cache与非Cache问题。
    因为MMU里面对不同地址分为Cache与非Cache!要看USBHost用到的中间数据在哪里了!
    小改一下就KO!
    
级别: 新手上路
UID: 22473
精华: 0
发帖: 13
金钱: 65 两
威望: 13 点
贡献值: 0 点
综合积分: 26 分
注册时间: 2010-06-01
最后登录: 2013-05-20
2楼  发表于: 2013-05-15 17:28

 回 1楼(tongmuxiao1) 的帖子

0 你好,我也遇到这个问题了。我关闭Dcache就行了。 我正在做usb 的中断,想和你交流交流互相学习。有意加我qq 97087857
级别: 新手上路
UID: 89902
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2013-04-07
最后登录: 2015-06-15
3楼  发表于: 2013-05-18 00:57
好的!看你本站的邮箱!
级别: 新手上路
UID: 92249
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2013-05-26
最后登录: 2016-05-25
4楼  发表于: 2013-06-13 21:28
ohci主机中断进不去,都需要什么设置呀???求指教!QQ:446294934
级别: 新手上路
UID: 89902
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
贡献值: 0 点
综合积分: 22 分
注册时间: 2013-04-07
最后登录: 2015-06-15
5楼  发表于: 2013-06-28 21:27
XXX
[ 此帖被tongmuxiao1在2013-06-28 21:38重新编辑 ]