TIwilliam hill官网
直播中

李高胜

7年用户 204经验值
私信 关注
[问答]

关于C6678共享L2 SRAM的问题请教

大家好:
        我对于C6678的L2 SRAM(0x00800000)以及各个core私有的L2 SRAM(core 0::0x10800000,core1:0x11800000),存在些疑问,想请教下大家,测试代码框图如下:
        int a=0;
        if(selfId==0)
       [
      a=a+1;
         ]
      else if((1<=selfId)&&(selfId<=6))
     [
     a=a+2;
     ]
   else
   [
   a=a+3;
   ]
   以上是一个很简单的测试代码,selfId是由CSL_chipReadReg()函数获取的核号,我想通过观察a改变后的值来了解共有L2 SRAM和私有L2 SRAM的关系,通过.map文件得知a变量的地址是0x00844b30。
   测试结果如下:
     L2 SRAM(0x00844b30)的值随着core 0的L2 SRAM(0x10844b30)的值改变而改变,每次增加1(以上代码会一直执行) ,它们俩的值相同;而core 1~core6(0x11844b30~0x16844b30)的值每次增加2,core7(0x17844b30)的值每次增加3;
  问题如下:
    为什么全局变量a在L2 SRAM(0x00844b30)的值随着core 0对它的改变而改变,而不随着其他几个核改变?L2 SRAM(0x00800000)仅仅对于core 0的L2 SRAM(0x10800000)是一种映射关系吗?而对于其他7个core的L2 SRAM不存在映射关系?
   
   谢谢!

回帖(1)

王英

2019-1-9 11:06:02
对于core 0,0x00844b30是local address,0x10844b30是Global address,这两地址物理上是一样的;
但是core 1想访问core 0的0x00844b30的L2 地址就必须使用0x10844b30,如果core 1使用0x00844b30实际访问的是0x11844b30,以此类推。
举报

更多回帖

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