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.

[参考译文] TMS320F2800157:在擦除闪存扇区时处理中断

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1296509/tms320f2800157-servicing-interrupts-while-erasing-flash-sector

器件型号:TMS320F2800157

您好!

如标题所述、我正在尝试在擦除闪存时为 ISR 提供服务 、目前没有解决方法。

我的设置:

我已设置 CPU 计时器1、每100us 触发一次、并正在 ISR 中切换一个引脚。 每秒钟我将擦除一个(已完全写入)的闪存扇区、并观察闪存正在擦除时引脚在几毫秒内没有切换。

我所做的:

-我把我所有的函数放入 ram:调用闪存 API (所有后续层,一直到 main )的函数,FAPI 本身,还有计时器 ISR。 我通过存储器查看器检查这些函数是否在 RAM 中、我还可以确认它们是从 RAM 执行的、因为 PC 在断点 ISR 时指向 RAM。

-我不是访问在 ISR 中被擦除的扇区-实际上我在 ISR 中所做的只是通过直接从寄存器中写入 GPIO 数据来切换引脚。

-我也注意到  Fapi_issueAsyncCommandWithAddress  函数是阻塞类型。 CPU 在几毫秒的持续时间内保持此功能、在此期间、引脚不会切换。  Fapi_checkFsmForReady  应检查 FSM 是否已完成闪存擦除、我希望 CPU 快速退出 issueAsyncCommand 函数、然后在检查 FsmForReady 函数时循环(并能够执行其他代码)。 但这不会发生、FsmForReady 函数被检查一次并通过。  

Question:

是否需要配置其他某个组件才能使其正常工作? 可以在此芯片上中断闪存 API 吗?

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

    尊敬的 Matic:

    我们会在几天后进行审查并回复您。

    谢谢。此致、

    瓦姆西

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

    我让它运行起来。 感谢大家。

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

    Matic、

    很高兴知道它现在正在工作。  活动擦除操作期间对闪存的任何数据/代码访问是否导致了延迟?

    谢谢。此致、

    瓦姆西

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

    尊敬的 Matic:

    因为我没有听到您的反馈、所以我将关闭此帖子。

    谢谢。此致、
    瓦姆西

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

    忘了回答-是的,问题是,我忘了把 Fapi 自己投入 RAM。 出人意料的是、它仍然有效、但在擦除期间阻止了 CPU。

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

    尊敬的 Matic:

    感谢您再次来到这里并留下评论。

    是的、只能在这个器件上从 RAM 中执行。

    谢谢。此致、

    瓦姆西