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.

[参考译文] MSP430FR5994:我是否可以将4KB LEA RAM与SRAM组合成单个8KB RAM块?

Guru**** 2614265 points
Other Parts Discussed in Thread: MSP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/666424/msp430fr5994-can-i-combine-4kb-lea-ram-with-sram-into-a-single-8kb-block-of-ram

部件号:MSP430FR5994

您好,

MSP430FR5994的默认链接器文件将RAM分为两个区域:LEARAM和RAM。

RAM    :原点= 0x1C00,长度= 0x1000

LEARAM          :原点= 0x2C00,长度= 0x1000 - LEASTCK_SIZE。

如果我的应用程序中没有使用LEA,我是否可以简单地组合区域以访问完整的8KB或RAM?

RAM    :原点= 0x1C00,长度= 0x2000

我是否需要了解其他注意事项?

谢谢!
Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    默认情况下,LEA与DMA和CPU等其他设备共享其内存的4 KB (不包括堆栈和命令内存)。
    说,
    RAM :原点= 0x1C00,长度= 0x2000 - LEASTCK_SIZE
    更正确。 否则,您需要显式禁用LEA以分配全部内存。
    此致,
    Alexey
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Alexey,

    我还删除了下面的行,从而删除了LEA堆栈内存分配。

    LEASTCK : Origin = 0x3C00 - LEASTCK_SIZE,length = LEASTCK_SIZE

    .leaRAM :{}> LEARAM /* LEA RAM
    leaStack :{}> LEASTCK (高) /* LEA堆栈

    这是您所说的"明确禁用LEA"吗? LEA堆栈是否在引导时自动初始化?

    谢谢!
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这些定义仅供编译器管理名称和地址范围。 它们不会改变实际硬件中的任何内容。 LEASTCK区域仅保存用于LEA的内部数据,包括命令属性。 在不禁用LEA模块的情况下将任何内容写入此区域会使系统处于未预测的行为。

    此致,
    Alexey
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,我想现在的问题是如何禁用LEA模块? (如果可能)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    快速跟进。

    我可以删除链接器文件中对LEA的所有引用,并且在编译期间不会收到任何警告或错误。 我认为这表明.leaRAM或.leaStack内存定义中没有放置任何内容?

    最后一件事是,如果我不为LEA堆栈保留区域,LEA会无意中覆盖系统堆栈上的数据。 如果未在我们的应用程序中使用LEA,则只需查找其行为的确认。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Ryan

    如果需要,LEA RAM可用作公共RAM。因为LEA的操作需要命令。 您可以将RAM定义为8K,并在CMD文件中删除有关LEA_RAM的定义。

    此致
    Gary