机型: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重新编辑 ]