今天偶然发现AM335x的手册中一个奇葩的问题。我在用AM335x的DMA访问USB控制器时,发现USB QUEUE Manager的某些寄存器被定义到Memory Map中标明是“Reserved”的区域中去了,导致我访问这些定时器时进入Data Abort异常。例如:QUEUE_0_A相对于USB Queue Manager寄存器的基地址0x4740_4000的偏移是0x2000,那么它的实际地址为0x4740_6000,而这个地址位于Memory Map中标记为“Reserved”的区域。这种事情也能发生?TI的手册不会是乱写的吧?更奇葩的是TI提供的StarterWare也是按这种定义实现的!那么他们真的测试过这种情况并且通过了?或者他们根本没有做过全面的测试。
我用的手册版本是:spruh73h 2013年4月修订版,大家可以自己查证。
Gary Wu:
看过最新的手册吗?
mangui zhang:
回复 Gary Wu:
spruh73h 2013年4月修订版
应该是最新的吧
mangui zhang:
回复 Jian Zhou:
好的 明白了 谢谢