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/MSP430FR5043:访问0x5000地址存储器中的 USS 测量结果不正确

Guru**** 2551580 points
Other Parts Discussed in Thread: MSP430FR6043

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/923207/ccs-msp430fr5043-access-to-uss-measurements-in-0x5000-address-memory-not-good

器件型号:MSP430FR5043
主题中讨论的其他器件:MSP430FR6043

工具/软件:Code Composer Studio

提供案例详细信息或注释:我使用水演示示示例作为我们项目的参考(我使用的是 USS_Lib_40:最新版本),我的第一个问题是内存映射。 我了解过在许多测试之后、USSLib 使用0x4000地址存储器进行 LEA RAM 硬编码、而您不使用其他链接命令文件。
如果我像这样更改 lnk 文件:

LEARAM:origin = 0x5000、length = 0x1000 - LEASTACK_SIZE
LEASTACK:origin = 0x6000 - LEASTACK_SIZE、length = LEASTACK_SIZE

USS 测量值始终在0x4000中进行、而不是在0x5000中进行、如 lnk 文件中定义的那样。

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

    您好、Jebabli、

    'FR5043具有多个 RAM 块。 请参见数据表(SLASEF5)的表6-52。

     LEA 只能物理访问存储器块0x4000-0x4FFF 和0x5000-0x5FFF。  软件最终使用的存储器位置由编程和链接器命令文件定义决定。

    对于我们的 IDE、我只提供了一个链接器命令文件;默认情况下、这是看起来最常用的命令文件。  用户必须定制自己的链接器命令文件以满足特殊需求、并针对特定应用进行优化。 我将尝试准备一组可能适合您需求的链接器命令文件。 至少您有一组示例、您可以从中进行迁移。 USS_Lib_40主题不同。  此库已部分预编译...  我假设链接器能够将代码重新定位到链接器命令文件所述的段中。 我还没有尝试过这种方法。 但我将检查它。

    现在、祝您愉快

      Johann

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

    您好 Johann、感谢您的回复

    我将我的问题改写为短语、请您使用:

    -适用于硬件 MSP430FR6043EVM

    -对于 MSP430板软件、MSP430FR6043EVM_USS_Water 演示和 USS_02_40_00_00作为 USS 库

    -适用于 Windows USS 应用

    我对 MSP430FR6043EVM_USS_Water 演示的更改如下:

    1-用于"lnk_msp430fr6043.cmd"文件  

    -第66行:    

    RAM            :origin = 0x3000,length = 0x2000

    -第138行:   

    存储器

        LEARAM:origin = 0x5000、length = 0x1000 - LEASTACK_SIZE

        LEASTACK:origin = 0x6000 - LEASTACK_SIZE、length = LEASTACK_SIZE

    2-用于 USS_Lib_HAL.h 文件  

    第223行

    #define USS_HAL_LEA_START_ADDRESS             (0x5000)

    重新编译并刷写电路板后、我使用 USS 应用连接到 MSP430FR6043、然后我触发了 ADC 捕获、然后我获得了下面的图形! 我认为 USS 测量值保存在0x4000地址上、而不是保存在0x5000中 。我更改了代码、请作任何解释。

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

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

    您好、Jebabli、

    我做了与您相同的更改。

    正在使用... EVM430-FR6043-E2;运行 CCS 版本:8.3.0.00009、使用 UssLib。:  

    TI 发布:UltrasonicWaterFR604x_02_40_00_00 // 发布日期:2020年2月22日

    我在中更改了链接器命令文件行#140

     LEARAM                 :origin = 0x4000、length = 0x2000 - LEASTACK_SIZE

     更改为

     LEARAM                 :origin = 0x5000、length = 0x1000 - LEASTACK_SIZE

    编译后、我可以看到 USS 样本缓冲器位于0x5000 (gUSSLEATempMemBlock)

    采集到的 ADC 样本放在那里。  屏幕会在捕获功能之后显示该情况

    代码= USS_startLowPowerUltrasonicCapture (&gUssSWConfig); 位于 USSLibGUIApp.c 的第345行

    我对 SDHSDTCDA 寄存器执行了 x 校验;它的值是0x800 (2048wors=4096bytes)、高于从0x4000开始的支持 LEA 的 RAM。

    USS 设计中心还显示了预期的波形。

    ...seems 我们需要更深入地探讨...

    祝你度过美好的一天

     Johann

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

    感谢 Johann 的帮助、
    PLZ 您是否执行此更改  

    2-用于 USS_Lib_HAL.h 文件  

    第223行

    #define USS_HAL_LEA_START_ADDRESS             (0x5000)

    谢谢你

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

    您好、再说一次、

    将#define 保留在0x4000处、因为这是 LEA 可以物理访问的第一个地址。 SDHSDTCDA 寄存器被设置为缓冲器的最终位置。 这由 ussSwLibCommonSDHS.C 第75行中的函数 commonSDHSRestoreSDHSDTCA ()来完成。

    快乐编码

       Johann