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.

[参考译文] TMS320F28335:F28335_flash_kernel 中的错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/593314/tms320f28335-bug-in-f28335_flash_kernel

器件型号:TMS320F28335
Thread 中讨论的其他器件:controlSUITEC2000WARE

 shared_Boot.c 中的行

状态= Flash_Erase (((sectora | sectorb | SECTORC | SECORD)、&FlashStatus); 

不会擦除扇区 E-H 这可能会导致在已部署的控制系统中难以跟踪的问题、因为编程可能在空白器件上以及编写小程序时看起来正常。  只有当左侧输出扇区中的位从0更改为1时、该错误才会出现。

我建议将这条线改为

状态= Flash_Erase ((sector_F28335)、&FlashStatus); 

请确认这是否是错误、以及建议的修复是否足够。

状态= Flash_Erase (((sectora | sectorb | SECTORC | SECORD)、&FlashStatus);

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

    Stian、


    您是否在谈论在以下路径中找到的 shared_Boot.c:-

    libs\utilities\boot_rom\2833x\2833x_boot_rom_v2\source


    如果是、我看不到该文件中调用了 Flash_Erase 函数。

    此致、

    曼诺伊

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

    Manoj、

    C:\TI\c2000Ware_1_00_00_00\device_support\F2833x\examples\F28335_flash_kernel

    戴维

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

    好的。 我想您正在讨论中的 shared_Boot.c 文件

    \device_support\F2833x\v142\DSP2833x_examples_ccsv5\F28335_flash_kernel

    您的观察结果是正确的。 如果您计划对整个闪存重新编程。 务必确保完全擦除闪存。 但是、如果您打算重新编程扇区 A、那么在重新编程扇区 A 之前、只需擦除扇区 A 即可

    我想、在您的案例中、您正在尝试对完整闪存重新编程。 因此、完全擦除所有扇区是有道理的。 因此、正如您提到的、您可以使用 status = Flash_Erase ((sector_F28335)、&FlashStatus);

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你是对的。 默认为闪存容量最小的器件型号。

    我将更新示例软件、使其适用于可由#define 宏指定的所有器件型号。

    SAL