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.

[参考译文] TMS320F280041:链接器 CMD 文件将存储器拆分为 PAGE 0和 PAGE 1... 为什么?

Guru**** 2537250 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031872/tms320f280041-linker-cmd-file-splits-memories-into-page-0-and-page-1-why

器件型号:TMS320F280041

我对 F280041的 CMD 文件中的第0页、第1页定义感到困惑。 具体而言、我正在尝试使用.TI.ramfuncs 段从闪存扇区0 (当前在第0页中)加载、但在 RAMLS6和7中运行(当前在第1页中、导致链接器错误) 、我是否可以将它们移动到第0页?  如果页面没有实际意义、我只想将所有内容移动到一个页面。

F280041的默认 CMD 文件具有 RAMLS5-7、RAMM1、RAMGS 存储器标记为 PAGE 1。  我之所以限制使用这些功能、是因为在其他架构中、切换物理内存页的性能会受到影响。  但是、在28个处理器中、这些 CMD 页面实际上并不是物理内容。  所以、这是一个事实证明完全错误的直觉。  )

 根据 https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html、页面定义没有实际意义。 只是、"如果区域在文件中以这种方式定义、最好继续以这种方式使用它们"这毫无意义。  如果为 true、则会使链接变得复杂、无法实现任何目的。

这个旧线程 https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/827453/compiler-tms320f28377d-linker-file-cmd-memory-page-regarding/ 的响应表明:

 -按惯例、PAGE 0用于代码、PAGE 1用于数据(在我的情况下不是真)

 - CCS 希望外设位于第1页中,但以某种方式将内容移至第0页会导致内存 浏览器或寄存器视图无法访问。  (?)

 - PAGE 0应为非易失性、PAGE 1应为易失性(也不是真)

。 可能只需将所有内容设置为第1页中的内容?  没关系吗?

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

    我已将所有内容移到第0页、似乎没有任何副作用。  默认 CMD 文件很奇怪。

    那么、我想这没问题吧?

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

    Darron、

    没关系。

    早期的 C28x 器件具有用于代码和数据的独立内存总线。 这些总线被连接至物理上独立的内存块。 因此、PAGE 0上的特定地址可能与 PAGE 1上的相同地址具有不同的内容。  

    此致

    Siddharth