2122162_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2122162_zh-CN

2122162_zh-CN

MCX-Nx4x EEPROM 型存储器

寻找与 LPC546xx 部件上的 EEPROM 存储块类似的东西。

MCX 部件似乎有一个闪存 ROMAPI,但它的文档非常少,而且缺乏清晰的示例。CFPA 与 CMPA?递增字段?有很多预先指定的地点?区块大小限制不明确?工厂还是内场还是密钥库?

再加上它是在 ROM 中,所以根本无法按照代码进行操作。这让我想起了 LPC546xx USB 功能,由于文档不完善,这些功能同样难以理解。

哦,我读过 AN14259,有一点帮助,但还不够。

我想要的只是一个持久但不是 OTP 内存区域,我可以在其中存储特定应用的常量。我可能遗漏了什么,请为我指点迷津。

感谢您的帮助!

启动 ROM | 启动配置 | 闪存核心与内存Re: MCX-Nx4x EEPROM type memory

你好,帕布罗、

感谢你们一直以来的支持。

我想我终于找到了解决这个问题的办法,现在我可以把数据放到 CMPA 页面的空闲区域了。这一切都取决于对MBC的理解,不幸的是,参考手册对它的使用方式并不十分清楚。但是,《网络安全参考手册》第 21 章更有帮助,一旦我配置了 MBC,ROM 闪存 API 就开始按我的预期工作了。

我真的认为,如果在这方面有一些更好的例子,就会节省我很多时间。闪光灯隐藏可能是最接近所需的方法,但如果没有很好地解释它的实际作用,就太不清楚了。

祝您一切顺利,再次感谢您的帮助、

安迪

Re: MCX-Nx4x EEPROM type memory

你好,我是@andyjackson

要编程和读取 CMPA 区域,可以使用 FLASH API。通常,用于写入 CMPA 数据的函数是 ffr_cust_factory_page_write。您可以在参考手册的第 13.2.2.10 节中找到有关此函数的更多信息。

此外,以下社区帖子可能有助于了解如何使用 FLASH API 更新 CMPA 闪存区域。
MCXN5 CMPA 写入失败 - 恩智浦社区

最美好的祝愿,
Pablo

Re: MCX-Nx4x EEPROM type memory

你好,帕布罗、

感谢您上次的回复。我一直在进一步研究这个问题,根据CMPA参考手册中的MCXNx4x_IFR.xlsx 电子表格,CMPA 的 0x01004200 到 0x01005FFF 是客户定义的,看起来很完美。但是,我还没有找到进入这一区域的方法。

ffr_getCustomerData () 最多可以让我读取 CMPA 8Kbyte 页面的 0x1FF 字节,而标准闪存功能 flash_read/program/Erase 等似乎只能在主程序闪存中使用。如何访问 CMPA 页面的其他内容?

我已经看过这样的例子,其中CMPA页面的前512字节可以更新,但不能访问页面的其余部分。有什么想法吗?

致以最美好的祝愿、

安迪

Re: MCX-Nx4x EEPROM type memory

你好@andyjackson

我知道参考手册可能会让人不知所措。


Re: 使用 MCX N ROM API 进行内部闪存擦除/编程 - NXP Community

此外,mcxromapi_flash_hiding_cm33_core0 示例可能会有所帮助,因为它展示了 MBC 如何对内部闪存的每个块提供读、写和执行访问控制。

敬上,
Pablo

Re: MCX-Nx4x EEPROM type memory

你好,帕布罗、

谢谢您的答复。我希望能够在运行时读取和保存持久的应用程序数据,因此无法选择安全配置工具。

主闪存库可能会在固件更新时重新刷新,因此使用主闪存库似乎也不是办法。

此外,更新后重启同样也是不可能的,因为这会中断执行,因此这似乎排除了 CFPA 的可能性,只剩下 CMPA。

在 AN14259 中,几乎 CFPA 和 CMPA 中的所有位置都有预定义用途,因此我不确定可以安全地写入哪些位置。

我尝试使用 FFR_GetCustKeystoreData/FFR_CustKeystoreWrite 和 FFR_GetCustomerData/FFR_CustFactoryPageWrite,虽然读取似乎正常,但写入似乎总是产生硬故障。此外,我还在猜测如何正确使用它们,因为我不知道它们的代码示例。

我不禁觉得自己漏掉了什么,因为对于大多数微控制器应用来说,类似 EEPROM 的小块用户区域似乎是必不可少的。不幸的是,有了将近4000页的参考手册,很难消化所有信息。

致以最美好的祝愿、

安迪


Re: MCX-Nx4x EEPROM type memory

你好,我是@andyjackson

MCXN 具有保护闪存区域 (PFR),其中包括两个可编程页面:CFPA(客户现场可编程区域)和 CMPA(客户制造/工厂可编程区域)。这两个区域都可以多次写入。

正如你所提到的,应用笔记 AN14259 提供了如何使用 ROM API 修改 CFPA 位域的示例。

您也可以使用 MCUXpresso安全配置工具来实现此目的。该工具的《用户指南》包括第 5.2.8 节:OTP/PFR/IFR/BCA/FCF 配置,说明如何使用图形用户界面修改 CFPA 位字段。图形用户界面还提供了每个字段的详细说明。

此外,应用笔记 AN14178 可能会有所帮助,因为它演示了如何使用闪存命令控制器而不是 ROM API 来执行闪存读写操作。

此外,MCXN947 SDK 中还有一个名为 mcxromapi_flash_hiding_cm33_core0 的示例,你可能会感兴趣,这个示例演示了闪存隐藏程序。

顺祝商祺!

巴勃罗

Re: MCX-Nx4x EEPROM type memory

你好

不幸的是我无法提供代码版本,但关键部分是:

1。阅读并理解《网络安全参考手册》中关于 MBC 功能的第 21 章

2.在初始化代码(在 CPU0 上运行)中需要这样的内容:

//要让 RW 访问 CMPA 页面,需要配置
MBC//参见 MCX Nx4x 网络安全参考手册第 21 章
TRDC-> MBC_INDEX [0] .MBC_MEMN_GLBAC [5] = 0x7700;
TRDC-> MBC_INDEX [0] .MBC_DOM0_MEM1_BLK_CFG_W [0] |= 0x500;

之后,FLASH_xxxxxx 功能应能以 RW 方式访问 CMP 块。有关这些功能的使用,请参见恩智浦示例。

希望对你有所帮助、

安迪

Re: MCX-Nx4x EEPROM type memory

@andyjackson能否提供代码示例或更多细节,说明您是如何做到这一点的?我也在尝试将数据存储到 CFPA 的客户定义区域,但至今没有任何进展。

Re: MCX-Nx4x EEPROM type memory

谢谢你,安迪、

在再次查看了你的评论和参考手册之后,我仍然遇到CFPA的问题,但是,我现在有一个与CMPA合作的小例子,这将是一个很好的起点。我附上了一个小的示例片段,以备将来有人偶然发现时能有所帮助。

感谢您的帮助

Re: MCX-Nx4x EEPROM type memory

您好,

一个很好的小例子!我要补充的唯一一点是,如果你想在区块的前512字节中保留恩智浦定义的数据,我认为你需要在擦除之前复制它,然后重写。

作为恩智浦的最后评论——这确实应该是SDK的示例之一,因为我怀疑很多人想要一种存储动态特定应用数据的机制。遗憾的是,没有专用的用户闪存区,没有恩智浦定义的数据要求。

安迪

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎12-04-2025 12:34 AM
更新者: