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.

[参考译文] TMS320F28027:使用 Flash_API 的 Flash_program

Guru**** 2529560 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/603235/tms320f28027-flash_program-using-flash_api

器件型号:TMS320F28027
Thread 中讨论的其他器件:controlSUITE

我想知道如何对 MCU 闪存进行编程。

我已将 2802x_FlashAPI_BootROMSymbols_v2.01.lib 导入到我的项目中、并包含闪存 API v201a 包括。

我在代码中调用了版本检查、并且能够获得2.01作为浮点值。  

但是、当我尝试对闪存进行编程时、它会暂停。 我可以看到我正在尝试写入的特定位置(扇区 C)清除闪存、并且我正在执行一个简单的程序闪存、如闪存 API 示例中所示:

e2e.ti.com/.../5381.Example_5F00_2802xLEDBlink.c

 在它暂停后、它将所有闪存扇区复位为0x0000。 我做了些什么不对吗?  

此外,如果我使用的是 bootROM 库,我不需要在.cmd 文件中添加任何段,这是正确的吗?  

请告知我如何将一个字写入闪存扇区 C  

此致、  

Rajan Joshi

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

    您是否正在使用 controlSUITE 中的以下示例项目? 此外、您是否进行了任何更改?

    libs\utilities\flash_api\2802x\v201a\example_ccsv5


    此致、

    曼诺伊

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

    我使用了该示例、它在我的器件上工作。 我正在尝试在另一个项目中使用 FLASH_API。

    当我尝试调用 flahsAPI 版本()以外的任何其它函数时、我会得到一个错误。

    如果你看看我的源代码文件、你可以看到我已经使用了 Flash_Program 函数、但是我不确定我是否需要执行任何额外的步骤来进行擦除和写入操作。

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

    Rajan、

    1) 1)您是否从 RAM (或)闪存执行闪存 API 函数?

    2) 2)您是否在汇编模式下单步执行代码并找到导致错误的指令? 我想知道您是否正在执行非法操作码

    3) 3)您是否确保遵循示例文档中提供的所有建议?

    此致、

    曼诺伊

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1) 1)您是否从 RAM (或)闪存执行闪存 API 函数?

    我当前使用的是引导 ROM 库、从 RAM 运行。

    2) 2)您是否在汇编模式下单步执行代码并找到导致错误的指令? 我想知道您是否正在执行非法操作码

    是的、我单步执行了代码、并且我能够将其引脚指向擦除指令。


    3) 3)您是否确保遵循示例文档中提供的所有建议?

    是的、我复制了示例擦除函数中的所有代码、但仍然失败。


    但是、您的第二个问题正确、我正在执行非法 ISR。 这可能导致了错误。 我在文档中读出、在对闪存进行读取或写入时、应避免触发中断。

    无论如何、我在移除 ISR 后能够擦除和写入闪存。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rajan、

    很好。 问题是否已解决?

    我可以关闭此主题吗?

    此致、

    曼诺伊

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、Manoj、我认为该螺纹可以闭合。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Manoj、

    很抱歉再次打开这个线程、但我想知道是否有一种方法可以停止所有中断例程、并在代码执行后(在我的示例中写入闪存)再次启动它?

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

    使用 asm (" SETC INTM")全局禁用中断、并使用 asm (" CLRC INTM")全局重新启用中断。

    此致、
    曼诺伊