TIwilliam hill官网
直播中

黎菁菁

7年用户 574经验值
私信 关注

F28377D的双核共享,请问cpu2的工程如何实现读写?

本帖最后由 一只耳朵怪 于 2018-6-13 15:00 编辑

例如我在cpu1的工程里有一个变量,并把它声明为全局变量,但是在cpu2里怎么才能用这个变量呢,手册上说把cpu1的变量分配到共享内存里,cpu2就只能读取,不能写了,但是我需要在cpu2 的工程里,怎么用这个变量呢,直接把变量名字写出来就可以用吗?

回帖(6)

李秋年

2018-6-13 05:17:42
你可以在CPU2再加一个中间变量,将从CPU1读到的变量值赋给这个中间变量,可以在CPU2中修改中间变量的值,修改过之后再放回共享内存,将修改过之后的值赋给CPU1的变量。
1 举报

黎菁菁

2018-6-13 05:28:33
引用: szoldman 发表于 2018-6-13 05:17
你可以在CPU2再加一个中间变量,将从CPU1读到的变量值赋给这个中间变量,可以在CPU2中修改中间变量的值,修改过之后再放回共享内存,将修改过之后的值赋给CPU1的变量。

请问,在cpu2中定义了一个中间变量怎么能读取到cpu1的变量呢,以前没接触过双核,不知道共享内存怎么用 ,也不关注变量在RAM中的状态,以前都是用单核MCU,一个变量声明称全局变量,就不管了,现在应该怎么弄呢,谢谢
举报

李秋年

2018-6-13 05:39:07
引用: 60user22 发表于 2018-6-13 05:28
请问,在cpu2中定义了一个中间变量怎么能读取到cpu1的变量呢,以前没接触过双核,不知道共享内存怎么用 ,也不关注变量在RAM中的状态,以前都是用单核MCU,一个变量声明称全局变量,就不管了,现在应该怎么弄呢,谢谢

你可以将共享内存中的变量赋值给定义的中间变量,这样就读取了CPU1的变量。这个中间变量放在CPU2TOCPU1RAM共享内存的话,在CPU1中就也可以读取CPU2中定义的这个中间变量。
举报

黎菁菁

2018-6-13 05:53:54
引用: szoldman 发表于 2018-6-13 05:39
你可以将共享内存中的变量赋值给定义的中间变量,这样就读取了CPU1的变量。这个中间变量放在CPU2TOCPU1RAM共享内存的话,在CPU1中就也可以读取CPU2中定义的这个中间变量。

Hank:
      您好!有两个问题请教
      1.您说的这个CPU2TOCPU1RAM 和 GSxRAM不是一个是吧。GSxRAM需要分配给某一个cpu。CPU2TOCPU1RAM不            一样吧。存在共享内存中是存在GSxRAM吗?
     2.假如我在cpu1的程序中定义了一个变量int a =1; ,将他放在共享内存GSxRAM或CPU2TOCPU1RAM中,在cpu2                 的程序里怎么能使用呢,直接用if(a == 1){}行吗,会直接报找不到变量吗?这些细节不太明白
举报

更多回帖

发帖
×
20
完善资料,
赚取积分