2363471_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2363471_zh-CN

2363471_zh-CN

RW612 非安全 Flash 设置会中断 RESET 功能

你好

我在 FRDM-RW612 上使用 ARM TF-M 和 Zephyr(恩智浦下游 v4.3.0)时遇到了一个奇怪的错误。我想将闪存芯片的一个区域用于非安全 LittleFS 文件系统。 我按照恩智浦指南添加了一个 NS 区域(链接),并成功将该区域用于我的文件系统,Zephyr/FS API 或访问问题都没有出现。

我的问题是,当我启用 CONFIG_FLASH KConfig 选项时,我无法再重置我的板了。调用 tfm_platform_system_reset ()、nvic_systemReset (),甚至按下物理 RESET 按钮,都会锁定处理器,实际上不会再重置主板了。

我用调试器执行了一遍,在调试器脱离/断开之前执行的最后一行是 core_cm33.h:2683(在 __NVIC_SystemReset 内):

SCB->AIRCR = (uint32_t)((0x5FAUL<< SCB_AIRCR_VECTKEY_Pos) |
(SCB->AIRCR& SCB_AIRCR_PRIGROUP_Msk) |
SCB_AIRCR_SYSRESETREQ_Msk );

如果我在 RESET 后连接了调试器,GDB 会永远显示地址为 0x20005840 的程序。

我在一个非常基本的程序上尝试过同样的事情,即使在 zephyr hello world 程序中添加 CONFIG_FLASH 也会以同样的方式导致重置失败。


希望得到任何帮助,谢谢!

Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality

你好,@jm-streametric,希望你一切都好。

为了帮助我更好地分析这种行为,请确认在您使用 hello world 示例进行的测试中,您添加的唯一设置是否是 CONFIG_FLASH?或者,您是否也使用根据指南创建的设置(CONFIG_TFM_CUSTOM_DATA_IMPORT_REGION=y)启用了添加的 NS 区域?

我试过运行 Zephyr(下游 v4.3.0)中的你好世界示例,只添加了 CONFIG_FLASH 设置,我就能重置主板。

Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality

你好,杰克,谢谢你的解释。

RW610 和 RW612 的区别在于 RW610 不支持 802.15.4 协议,因此与 flexspi 外围设备没有区别。

请确认您是否使用 FRDM-RW612 文件来测试这些功能?或者你在 Zephyr 中为自己的板做了自己的名录了吗?

另外,你能在没有RESET功能的情况下正确运行示例吗?还是说 MCU 会在某个时刻发生故障?

Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality你好 Roman,
我在指定主板时在帖子中犯了一个错误,我在 RW610 中使用了自定义主板,但闪存配置与 FRDM-RW612 完全相同。即使使用CONFIG_FLASH=y,我也可以让开发板RESET,但是我的自定义板遇到了我的帖子中描述的问题。

即使将 TF-M 和 Zephyr 仓库设置为 FRDM-RW612 的默认值,我也会遇到在 config_flash=Y(有和没有自定义数据区域)时无法 RESET 板的问题。RW610 和 RW612 之间是否存在可能导致闪存/Flexspi 问题的差异?还是你认为这可能是我的主板的另一个问题?
Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality你好 Roman,

我正在使用未修改的 FRDM-RW612 文件来测试我的板的闪存功能,因为我的板使用相同的闪存 IC。我的主板上有不同的外围设备,我有覆盖层,但我没有将这些覆盖层应用到这个闪存测试用例中。

闪存确实可以工作,我可以在自定义区域内正常访问闪存数据。当我在自定义区域外访问闪存时,会出现故障,这在意料之中。唯一不起作用的是,如上所述,尝试以物理方式或使用 tfm_platform_system_reset () 重置主板会锁定主板。

谢谢
Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality

嗨,杰克,谢谢你提供的信息。

那么,当你将 "CONFIG_FLASH=y" 设置添加到任何项目时,你可以正常运行应用程序,除非你尝试进行任何类型的 RESET,这会导致你的程序在地址 0x20005840 处进入无限循环,我的理解正确吗?

您能否检查重置状态寄存器 (SYS_RST_S TATUS) 以检查重置原因是否已注册?此外,您是否使用非安全版本的板完成了所有测试?

如果你有 FRDM-RW612 板,能否请你对它进行一些测试,让我知道这种行为是否存在,使用你在使用自定义板进行测试时添加的配置相同?

Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality

嗨,罗曼、

那么,当你将 "CONFIG_FLASH=y" 设置添加到任何项目时,你可以正常运行应用程序,除非你尝试进行任何类型的 RESET,这会导致你的程序在地址 0x20005840 处进入无限循环,我的理解正确吗?

是的,这是正确的。 我只能通过关闭主板的电源然后重新开启来重启程序。


您能否检查 RESET 状态寄存器 (SYS_RST_S TATUS) 以检查 RESET 原因是否已注册?

我目前正在使用 zephyr 样本 hello_world 尝试这些测试。 无论有没有配置 config_flash=Y,再加上我的自定义板或真正的 FRDM-RW612,我都无法在 SYS_RST_STATUS 上获得值。我尝试按下物理 RESET 按钮(连接到 SOC 上的 PdN),在 printf 语句之后调用 tfm_platform_system_reset (),然后通过访问空指针触发硬故障,但是这些都没有在 RESET 状态寄存器上生成值。

我尝试在 RESET 之前、在地址为 0x20005840 的回路中 RESET 之后、在 BL2 阶段 RESET 之后,不管 SYS_RST_STATUS 是 0。我不确定我检查错了吗,我使用 GDB(通过 west attach)进行调试,然后通过打印 p * ((pmu_type*) 0x40031000u) 在 PM U 区块中获得值。如果有帮助的话,当我采样时,SYS_RST_EN 寄存器始终是 0x39。


此外,您是否使用非安全版本的板完成了所有测试?

是的,我通过删除编译文件夹然后运行 w est build-b frdm_rw612/rw612/r w612/ns 来整理所有这些测试。


让我知道这种行为是否存在,使用与您在自定义板测试时添加的配置相同?

我的大部分配置都与柔性通信端口上的外设有关。 为了测试这个问题,我只留下了对TF-M配置文件所做的更改。我使用的是 TF-M medium arotless 配置文件而不是大型配置文件,这样我就可以使用 TF-M FWU 分区进行无线固件更新。为此,我有 3 个额外的 zephyr KConfig 选项:

CONFIG_TFM_PROFILE_TYPE_AROTLESS=y
CONFIG_TFM_SFN=y
CONFIG_TFM_ISOLATION_LEVEL=1

我在 TF-M 模块文件夹中编辑的唯一内容是 modules/tee/tf-m/trusted-firmware-m/platform/platform/ext/target/nxp/frdmrw612/config.cmake 中的以下配置文件设置:

设置 (TFM_PROFILE " profile_medium_arotless " 缓存字符串 " TF-M 配置文件 ")

修改自"profile_large"


谢谢您的帮助,如果我能提供更多信息,请告诉我。

Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality

嗨,杰克,谢谢你回答我的问题。

既然你提到过使用 FRDM-RW612 进行过测试,那么你能在这款主板中复制 RESET 行为吗?我已经尝试添加您的配置和 TF-M 版本更改(TF-M 配置文件),但我仍然无法重现您的行为。

如果您能够重现这种情况,请与我们分享在 FRDM-RW612 上重现这种行为的详细步骤。

Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality你好 Roman,
我发现我的主板原理图有误,我使用的闪存芯片实际上是 W25Q01,而不是像 FRDM-RW612 那样的 W25Q512。我将 W25Q512 焊接到我的主板上,现在它可以毫无问题地重置了。我为之前浪费您的时间向您道歉。

是否有任何资源可以帮助您重新配置闪存设置,使其与我的芯片配合使用?我在 flash_config.c 中看到了 fc_flexspi_nor_config_t 结构哪个是为 W25Q512 设置的,但是有没有文件或指南具体说明我需要更改哪些才能适应我的新芯片?
Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality

你好,杰克,别担心,谢谢你让我知道了根本原因。

遗憾的是,没有重新配置闪光灯的具体指南。但是,您可以参考 RD-RW612-BGA 主板目录的结构或 IRIS-W1-EVK 主板目录(来自 U-blox)的结构,这两个目录的闪存 IC 都与 FRDM 板不同,以了解在使用不同的闪存时需要进行哪些更改。

对于 TF-M,还有 RD-RW612-BGA 非安全版主板的目录,该目录也可以作为所需更改的参考。

希望对您有所帮助!

Tags (1)
No ratings
Version history
Last update:
‎05-30-2026 04:09 AM
Updated by: