在多个核采用同一工程中,定义并初始化全局变量
#pragma DATA_SECTION(sharedata, ".data1")
int sharedata [10]={1,1,1,1,1,1,1,1,1,1};
程序中 core0 重新写入sharedata: for(i=0;i<10;i++) sharedata[i]=2;
接着core1 读入并输出sharedata: for(i=0;i<10;i++) { System_printf("sharedata[i] = %d\n", sharedata[i]);}
结果输出的值仍为初始化值1,而并不是core0写入的新值2,请问这是为什么呢,有什么办法可以解决的吗?
noaming:
你好,
建议用CCS查看一下全局变量sharedata的值是什么,看有没有改变。程序中有没有核之间的通信,core0写完之后,core1再去读。
tmx tsrj:
回复 noaming:
谢谢,已解决,涉及CACHE同步问题
Ellie Jiang:
您好, 请问您在cmd文件中指定.data1 的地址了吗?可以单步运行看看,查memory里面sharedata数组值的变化,比如输出之前core0写入数据是否成功写入了?
TI中文支持网