如何通过PCI向一个外设寄存器读写,该寄存器为存储空间内
资料中说到DM642的PCI的存储空间可由上位机通过BAR0进行读写.
但又提到,对一个寄存器,地址假如为0X01B00004读写,是通过DSPP和CPCIA组成的32位地址来读写.所以DSPP和CPCIA需要事先写入.
现在DSPP已经确定上位机可以通过BAR2读写,但是CPCIA应该怎么由上位机写入呢?因为CPCIA寄存器本身的地址也在0X01CXXXXX内,也需要DSPP+CPCIA组成的32位来确定.不可能通过写自身来得到地址然后再写自身吧.......
所以我现在的问题是, 1、BAR0和CPCIA之间有关系吗? 2、如果才能改变CPCIA的值,难道只能通过DSP来写,如果这样,效率就太低了吧? 3、BAR0的值除了确定该地址指向的4M地址是存储空间,能用于确定需要访问的具体地址空间吗?如0X01BXXXXX?
|