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.

[参考译文] CCS/TMS320F28375D:GS 存储器正在初始化为 CPU 之间的不同存储器位置

Guru**** 2445440 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/833367/ccs-tms320f28375d-gs-memory-is-getting-initialized-to-different-memory-locations-between-cpus

器件型号:TMS320F28375D

工具/软件:Code Composer Studio

我有一个变量 CPU2BOOTComplete、需要两个 CPU 都可以读取该变量。  从下面的调试器屏幕截图中可以看到、每个 CPU 在不同的 RAM 存储器空间中识别了变量。  鉴于我的数据结构在声明中的大小相同,我不理解为什么会发生这种情况。

有什么想法、为什么会发生这种情况、我可以做些什么来避免这种情况?

对于 CPU1、该变量位于0x00019541中、对于 CPU2、0x00019540中。  为什么?

CPU2存储器寻址

变量声明

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nicholas、您好!

    您是否在编译期间检查过是否有任何警告?

    另外、如何定义链接器 cmd 文件中的 SPU1STATUSBIS 和 CPU2STATUSBITS 部分?

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vivek、

    无警告。 我在链接器命令文件的一个存储器边界下声明了多个变量。 我曾假设应该以相同的方式分配给每个处理器、但似乎不应该。

    我做了一个更改: 我将变量放置在结构中、以确保在两个处理器之间分配相同的变量、并且它看起来正常工作。  我是否可以确认这是正确的? 请告诉我有关这方面的任何文档?

    谢谢、
    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    [引用]我做了一个更改: 我将变量放置在一个结构中、以确保在两个处理器之间分配相同的变量、并且它们看起来正常工作。  [/报价]

    这是确保相同地址的正确方法、假设结构放置在长度与结构相同的段中。 如果同一段中有多个变量、则无法保证两个不同编译上的同一地址。

    此致、

    Vivek Singh