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.

[参考译文] TMS320F28377D:Fapi_calculateEcc ()和__addr32_read_uint16 ()的 C 示例代码

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/566655/tms320f28377d-c-sample-codes-for-fapi_calculateecc-and-__addr32_read_uint16

器件型号:TMS320F28377D

您好!

请告诉我标题函数的示例代码吗?

我的最佳发现是另一个线程。 我明天会尝试、但我需要询问 TI 生成的代码。

https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/432319/1547330

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

    1_addr32_read_uint16 ():这是一个用于读取更高地址存储器(地址宽度超过22位)的内在函数。 如您所知、F2837xD 中的闪存 ECC 空间映射到更高的地址。 因此、我们建议使用此内在函数(语法在 TRM 中)对更高地址存储器的 CPU 读取。 但是、如果您使用最新的 C28x 编译器、并且可以像对较低地址范围进行编码一样对此 ECC 存储器读取进行编码、则不再需要此操作。

    fapi_CalculateEcc()获取 uint32 (无符号长整型)地址和 uint64 (无符号长整型)数据。 您必须为此函数提供64位对齐地址和相应的64位数据。 请注意、在传递到该函数之前、必须将地址左移1个位置。 此函数为您提供的地址和数据提供8位 ECC (返回变量的高8位将为0x00)。

    例如、
    uint16 ecc_data = 0;
    uint32 64_bit_aligned_address = 0x82000;
    uint64 64位 数据_at_0x82000 = 0x0123456789ABCDEF;

    ecc_data = Fapi_CalculateEcc (64_bit_aligned_address << 1、64位 数据_AT_0x82000);

    谢谢、此致、
    Vamsi