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.

F28377D共享内存分配问题

我在CPU2的 cmd文件里有如下分配,

.text            : >>RAMM0 | RAMD0 | RAMLS0_LS4 | RAMGS0_GS6,   PAGE = 0

但是考虑到 RAMGS0~GS6必须得在CPU1里分配给CPU2才行,那么我这样做是不是有问题呢?

  • 是的,CPU2没有ownership的话,只能读GS RAM,不能fetch,程序执行就会有问题。

  • 您好,但是现在我有一个问题,CPU2的LS RAM 不够用,还想用一部分GS RAM,将.text 分配到这些段中,如下面这样

    .text         : >>RAMM0 | RAMD0 | RAMLS0_LS4 | RAMGS0_GS6,   PAGE = 0

    但是,这样岂不是不能用,那如果想把 RAMGS0_GS6用作cpu2的  .text段,应该怎么弄呢?谢谢

  • 在IPCBootCPU2之前将GS RAM的ownership交付给CPU2应该就可以了。

  • 您好,谢谢您的回答,您的意思是,我的cmd文件可以就这么写了,只是在IPCBootCPU2之前将GS RAM的ownership交付给CPU2,那我的理解是,cpu2编译时就已经将.text映射到GS RAM里了,运行时将GS RAM 交给cpu2,在用IPCBootCPU2启动cpu2,那么.text就能在GS RAM 里跑了,是这样吗?

  • 是的,程序是下载到GS RAM里,CPU1先运行,将GS RAM ownership交给CPU2,再启动CUP2,此时CPU2就有GS RAM中执行程序的权限。你可以在调试时编写一个GPIO翻转程序全部放在GS RAM中,然后测试一下。