背景:OMAPL138的ARM跑LINUX,使用SYSLINK与DSP端进行通讯,故DSP端跑的是SYSBIOS操作系统,DSP端外接FPGA,与FPGA使用HPI通讯,FPGA通过HPI向DSP 写值,写的位置在片内共享段,也就是0x80000000这里开始,写完后会产生一个中断,通过查询中断的方式,DSP读取共享内存中的数据,奇怪的现象就产生了: DSP在读取了HPI中的数据后,FPGA的通过HPI写的数据就不能更新了,而且不是不能全部更新,而仅仅是读取的位置的在以0x80000000为开始,32个字长为单位,读取位置所在的这32个字的数据就不会再被HPI数据更新了,举个例子,0x80000088在第3个32字范围内,读取这个地址的值后,这32个数据的值,就不会再改变,请问这是怎么回事啊? 读取这个地址的方式如下: unsigned int count_tmp;//定义一个变量保存读取结果 count_tmp=(unsigned int)(*((unsigned int *)0x80000088)); // 这个语句在查询的服务函数中 请问,这是怎么回事啊?很是不理解,查了好久才查出这个问题,但是却不知道怎么解决,求解啊 % j* U6 \; h4 @. C$ Q Y( T# t
|