嵌入式开发者社区

标题: 如何在多核之间共同读写相同地址的变量? [打印本页]

作者: IRONMAN    时间: 2016-8-11 12:51
标题: 如何在多核之间共同读写相同地址的变量?
   我的做法是这样的:
1、首先在两个核对应的工程中在CMD文件中划分一块MEMORY,也就是MSM多核共享区的一个子块。
2、然后在各自工程的源文件中定义一个全局指针变量,具体是这样的 volatile Uint32 *Gpio_communication_flag = (volatile Uint32 *)(0x0c000000);       然后让这个指针变量指向地址在上述划分的MEMORY中的内存空间。
  用仿真器连上Core0和Core1后加载程序,我在Core1中是要改变*Gpio_communication_flag他的值,然后我在Core0中查看它的值是不是我写进去的值,结果发现不是的。请问这样做有什么问题吗?

作者: 希望缄默    时间: 2016-8-11 13:41
可以 光盘有例程就是这种方式
一般不一致是缓存问题
作者: IRONMAN    时间: 2016-8-11 15:36
希望缄默 发表于 2016-8-11 13:41
可以 光盘有例程就是这种方式
一般不一致是缓存问题

那要怎么解决?使用这个函数吗?WritebackCache((void *)uipDst, uiByteCount);
作者: 希望缄默    时间: 2016-8-11 19:54
IRONMAN 发表于 2016-8-11 15:36
那要怎么解决?使用这个函数吗?WritebackCache((void *)uipDst, uiByteCount);

Not exactly right
读之前 CacheInv
写之后 CacheWB




欢迎光临 嵌入式开发者社区 (https://51ele.net/) Powered by Discuz! X3.4