C6748 多核共享内存

来源 https://blog.csdn.net/weixin_33380613/article/details/112877429

变量是每个核单独的,不是共享的,但可以每个核上变量定义到同一个内存位置,达到类似全局的效果,教你一个方法。

(1)比如要共享变量share_variable,在每个核的代码中都声明:

///

#pragma DATA_SECTION (share_variable, ".global_shared");

static unsigned int share_variable;

///

(2)在link文件*.cmd中加入段定义

//

MEMORY {
.....

VAR_SHARED_RAM: origin = 0x0C3E0000 length=0x00020000

.....

}

....

.global_shared:type=NOINIT>VAR_SHARED_RAM

///

这样每个核上的变量share_variable,都对应与M3中的同一个内存,这就达到了类似全局变量的效果。

另外,记得在访问核间共享内存时,用spin_lock互斥(C6678有64个硬件信号量)。

posted @ 2021-12-06 10:16  华夏九州  阅读(432)  评论(0编辑  收藏  举报