团队、
我的客户在 新项目中使用 TM4C1294NCPDT。 为了重新配置配置配置值、需要在运行时对少量闪存进行重新编程。 读取配置数据并将其放入 RAM 中进行修改。 之后、数据被写回闪存。
他们希望使用基于中断的闪存编程例程、因为轮询需要太长的时间、但他们有时会遇到故障、就好像他们会访问当前正在编程的闪存(故障 ISR)一样。 轮询模式工作正常。
您是否有任何建议或示例可以演示基于中断的闪存编程?
如果您需要更多信息、请告诉我。
谢谢!
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.
团队、
我的客户在 新项目中使用 TM4C1294NCPDT。 为了重新配置配置配置值、需要在运行时对少量闪存进行重新编程。 读取配置数据并将其放入 RAM 中进行修改。 之后、数据被写回闪存。
他们希望使用基于中断的闪存编程例程、因为轮询需要太长的时间、但他们有时会遇到故障、就好像他们会访问当前正在编程的闪存(故障 ISR)一样。 轮询模式工作正常。
您是否有任何建议或示例可以演示基于中断的闪存编程?
如果您需要更多信息、请告诉我。
谢谢!
感谢 Bob、以下是更多详细信息:
不可以、我们在对闪存进行编程时不从 RAM 执行。 根据我们的理解、我们可以在对其他扇区进行编程的同时从闪存的某些扇区执行。 我们的应用占用的 RAM 小于或小于128kByte (0x0000...0x1FFFF),然后是一些当前未使用的闪存,然后是具有固定校准数据(0x80000...bbffff)的巨大区域,在常规模式下没有改变,最后我们在闪存0xc0000...的上部16KB 中有一些配置数据。 0xfffffff)、需要不时对其进行重新编程。 我们相信(!) 我们在固件中进行了一些保护、在重新编程该扇区时、我们不会尝试访问配置数据。 实际上,我们在开始擦除该上部扇区之前设置了一个“忙”标志,并在编程该上部闪存扇区的最后一页之后清除该标志。 我们认为、在访问配置数据之前、我们会查询此忙标志。 我们偶尔会由于闪存编程尝试而崩溃。 我99%确信,中断会在不查询此忙标志的情况下尝试访问配置数据,或者外部控制软件会在上一个编程周期真正完成之前尝试重新编程此配置数据。 它在很大程度上看起来像是我们的固件问题。 但是、我们没有看到任何示例程序、也没有 像我们那样使用中断功能对 TIVAWARE( 在擦除和重新编程配置数据时必须有某些功能,因此我们不想像 TIVARE 那样在轮询环路中等待)。 这就是我们询问中断模式下闪存擦除和编程是否存在已知问题的原因。
或外部非易失性存储器。 选择取决于您销售的商品数量、更新的频率、所需存储空间大小、更新发生的条件以及损坏的后果。
板载 EE 确实需要小心。 阅读勘误表(您也应该为闪存执行此操作)。 不过、所需的护理比闪存的护理要简单得多。
写入闪存会带来很大的负担
Robert
[引用 USER="FRAMziskus"]您是否发现基于中断的闪存擦除和写入与基于轮询的问题?
[/报价]
首先、 如果只有 几百个字节被改变、那么应用程序不需要首先擦除写入的地址。 其他文章 转移 了 如何将上述数据存储在何处这一主题 、因为闪存写入 只能在 内存单元 开始降级之前保证数百万个或多个 R/W 周期。 这不会阻止经常 将小参数块存储 到闪存的应用工程师。 然而、为了 安全起见、RAM 成为非常大且频繁的参数块更改的首选。 在 内存单元降级(熵)之前、EEROM 也具有有限的 R/W 周期、这是闪存和 EEROM 的敌人。