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.

双核的SCI通信

我想 通过cpu2 的SCIB 把写入到CPU2中的数据发送  给cpu1 的SCIA,  那么在配置的时候要注意什么?  是把 SCIB 的配置函数 配置在CPU2, SCIA配置在CPU1中吗?   需要注意些什么呢?? 

  • 为什么要通过SCI通信这么麻烦的方式来实现呢?直接使用MSGRAM不是既方便又快捷吗?而且不占用任何外设资源和CPU资源。

    当然,一定想通过SCI实现,也是可以的,你只需要把双核当成两个独立的CPU来使用,并且将SCIA/B分别分配给CPU1/2,然后分别配置两个SCI正常通信就可以了,就像两颗芯片一样,没有什么特别需要注意的。

  • HAHA, 谢谢 10# 大哥, 我只是想两者 做个对比,看采用这两种方式的数据通信是否 一致。

    那请问将SCIA/B分别分配给CPU1/2  指的是给ownership  吗?

    是 在 cpu1 中配置SCI_A ,在cpu2中配置SCI_B

    还是只在cpu1中给 ownership  到 cpu2

    DevCfgRegs.CPUSEL5.bit.SCI_B = 1

    DevCfgRegs.CPUSEL5.bit.SCI_A = 0

    另外:

    SCIA SCIB 的寄存器(波特率。。等等)的配置 是分别在cpu1  cpu2 中吗?? 

  • 同大同 说:

    那请问将SCIA/B分别分配给CPU1/2  指的是给ownership  吗?

    是 在 cpu1 中配置SCI_A ,在cpu2中配置SCI_B

    还是只在cpu1中给 ownership  到 cpu2

    DevCfgRegs.CPUSEL5.bit.SCI_B = 1

    DevCfgRegs.CPUSEL5.bit.SCI_A = 0

    是的,就是分配ownership,然后再进行初始化。

    CPU1中通过CPUSELx寄存器将外设分配给指定的CPU,该CPU就获取了该外设的ownership,这是第一步;

    获取到某外设ownership的CPU单独配置该外调的寄存器,这是第二步。

    所以,你只要先通过CPUSEL5将SCIA和SCIB分配给CPU1和CPU2即可。

    同大同 说:

    另外:

    SCIA SCIB 的寄存器(波特率。。等等)的配置 是分别在cpu1  cpu2 中吗?? 

    在完成了上面提到的ownership的分配以后,每个CPU单独对其外设进行初始化,所以SCIA的寄存器的配置在CPU1里完成,SCIB的寄存器的配置在CPU2里完成即可。

  • 您好

    我嘗試在CPU1與CPU2上執行您說的方式,但發現於CPU2上無法設定任何有關於SCI-B相關寄存器

    是否除了DevCfgRegs.CPUSEL5.bit.SCI_B = 1須設定外還有其他需要注意的部分

    感謝您的說明

  • 你可能需要看一下以上配置代码前是否有打开EALLOW保护?