你好:
我现在需要用s3c6410实现对于DSP的HPI进行读和写操作,HPI口与6410的XM0相连,现在遇到一个问题是:
我用逻辑分析仪查看发现,我写HPIC和HPIA的低8位是正确的,但是用ccs查看HPI三个寄存器的值得时候,发现其中的HPIC和HPIAR里面的数据是不对的,我向HPIC中写入0x00090009,但是在HPIC寄存器中会读到0x000b000b或者有时候是0x00030003,向HPIA中写入地址0xaaaaaaaa,结果HPIAR 里面的值会是0xaaaeaab0 这个时候HIPAR的地址是不会发生变化的,开始我认为是我数据通路有问题,但是我发现在向0xFFE00地址写数据的时候,我确实是把数据写进去了,比如我做过测试向0xffe00之后的1000个地址写入0x5555aaaa,0xaaaa5555.这些数值都是正确的,而且确实也写入到以0xffe0x开始的这个地址了。我采用的是半字传输,先传低16位,再传高16位。
求指教,谢谢~~~
Tony Tang:
这里有个说不通的地方,HPIC的bit 1是DSPINT,这个位是上位机写的,用来向DSP触发HPI中断的,而你写的是9,怎么会把bit1置位,除非是数据线焊接有问题。
因为DSP是不能置这一位为1的,写1到这位是清0。