[求助] 使用#28335 Flash API 问题

[求助] 使用#28335 Flash API 问题

此问题已被解答
All Replies
  • 秀才190分

    今天在调用#28335 Flash API 进行编程的时候,前面Erase,Program 都是成功的,而Verify 是失败的,这是哪门子出问题了呢?

    返回错误是:

    // ---- Verify Specific errors ----
    #define STATUS_FAIL_VERIFY 40

    Verify 做了哪些操作呢?为什么会失败呢?

    请知情人告知,不胜感激;

    PS:之前在#2812 情况下已经成功实现调用Flash API 进行编程,而#28335 遇到Verify 失败的问题;

  • 探花17936分

    您使用哪个版本的ccs,哪个FLASH API?

  • 秀才190分

    我用的是CCS V3.3 , Flash28335_API_V210.lib;

    今天我试了一下, 如果去掉Verify 这一步,  整个编程过程结果还是值得可信的,功能正常;

  • 秀才190分

    通过阅读:controlSUITE_Flash2833x_API_Readme.pdf; 了解到:

    The verify operation failed because one or
    more bits did not match the reference data.
    Try increasing the flash or OTP wait states.

    修改:

    #if CPU_FRQ_150MHZ
    //
    // Set the Paged Waitstate for the Flash
    //
    FlashRegs.FBANKWAIT.bit.PAGEWAIT = 5;

    //
    // Set the Random Waitstate for the Flash
    //
    FlashRegs.FBANKWAIT.bit.RANDWAIT = 5;

    //
    // Set the Waitstate for the OTP
    //
    FlashRegs.FOTPWAIT.bit.OTPWAIT = 8;
    #endif

    于是问题得到解决,Erase/Program/Verify 操作得到解决;