This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

omapl138的HPI使用问题,比较诡异,所以特请大神们,TI的工程师们,求救,求解啊,太奇怪的问题了,急!!!!!!!!!!!!

Other Parts Discussed in Thread: SYSBIOS

背景: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));  // 这个语句在查询的服务函数中

亲们,急救啊!!!!!!!!!!!!!!!!!

  • 看描述,像是dsp cache的问题

    dsp取数据之前需要清一次cache,否则cpu会默认从cache里取数据,而不会真的从物理地址里取数据

    操作是Cache_inv,自己去查下使用方式吧

    138的cache好像最小长度是128字节