TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6678: 多核使用同一逻辑地址使用NDK出现Qmss_queuePushDescSize和Qmss_queuePop不一致的情况

Part Number:TMS320C6678

各位老师好:

在使用6678平台上使用NDK组件,因为需要使用多核,所以对MPAX进行设置,从而使不同核使用同一个逻辑地址,但指向不同的物理地址。且设置程序入口地址到MPAX初始化,MPAX初始化完成后再跳转到_c_int00处。先在单核上进行了测试,通过写重映射后的逻辑地址确认了MPAX初始化成功,程序也能正常启动运行。但当把程序的默认heap放到重映射后的地址范围内时,就会出现NDK初始化时,调用Qmss_queuePushDescSize和Qmss_queuePop不一致的情况,从而初始化失败,放到其他段则正常。怀疑是逻辑地址到物理地址转换的问题,恳请您的指导。

man lingbin:

补充一下,如果不使用MPAX设置的方式,能否在cfg文件中设置不同的核使用不同的内存段。测试过如下的代码:

var Core = environment[“coreid”];if(Core == 0){ Memory.defaultHeapInstance = Program.global.heap0;}else if(Core == 1){ Memory.defaultHeapInstance = Program.global.heap1;}

没有报错,但也没有效果。

,

Nancy Wang:

man lingbin 说:但当把程序的默认heap放到重映射后的地址范围内时,就会出现NDK初始化时,调用Qmss_queuePushDescSize和Qmss_queuePop不一致的情况,从而初始化失败

工程编译没有问题,heap也能分配成功,但是NDK初始化失败?

man lingbin 说:如果不使用MPAX设置的方式,能否在cfg文件中设置不同的核使用不同的内存段

没有效果是没有分配成功吗?

,

man lingbin:

是的。heap能分配成功,同步哦memory browser观察也确实在重映射后的地址范围内,但ndk初始化失败,在Add_MACAddress函数中报Timeout waiting for reply from PA to Pa_addMac command错误。

没效果是指无法使条件判断中的语句如Memory.defaultHeapInstance = Program.global.heap0;生效,无法根据当前使用的核分配不同的堆空间。

,

Nancy Wang:

建议您到英文论坛咨询看看,会有产品线工程师支持。

,

man lingbin:

好的,谢谢了

,

Nancy Wang:

我会暂时将该帖关闭。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678: 多核使用同一逻辑地址使用NDK出现Qmss_queuePushDescSize和Qmss_queuePop不一致的情况
分享到: 更多 (0)