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.

[参考译文] CCS/TMS320F28069:闪存库"FlashErase()"如果在没有调试器的情况下运行、则返回错误代码"STATUS_FAIL_PRIOR&quot

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/779901/ccs-tms320f28069-flash-library-flasherase-returns-error-code-status_fail_precondition-if-running-without-debugger

器件型号:TMS320F28069

工具/软件:Code Composer Studio

大家好、团队、

上下文:

我正在实施一个引导加载程序、该引导加载程序从 SD 卡读取 S-Record 文件、将其转换为二进制文件、并将其逐行写入闪存。

问题:

只要我在调试器(CCS)下运行软件、一切都正常。 这意味着软件可以自由运行(不带步进或断点)。

但是、一旦我尝试在 调试器的"外部"运行 SW (我只需将其加载、然后我终止调试器并通过复位来启动电路板)、
FlashEras()不会擦除任何内容,而是返回上述错误代码。

遗憾的是、库的头文件和库随附的.PDF 文档中都没有任何解释。
由于没有源代码、我现在卡在这里...

未超过400kHz 时钟频率限制(SPI 初始化期间需要):我们使用~350kHz。
无论如何、在我看来、SPI 上下文中可能存在某种计时问题...  也许;-)

是否有人具有使用闪存库的经验?

最诚挚的感谢、

Goetz

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

    正如我在一个较旧的论坛条目中所发现的、有一个解决方案:
    代码序列:
    Flash_CPUScaleFactor = scale_factor;
    Flash_CallbackPtr = PTR_NULL;//我们不使用回调函数
    必须被"EALLOW"和"EDIS"包围(正如在闪存库示例中实现的那样...)

    好的、我的问题已经解决了... 我们可以关闭该线程。

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

    感谢您发布该解决方案。 我将检查文档以确保包含此详细信息。 如果没有、我将提交一个 TT 并通知所有者更新文档以捕获此信息。

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

    Vamsi / Goetz、

    是的、Flash_CPUScaleFactor 和 Flash_CallbackPtr 都受 EALLOW 保护。

    此信息已在 Flash2806X_API_Quickstart.pdf 中捕获。

    此致、
    曼诺伊