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.

[参考译文] TMS320F2800137:起始地址和可在闪存 API 编程中编程的字节数之间的关系

Guru**** 2394305 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1401069/tms320f2800137-relation-between-start-address-and-number-of-bytes-that-can-be-programmed-in-flash-api-programming

器件型号:TMS320F2800137
Thread 中讨论的其他器件:C2000WARE

工具与软件:

你好、专家

非常相似

((+)[常见问题解答] RM46L852:可以在闪存 API 编程中编程的起始地址和字节数之间的关系-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

但我在2800137中进行了测试、

在 0x8800A 写入8个字节

这个地址可以写为16*N+2 (16*0x88000+2 ),所以根据前面给出的表在这个地址,我们可以写14字节。 在这里、我们只写入8个字节、这样写入就不会有任何问题。

测试结果如下、I write failed?为什么与 RM46L852 的 API 库不同?

缓冲

代码:

测试结果

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

    您好!

    在2800137器件中、可以以16位字(而不是字节)进行编程。 如果起始地址 进行了128位对齐、则一次最多可以编程8个16位字(128位)。

    有关更多详细信息、请参阅 C2000ware 中的闪存 API 用户指南和示例程序(https://www.ti.com/lit/pdf/spruj96)

    谢谢、此致、

    Rajeshwary

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

    你(们)好

    96位 写入 0x88000、成功。

    因为 最多八个16位字(128位)、所以我将 96位 写入 0x88000、所以应该  将0x88006写入32位 、

    但失败了、它跳转至 Interrupt_nmiHandler、为什么?

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

    尊敬的 Youjun:

    我想您使用的是 AutoECCGeneration 模式。 请注意 这一点

     "ECCE.Generation 模式将对闪存中提供的数据以及自动生成的 Fapi_Auto 进行编程。 针对在64位存储器边界上对齐的每个64位数据计算 ECC。 因此、在使用该模式时、应针对给定的64位对齐存储器地址、同时对所有64位数据进行编程。 未提供的数据全部视为1 (0xFFFF)。 针对64位数据计算 ECC 并对其进行编程后、即使在该64位数据中将位从1编程为0、也无法对此类64位数据进行重新编程(除非扇区被擦除)、因为新的 ECC 值将与先前编程的 ECC 值相冲突。 使用该模式时、如果起始地址进行了128位对齐、则可以根据需要同时对8个或4个16位字进行编程。 如果起始地址进行了64位对齐而不是128位对齐、则只能同时对4个16位字进行编程。 "

    谢谢、此致、

    Rajeshwary