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.

[参考译文] F28M35H52C:FlashGainPump 被永远阻断

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1253418/f28m35h52c-flashgainpump-blocked-forever

器件型号:F28M35H52C

大家好、我将使用 driverlib 和 flashapi 为闪存开发一个紧凑型驱动程序、

我的程序从闪存中执行、但整个驱动程序从 RAM 中执行(包括闪存 API 和必要的闪存函数)

问题是、当我调用 FlashGainPump 时、它第一次工作、然后我从 Fapi 库中调用擦除扇区函数、它返回成功的

在函数的末尾、我调用 FlashLeavePump 函数

在扇区被擦除后、我尝试用128位编程来对其进行编程(ECC 自动生成)、并且我调用 FlashGainPump、但是字段 SEM 在前一个调用的0x2上卡住、因此

while 循环:

    while(HWREG(MTOCIPC_BASE + IPC_O_MPUMPREQUEST) != 0) { }

永远运行、即使 FlashLeavePump 应该已经将其复位为零、当我强力地尝试从调试器修改它时(使用相关的密钥和 SEM 值)、它会工作并且值会复位。

由于我的 C28暂时无法引导、我想我将尝试在不获得信号量的情况下对闪存进行编程、程序返回成功、但 FSM 状态寄存器全部为1、且地址未编程、因此可能存在某种错误。

我的初始化:

具有适当系统时钟和等待状态的 FlashInit。

两个区域上的 DCSM 解锁(即使密钥均为 FF)

3. Fapi_Initialize

4. Fapi_setupBankSectorEnable

5.Fapi_setupEepromSectorEnable

6. Fapi_Flash 0;

请注意、MRALLOW 和 MDI 封装了驱动程序中的每个功能。

映射文件显示每个驱动程序函数+我的高级函数都映射到 RAM (调试反汇编显示 RAM 地址)

如前所述、C28未引导。

谢谢。

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

    Daniel:

    为响应延迟而道歉。  我需要由团队中的其他一些人来执行此操作、以了解可能的问题是什么。  我会在一天结束时再回复。

    此致!

    马修

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

    Daniel:

    您能够成功执行 TI 提供的闪存 API 使用示例吗?

    谢谢。此致、
    瓦姆西