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个硬件信号量)。