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.

[参考译文] MSP430FR6879:计算在软件操作中写入的 FRAM 数据的校验和

Guru**** 2510055 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/991615/msp430fr6879-calculate-the-checksum-of-fram-data-written-in-the-operation-of-the-software

器件型号:MSP430FR6879

您好!

目前、我正在考虑使用一种方法来计算 写入软件的 FRAM 数据的校验和。

(1) FRAM 上存在程序和数据、例如变量。 在计算源代码的校验和时、应如何指定计算范围?

(2)访问 FRAM 上的程序存储器区域是否需要执行任何程序?

(3)如果您提供有关校验和计算的示例代码等、请告诉我。

谢谢、

科基

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

    为了计算 PC/器件端的 CRC、我将使用二进制/txt 文件中的完整地址空间。 用于计算 CRC 的 TI 源代码示例、您可以在此处的 e2e 文章或 slaa221中找到。

    D:\>flash -f test_msp430fr4133.txt -w -v -CRC
    
    文件:"test_msp430fr4133.txt"
    @C400 15360字节
    总大小: 在
    
    COM4
    
    上找到的15360字节 SBW 主器件获取器
    件# JTID 保险丝器件核心硬软 LotWafer DieX Diey3
    91 OK 0381 1106 24 94FAA04 1500 3300
    4 98 OK F081 0906 20 A6BDA108 C100 0C00
    5 99 OK 6181 1106 30 F22407 2B00 2200
    6 99 OK 6581 1106 30 E1271D07 2F00 1900
    
    写入
    时间:83ms 速度:180、4 kB/s
    
    验证
    时间:83ms 速度:180、4 kB/s
    
    CRC
    文件#3 #4 #5 #6
    E103 E103 E103 E103 E103 E103
    时间:33ms 速度:45、0 kB/s
    
    发布器件
    
    总时间:250ms 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好,Koki

    请将 CRC 计算视为校验和: MSP430FR5x8x、MSP430FR692x、MSP430FR6x7x、MSP430FR6x8x 代码示例(修订版 I)上的 msp430fr69xx_crc.c。 谢谢!

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

    您好!

    感谢您提供示例代码。

    请同时告诉我们(1)和(2)。

    谢谢、

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

    您好!

    你有更新吗?

    谢谢、

    科基

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

    你(们)好,Koki

    (1) FRAM 上存在程序和数据、例如变量。 在计算源代码的校验和时、应如何指定计算范围?

    也请参考 msp430fr69xx_crc.c

     for (i=0;i<16;i++)
     {
       //将随机值输入到 CRC 硬件中
       CRCDIRB = CRC_INP[i];                //在 CRC 中输入数据
       __no_operation();
     }
     CRC_RESULT = CRCINIRES;                  //保存结果(按照 CRC-CCITT 标准)

    在这里、CRC_INP[i]是从起始地址开始的点。 “16”是需要计算的长度。

    (2)访问 FRAM 上的程序存储器区域是否需要执行任何程序?

    一般而言、CPU 可以直接访问 FRAM。 请参阅代码示例中的 msp430fr69xx_framwrite.c。

    FRAM 控制器和 FR5xx/6xx 器件上的 MPU。 请参阅 MSP430FR687x (1)混合信号微控制器数据表上的6.7 FRAM (修订版 C)

    谢谢!

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

    你(们)好、LI

    感谢您的回答。

    请告诉我如何知道 FRAM 代码区域的范围(起始地址和长度)。

    目前、链接器命令文件确认代码区域的起始地址、而映射文件确认代码区域的实际大小。

    请告诉我是否有更简单的检查方法(函数会自动返回代码区域的范围)。

    谢谢、

    科基

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

    你(们)好,Koki

    您可以考虑输出/生成 TXT 文件或 hex 文件来检查代码起始地址和长度。 谢谢!

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

    你(们)好、LI

    是否可以确定写入 MPU 寄存器的区域?

    作为 MPU 的函数、Segment3是代码和常量的区域、而 Segment3的末尾是 Border2。

    是否可以确定从 MPUSEGB2的 Border2写入的区域?

    谢谢、

    科基

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

    你(们)好,Koki

    在 MPU 设置上、CCS 上的工程的常规属性上有 MPU 设置 GUI。

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

    你(们)好、LI

    [引用 userid="465179" URL"~/support/microcontrollers/msp430/f/msp-low-power-microcontroller-forum/991615/msp430fr6879-calculate-the-checksum-of-fram-data-written-in-the-operation-of-the-software/3671106 #3671106"]如果有更简单的检查方法(函数自动返回代码区域的范围)。

    我知道 MPU 是一个决定存储器保护范围的单元、但 CPU 能通过 MPU 寄存器看到写入的 FRAM 存储器范围的值吗? (是否如上所述工作?)

    谢谢、

    科基

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

    你好,Kiko

    根据 《MSP430FR58xx、MSP430FR59xx 和 MSP430FR6xx 系列用户指南》(修订版 P)的第9章 MPU、CPU 可以检查9.7.3 MPUSEGB2寄存器和9.7.4 MPUSEGB1寄存器上的分段边界2和边界1。 谢谢!

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

    你(们)好、LI

    了解使用 MPU 的默认设置时、编译器会自动将程序代码分配给段3是否正确?

    [引用 userid="125557" URL"~/support/microcontrollers/msp430/f/msp-low-power-microcontroller-forum/991615/msp430fr6879-calculate-the-checksum-of-fram-data-written-in-the-operation-of-the-software/3677299 #3677299"] CPU 可以检查9.7.3 MPUSEGB2寄存器和9.7.4 MPUSEGB1寄存器上的分段边界2和边界1。[/引用]

    我知道、程序代码的第一个地址可以通过读取 MPUSEGB2的 CPU 找到。

    如果 CPU 能够知道程序代码的最后地址、请告诉我。

    谢谢、

    科基

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

    你(们)好,Koki

    默认情况下、用户代码的起始地址取决于.map 文件。 FR6879上的代码应为0x4400。 它应该在段1上。