This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6670 SL2例程



一直想把6670的 SL2 用起来,没有看过例程的话,感觉没有头绪,希望能给一个使用了SL2的例程链接,以便参考!

  • SL2就是片内的共享内存,直接可以访问。

  • 我想在SL2定义一个变量,然后每个核都能改变这个变量的值,但是这个好像涉及到cache一致性问题,当我在核0改变了变量的值后,其它的核并没有改变。希望能有类似的工程链接,里面涉及到cache一致性的配置,有类似的参考的话,慢慢就会配置的。

  • 首页的STK开发包里有Memory测试的函数,同时也操作了SL2,可以作为参考。

  • 可以每个核上变量定义到同一个物理内存位置,达到类似全局的效果,如下:

    (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中的同一个内存,这就达到了类似全局变量的效果。

    访问L2也是一样的,使用全局L2地址,确定变量定义在同一个物理位置。

    BTW:Enea提供针对C66的商用平台软件,如果有兴趣可以联系。

    Br

    William.dong@enea.com