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.

28377 CPU2程序在RAM调试中的内存使用问题

CPU1和CPU2的程序同时在RAM中调试运行,看demo中程序都load到LS0~LS5中运行,不过CPU1和CPU2的程序都比较大,不能把两者的程序都加在LS0~LS5中,否则程序没法加载或者无法运行。

1.那GS0~GS15可以用作.text 的空间来加载吗?

2..cinit .pinit  .stack .ebss   .econst .esysmem能定位到GS0~GS15吗?

3.要是GS0~GS15可以这样的使用的话,CMD该怎么修改呢?

现在把CPU2的程序加载到GS0~GS15(cpu1中的GSxMSEL相关位已经使能),CPU2的没办法运行。附件是我CPU2的cmd文件

谢谢!

  • 1. 可以的,你在CMD分配一下就好。注意GS0~15默认是给CPU1的,如果要分配给CPU2, 应该要配置一下。

    2. 可以。还是在CMD上设置那个映射。

    3. CMD的修改,你只要把原来段的映射改成GS0或其他即可。

    .text               : >> FLASHB | FLASHC | FLASHD | FLASHE      PAGE = 0, ALIGN(4)

    例如把上面改成:

    .text               :> RAMGS0      PAGE = 0, ALIGN(4)

    你要把RAMGS0放在PAGE0。

    4. 要分配GS给CPU2,你要在CPU1的初始化代码中将GS分配给CPU2才能用。

    最后,运行在RAM上,掉电程序会丢失,所以你最后还是要烧写在FLASH才是。

    ERIC