您好!
目前、我正在考虑使用一种方法来计算 写入软件的 FRAM 数据的校验和。
(1) FRAM 上存在程序和数据、例如变量。 在计算源代码的校验和时、应如何指定计算范围?
(2)访问 FRAM 上的程序存储器区域是否需要执行任何程序?
(3)如果您提供有关校验和计算的示例代码等、请告诉我。
谢谢、
科基
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.
您好!
目前、我正在考虑使用一种方法来计算 写入软件的 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。 谢谢!
你(们)好,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
[引用 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 能够知道程序代码的最后地址、请告诉我。
谢谢、
科基