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.

[参考译文] MSP430FR6047:MSP430FR6047 MODBUS

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/885426/msp430fr6047-msp430fr6047-modbus

器件型号:MSP430FR6047

您好!

我已将 Free MODBUS 库与 Water Demo 集成、但它给出以下错误

"./lnk_msp430fr6047.cmd"、第250行:错误#10099-D:程序将无法装入可用内存。 对齐方式运行对齐方式对".data"大小为0x3c8的放置失败。 可用存储器范围:
RAM 大小:0x1000未使用:0x1ab 最大空洞:0x1ab  
错误#10010:链接期间遇到错误;未构建"MSP430FR6047EVM_USS_Water Demo.out"

如果我将   lnk_msp430fr6047.cmd Filr 中的-stack 0x0400减少到0x0100、则会编译代码。 我们如何增加 RAM 段、以便即使使用0x400堆栈大小也能编译代码。

此致、

Suhas

 

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

    您好 Suhas、

    您能否提供当前内存使用情况的屏幕截图?  您可以在 CCS 中从 View->Memory Allocation 执行此操作。  它应该与下图类似。  这将让您了解当前的位置以及如何将其存储在内存中。  您将需要减小 RAM 中的缓冲区大小以腾出空间、或将其中的一些空间声明到 FRAM 存储器中。    

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

    您好 Eddie

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

    您好、Suhas、

    在 lnk_msp430fr6047.cmd 中、您可以将.data 更改为使用 FRAM 而不是 RAM、因为您有足够的 FRAM 可用。  请参阅下面的代码更改。

    当前:
    
    #ifdef __USS_RUN_ALG_FROM _RAM__
    .bss :{}> RAM | FRAM /*全局和静态变量 *
    .data :{}> RAM | FRAM /*全局和静态变量 *
    .TI.noinit:{}> RAM | FRAM /*用于#pragma noinit *
    其他
    .bss :{}> RAM /*全局和静态变量 *
    .data :{}> RAM /*全局和静态变量 *
    .TI.noinit:{}>RAM /*用于#pragma noinit *
    #endif
    
    替换为
    #ifdef __USS_RUN_ALG_FROM _RAM__
    .bss :{}> RAM | FRAM /*全局和静态变量 *
    .data :{}> RAM | FRAM /*全局和静态变量 *
    .TI.noinit:{}> RAM | FRAM /*用于#pragma noinit *
    其他
    .bss :{}> RAM /*全局和静态变量 *
    .data :{}> RAM | FRAM /*全局和静态变量 *
    .TI.noinit:{}>RAM /*用于#pragma noinit *
    #endif