Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
S32K310 SRAM 溢出 S32K3 Automotive-Rtd 本周,当我在集成开发环境中为 S32K310 项目构建外设时,它报告了 SRAM 溢出错误。 khty_2-1766049415447.png@Smartling Language Service 但是,我的项目是全新的,主功能是空的。根本没有应用代码,我只是为我的 MCU 配置了必要的外设。 我检查了 demo_310.map 文件,以确定内存使用过多的原因。 khty_3-1766049731958.png 我发现 RTD 代码包中的一个文件占用了大量的 SRAM 空间。K310 的 SRAM 地址范围为 0×20400000 至 0×20404000,但现在的地址分配已达到 0x20404200。 仅 RTD/src/SchM_Gpt 文件就占用了超过 2KB 的空间。我知道 S32K310 MCU 的外部 SRAM 空间只有 16KB,我相信 RTD 软件包中肯定存在一些问题。 我打开了相应的文件,发现了下图所示的问题。 khty_4-1766050734693.png 如图所示,在文件中,变量定义的长度设置为 4。我知道这是为多核系统准备的。但是,在我目前使用只有一个内核的 S32K310 的项目中,RTD 软件包仍然将内核数量设置为 4。这会导致变量占用的空间扩大四倍。 调整核心编号配置并重建项目后,我可以看到 RTD/src/SchM_Gpt 占用的空间从 0x860 降至 0x218,这是相当可观的。 khty_6-1766051445731.png 因此,请解释为什么像 S32K310 这样的单核设备仍然将内核数设置为 4。这是错误吗? 我使用的版本如下: 用于 S32 平台的 S32S32 Design Studio 3.6.2 S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_20250610 我还在附件中上传了我的项目文件,供您确认。 我非常期待您的答复,因为这对我很重要。 谢谢! Re: S32K310 SRAM overflowed Hi@khty 我已经向 RTD 设计团队报告了这个问题,需要一些时间才能得到回复。 Re: S32K310 SRAM overflowed Hi@khty 我收到了设计团队的回复,他们确认这是一个错误。 目前,您可以手动将内核数改为 1。 当有正式的解决方法或版本修复时,我会再次通知您。
View full article
S32K396 我们的处理器是 S32K396。使用 ADC 时,出现以下错误: 我总共有 5 个 ADC。其中两个分别使用 AD5 控制器的通道 1 和通道 3。通道 1 的数据采集偶尔会出现异常。此时,用万用表测量,引脚上有电压,但无法获得数值。当通道 3 被屏蔽时,通道 1 正常工作。 其余 3 个 ADC 通道分别使用单独的 AD 控制器,所有通道均运行正常。 附件包含我的 AD5 元器件的配置和 ADC 采集码。请看一看,如果有任何问题,请告诉我。 谢谢! 我们的处理器为s32k396,使用adadc时出现如下错误:... 我共有5路adc,其中有两路分别用了ad5控制器的通道1和通道3;此时会偶发性出现通道1采集异常,此时通过万用表测量管脚上存在电压,但是采集不到值。当把通道3屏蔽掉之后,通道1工作正常。 剩余3路adc分别单独使用一个ad控制器,均工作正常。 附件是我的ad5组件配置及adc采集代码,麻烦看下什么问题。 谢谢!
View full article
EB_TresosStudio_v24.0.1激活 激活 NodeLocked 许可证 B25C-AEBB-4319-BAB1,许可证数量:1 Status:4, 创建请求 状态:5,已创建请求 状态:6、创建上下文 状态:7,已连接远程服务器 状态:8,请求已发送 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:11,已完成 ERROR: flxActAppActivationSend (50040,41147,10248) 指定的数量超过最大允许数量 (0)。 连接 FlexNet Operations Server 失败。 为什么会激活失败 Re: EB_TresosStudio_v24.0.1激活 HI 以下是 FlexnetHelp 的回复: 现在,我们的团队正在更新系统中的激活码信息。在此之前,请使用下面提供的新激活代码: F5CF-8A53-B979-CD50 祝好, Robin ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题,并参考已关闭的主题。 -------------------------------------------------------------------------------
View full article
DMA 付き S32K358 RTD ICU の例 デラサポート、 私のお客様である Aptiv は、DMA ベースの ICU 処理を求めています。着信立ち上がりエッジに基づいて、mcl ドライバで構成された DMA トランザクションが発生するはずです。当社の RTD ICU ユーザー マニュアルには、いくつかのリリース以降、同じ記述があります。 3.6.1 DMA機能付きIcu この機能のヒントは次のリリースで追加されます。 RTD5.00 / 6.0.0および7.0.0に含まれています この機能の使用方法を Aptiv に示すための実用的な例はありますか? S32K358 RTD6.0.0 が理想的ですが、他のバージョンでも問題ありません。 よろしくお願いいたします。 ヴィクトル 優先度: 高 RTD 出典: 直接お客様 Re: S32K358 RTD ICU Example with DMA こんにちは、 @viktorfellingerさん、 この機能についてはいくつか注意点があります: - DMA は、IcuMeasurementMode が ICU_MODE_SIGNAL_MEASUREMENT または ICU_MODE_TIMESTAMP の場合のみサポートされます。 - DMA機能はeMios SAICモードでICU_MODE_SIGNAL_MEASUREMENTのみをサポートします - DMA をサポートするのは一部の Emios チャネルのみです。これは、添付の Excel: RM の S32K3xx_DMAMUX_map で確認できます (次のようになります)。 私の例では、信号の測定に Emios_0、チャネル 1 を使用しました。 ICUにて: MclではDMA_TCD0を使用する 部屋数: プラットフォーム: ここでは、パッケージ(RTM600)に添付されている例を使用し、この機能を追加した例を添付しました。 また、SW チームが次のリリースでこの章を更新できるように、チケット ARTDCT1-637 CAN SO 作成しました。 よろしくお願いいたします。 ニ
View full article
S32G3: s32デバッグプローブでLinuxをデバッグする NXPサポートチーム様 最近、S32G-VNP-RDB3 ボードを購入し、NXP 車載 Yocto Linux BSP v38.0 を正常にコンパイルしました。問題なく Linux を実行し、Linux プロンプトを起動できます。さらに、S32 デバッグ プローブも購入しました。 私たちの現在の目標は、デバッガーを使用して Linux カーネル、ATF (Arm Trusted Firmware)、および U-Boot をデバッグすることです。デバッガーをこれらのコンポーネントに接続し、カーネル、ATF、U-Boot コード内にブレークポイントを設定し、デバッグ プロセスをナビゲートする方法に関するガイダンスを求めています。 デバッガーの接続、ブレークポイントの設定、デバッガーのステップ実行などについて網羅した総合ガイドや手順を教えていただけますか? ご協力ありがとうございます。 よろしくお願いいたします。 Re: S32G3: debugging Linux with s32 debug probe @chenyin_h S32 デバッグ プローブに関する入手可能なドキュメントのいずれにも、「実行中のターゲットへのアタッチ」に関する情報は見つかりません。また、実行中の Linux イメージのデバッグに関する手順も見つかりません。内部的に確認し、このCASEのデバッグ例を提供していただけますか。 また、S32 DS では、デバッグ構成に「アタッチのみ」を設定するオプションがありません。デバッガーは常にハードウェアをリセットし、ターゲットが DDR 初期化のために u-boot で停止した場合でも、デバッガーはリセットしてから接続をタイムアウトさせます。 Re: S32G3: debugging Linux with s32 debug probe こんにちは、@ contributor3 ご質問ありがとうございます。 デバッガーを使用するには、次のリンクから対応する公式ドキュメント (ユーザーガイド、クイック スタート ガイド、ファクト シートを含む) をダウンロードできます。これは、デバッガーの使用に関する基本事項です。 https://www.nxp.com/design/design-center/software/automotive-software-and-tools/s32-debug-probe:S32-DP さらに、コミュニティからの他の役立つ投稿もいくつかあり、詳細を知るのに役立つ可能性があります。 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-JTAG-Flash-Programming-with-S32-Debugger-and-S32-Debug/ta-p/1113953 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Start-S32-Debugger-from-S32-Design-Studio-on-S32G274A-EVB/ta-p/1121865 お役に立てれば幸いです。 よろしくお願いいたします。 チェイン  
View full article
S32G3:使用 s32 调试探针调试 Linux 亲爱的恩智浦支持团队 我们最近购买了 S32G-VNP-RDB3 板,并成功编译了 NXP Auto Yocto Linux 电路板支持包 v38.0。我们可以毫无问题地运行 Linux 并启动到 Linux 提示符。此外,我们还购买了 S32 调试探针。 我们目前的目标是使用调试器调试 Linux 内核、ATF(Arm 可信固件)和 U-Boot。我们将寻求有关如何将调试器连接到这些元器件、在内核、ATF 和 U-Boot 代码中设置断点以及如何浏览调试过程的指导。 您能否为我们提供一份全面的指南或说明,介绍调试器的连接、断点的设置和调试器的步进? 感谢您的帮助。 顺祝商祺! Re: S32G3: debugging Linux with s32 debug probe @chenyin_h我没有在 S32 调试探针的任何可用文档中找到任何关于"连接到运行中的目标" 的信息,也没有找到任何关于调试运行中的 linux 映像的说明。请在内部进行检查,并提供该用例的调试示例。 此外,在 S32 DS 上,调试配置没有设置"attach 的选项,只有" 。调试器总是对硬件执行 RESET,即使目标在 u-boot 时停止以进行 DDR 初始化,调试器也会给它一个 RESET,然后在连接时超时。 Re: S32G3: debugging Linux with s32 debug probe 你好,@贡献者3 谢谢您的提问。 要使用调试器,可从以下链接下载相应的官方文档:(包括用户指南、快速入门指南和概况介绍),这些都是使用调试器的基础知识。 https://www.nxp.com/design/design-center/software/automotive-software-and-tools/s32-debug-probe:S32-DP 此外,社区中还有一些其他有用的帖子,可以帮助您了解详情。 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-JTAG-Flash-Programming-with-S32-Debugger-and-S32-Debug/ta-p/1113953 https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Start-S32-Debugger-from-S32-Design-Studio-on-S32G274A-EVB/ta-p/1121865 希望对你有所帮助。 顺祝商祺! 切宁  
View full article
我们可以禁用 SJA1105 DSA TAG 吗? 我们目前使用的是 SJA1105Q,其中三个端口正在使用中。调试驱动程序后,我们发现当端口 4 设置为 DSA 模式下的 HOST PORT 时,从端口 3 传输到端口 4 的帧会包含一个 DSA 标记,如 0xdadb 0x0403,这会导致帧被识别为未知以太类型。我们不需要 DSA 标记(主机标记),只需要正常的以太类型。请问能否移除这个 DSA 标签或禁用 DSA 功能?SJ1105 能否在不添加标签的情况下支持运行?请帮助回答这个问题。 以太网 Re: Can we disable SJA1105 DSA TAG? 你好@tartarter、 在 Linux DSA 模式下,穿越 HOST/CPU 端口的帧会被驱动程序标记,这样内核就能对每个交换机端口的流量进行解复用。这是意料之中的:标签只出现在 CPU 链路上;用户端口 (lanX) 上的流量是正常的以太网流量。 要点 在 DSA 模式下,CPU/HOST 端口必须带有 DSA(交换机)标记。 在用户接口(lan1、lan2、lan3......)上,内核会移除标签;应用程序应绑定到这些 lanX 接口,以查看标准以太类型。 如果您不需要 CPU 链路上的标签,则该设备必须作为独立的 L2 交换机运行(即不使用 Linux DSA)。这将禁用通过 DSA 进行的每端口管理以及 STP/PTP 集成等功能。 在 CPU 链路上观察到的确切以太类型会随内核/标记配置的不同而变化;它是由驱动程序插入的,而不是由 SJA1105 硬件添加的数据平面标记。 下一步 如果你分享你在哪个接口(eth0 与 LanX)上捕获的接口、你的内核版本以及主机/端口 4 的相关设备树片段,我们可以建议一个确切的配置,这样应用程序只能在 LanX 上看到普通的以太网。 顺祝商祺! 帕维尔 Re: Can we disable SJA1105 DSA TAG? 你好@tartarter、 感谢您分享您的配置。 首先,请允许我列出对配置 SJA1105PQRS 交换机有用的主要手册和工具(可从https://www.nxp.com/products/SJA1105PQRS页获取)。😞 文档 - UM11040:SJA1105P/Q/R/S 的软件用户手册(静态配置表、寄存器图、CGU 概述)。 文档 - AH1704:SJA1105PQRS 应用提示(时钟、RGMII/RMII 特性、CGU 设置示例、VLAN/L2 示例)。 软件 — SJA1105X 配置工具 (SJA1105X_CONFIG‑GENTOOL):基于 Python 的软件包,用于生成静态配置流/十六进制和示例。 其他开源参考资料(Linux 用户空间工具 & 格式参考): sja1105-tool (OpenIL)- 具有 XML 导入/导出和 SPI 上传功能的 Linux 用户空间工具;文档包括 XML 字段到 UM 表格的精确映射:GitHub 存储库,手册页面:XML 配置格式,文档/手册索引。 Linux 驱动程序文档 (DSA)- 解释了哪些表格是必须的,以及 L2/VLAN 决策是如何组合的:kernel.org doc。 您的 XML 出了什么问题 VLAN 查找表 vmemb_port = 0x1 - 只有端口 0 是 VLAN 成员。对于互联端口 2-3-4,成员屏蔽必须包括这些端口 (0x1C)。所有 5 个端口均使用 0x1F。(位掩码语义在 sja1105-tool XML 格式和 UM11040 中定义)。 tag_port = 0x1 - 在端口 0 上启用出口标记。对于出口上的 "正常 "无标记流量,设置 tag_port = 0x0。 L2 转发表 每个端口条目(索引 0...4)的 bc_domain = 0x0,用于阻止从每个入口端口到所有出口端口的广播/洪水。正确的面具是 "除自我外的一切": 端口 0 → 0x1E,端口 1 → 0x1D,端口 2 → 0x1B,端口 3 → 0x17,端口 4 → 0x0F。 当你不打算进行任何隔离时,reach_port 和 fl_domain 应该与广播功能域相匹配。 MAC 配置表 retag = 0x1 - 启用重标记;对于普通的非 VLAN 操作,最好禁用(retag = 0x0)。 vlanid = 0x22B(分配的 pvid)与单一无标记 VLAN 设置不一致;如果使用单一无标记 VLAN,建议在所有端口上使用 pvid = 1。 xMII 模式参数 xmii_mode = [2 2 2 2 2] (RGMII) 和 phy_mac = [0 0 0 0] 在 RGMII 模式下将 SJA1105 端口配置为 MAC(交换机驱动外部 PHY)--这符合典型的 "交换机 - PHY "接线方式。 关于时钟 (CGU) 的说明:仅有静态配置是不够的,还必须配置 CGU(RGMII TX/RX 时钟汇,必要时还需要 IDIV/PLL)。否则,端口可能会输出 TXC,但数据通路将无法正常运行。CGU 设置不属于静态 XML 的一部分;它需要按照AH1704(及更早的 AH1601)中的描述对 CGU 寄存器进行编程。 我建议从使用强制表和单一无标记 VLAN(例如,VLAN ID 1,tag_port = 0x0)的基本 L2 交换开始。这种方法使设置保持简单,同时确保交换机通过广播/泛洪功能域转发 ARP 和未知单播。Python SJA1105X_CONFIG-GENTOOL 示例使用的表字段名与 UM11040 文档中的字段名相同,并与 sja1105-tool XML 字段名相对应。因此,Python 工具可能会帮到你很多。 目前,我无法提供 XML 表格--这超出了我们的免费服务范围,而且我也没有目标硬件来在共享之前验证 XML。 请注意,由于即将到来的圣诞节假期和计划中的休假,我可以在新年后再提供答复。 顺祝商祺! 帕维尔 Re: Can we disable SJA1105 DSA TAG? 目前,我们使用 sja1105-tool 直接配置 SJA1105 芯片,以避免使用 DSA 功能。目前的进展是,我们可以使用手动构建的 XML 文件使 SJA1105 的多个端口输出 RGMII CLK。我们的要求是端口 4、端口 2 和端口 3 相互连接,并且这三个端口都能发送和接收普通网络类型的数据包(发送和接收时都不需要 DSA TAG)。理想情况下,所有五个端口都应相互连接。 所附文件是我们目前使用的 XML 配置。当前,端口 4 的软件包无法与 port3 通信。请帮助确认 xml 文件是否正确,能否提供一个能让所有端口相互通信的 XML?谢谢。 Re: Can we disable SJA1105 DSA TAG? 根据您的建议,将所有端口置于同一 VLAN 中,并在 VLAN 查找表中注册该 VLAN,然后禁用所有端口的主机端口功能。最终,要求得到了满足。谢谢。
View full article
RW612 IEEE802.11mc/az支持 我有一个关于RW612 支持 IEEE 802.11mc 的问题。 最近,我看到了使用两个 FRDM-RW612 板的距离测量演示。恩智浦 FAE 建议首先购买 FRDM-RW612。在此基础上,我自己购买了一个 FRDM-RW612 板,安装了 SDK_25.9.0,并运行了 wpa_supplicant 示例应用程序(也是 wifi_cli)。 但是,当我尝试使用 wlan-ftm-ctrl 等命令时,所有 ftm 命令都返回HostCmd_RESULT_NOT_SUPPORT(=2)。 在示例应用程序中,我的 wifi_config.h 配置如下: #defineCONFIG_11MC 1 #defineCONFIG_11AZ 1 #defineCONFIG_CSI 1 #defineconfig_wls_csi_proc 1 固件信息为:WLAN 固件版本:rw610w-V2、IMU、FP99、18.99.6.p46、PVE_FIX 1 我想知道 RW612 是否正式支持 IEEE 802.11mc (FTM) 如果是,需要哪些额外配置或软件来启用它 如能得到任何指导,将不胜感激。 Re: RW612 IEEE802.11mc/az support 你好@wireless123 RW61X 不支持 802.11mc/az。 您能否分享一下您提到的文件,您可能提到了 CSI 功能。 顺祝商祺! 肖恩 Re: RW612 IEEE802.11mc/az support 88W8987 支持 802.11mc/az?请告诉我哪个设备支持 802.11mc/az。 顺祝商祺!
View full article
从 linux 用户空间访问 u-启动 变量 你好、 处理器IMX8M PLUS Yocto :5.15-kirkstone 在通过 SD 卡启动时,可以通过在 yocto 版本的图像配方中添加以下行来访问 fw_printenv/setenv。 IMAGE_INSTALL += " u-boot-fw-utils" u-boot 配置如下所示。 CONFIG_ENV_SIZE=0x80000 CONFIG_ENV_OFFSET=0x380000 CONFIG_ENV_IS_NOWHERE=y CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_MMC_ENV_DEV=1 CONFIG_SYS_MMC_ENV_PART=0 但在目标机上执行这些命令时,却出现了以下错误。 ~# fw_printenv Configuration file wrong or corrupted 请提供使 fw_printenv/setenv 正常工作的程序。 谢谢, Kartheek Re: Access u-boot varibale from linux user space 你好, ,请参阅此处的补丁。 https://github.com/nxp-imx-support/meta-swupdate-imx/blob/kirkstone_5.15.71_2.2.0/recipes-bsp/u-boot/files/0001-enable-env_redunand-bootcount-limit-LF_v5.15.71-2.2.0.patch https://github.com/nxp-imx-support/meta-swupdate-imx/blob/kirkstone_5.15.71_2.2.0/recipes-bsp/u-boot/u-boot-imx_%25.bbappend 致敬, Zhiming Re: Access u-boot varibale from linux user space 您好, 在 etc 文件夹中配置 fw_env.config 并在 U-Boot 中运行 saveenv 之后,我可以从 Linux 用户空间访问 U-Boot 环境变量。 不过,我们计划稍后移除串行调试器。在这种情况下,我们将无法在 U-Boot 提示符下执行 saveenv。有没有办法在启动过程中自动保存环境? 谢谢, Kartheek Re: Access u-boot varibale from linux user space 您好, 您可以在 uboot env 中定义命令,然后在mmcboot(include/configs/ .h) 中运行它。 致敬, Zhiming Re: Access u-boot varibale from linux user space @kartheek 这个链接很有用。 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/u-boot-environment-preset-for-sdcard-mirror/ta-p/1702549 Re: Access u-boot varibale from linux user space 如果我没记错的话,yocto 默认会为 u-boot 生成一个默认的环境变量文件。 Re: Access u-boot varibale from linux user space 如果你仔细阅读 u-boot 文档,你会发现 u-boot 提供了完整的解决方案。在 u-boot 编译期间,make u-boot-initial-env 会生成默认的 u-启动 环境变量。`fw_printenv`/`fw_setenv`可以在首次运行时使用 `-f` 参数来访问这个默认的 u-boot 环境变量文件。这也是 swupate 首次运行时使用的方法。
View full article
从何处获取"s32k3_hse_lib_rtd400hf01_20250627.7z" 恩智浦专家,你好、 i see"S32K3常见问题检查列表(Check list)-V1.2-20251113.docx" 在第 4.4 章中,HSE 开发需要阅读 s32k3_hse_lib_rtd400hf01_20250627.7z、 如何获得?谢谢。 Re: where to get "s32k3_hse_lib_rtd400hf01_20250627.7z" Hi 我建议你联系当地代理商FAE获取,我们线上技术支持不被允许直接将这类软件发送给客户。 Best Regards, Robin
View full article
S32Z270 — RESET时的 RTU0 时钟频率 大家好, 我正在使用恩智浦 S32Z270,想确认 RESET 时的 RTU0 时钟频率,并澄清我在连接劳特巴赫调试器时遇到的 MC_CGM 访问问题。 时钟问题 在执行任何应用程序级时钟初始化之前,您能否确认 RESET 后 RTU0 在哪个时钟源和频率下立即运行?RCON 为 0x30481804 MC_CGM 访问问题 我观察到以下行为: 当我通过 TRACE32 连接 RTU0 时: 无法读取 RTU0.MC_CGM 我可以读取 RTU1.MC_CGM 当我连接 RTU1 时: 我可以读取 RTU0.MC_CGM 无法读取 RTU1.MC_CGM 这似乎与直觉相反,因为我希望 RTU0 在直接连接时始终能够访问自己的 MC_CGM 块。 是否有任何 时钟、RESET 或保护机制 可以阻止 RTU0 访问 RTU0.MC_CGM ? 提前感谢! Re: S32Z270 – RTU0 clock frequency at reset 你好,@danieljcoliveira、 感谢您联系我们。为了更好地交流,我们最好一次只关注一个问题。有关 RESET 时的时钟频率以及 RESET 时的任何相关配置,请查看参考手册所附的 excel 表格 S32Z2_boot_settings.xlsx: alejandro_e_0-1765928770849.png 请查看该文件,如果找到所需的信息,请通知我。 谢谢! Re: S32Z270 – RTU0 clock frequency at reset 通过查看文件,我认为 RTU0 频率在我的配置中是 48MHz。 理由: 从S32Z2_boot_settings.xlsx 文件中,我看到一个重要的依赖点是 NO_PLL_BOOT_ENABLE 配置。如前所述,我的 RCON 配置为 0x30481804,因此 NO_PLL_BOOT_ENABLE= 0。 信号源 PLL FIRC Ref Clock (MHz) VCO (兆赫) PHI0 PHI1 PHI2 PHI3 PHI4 PHI5 PHI6 DFS0 DFS1 DFS2 DFS3 DFS4 DFS5 内核 51 2400 0 N.A. N.A. N.A. N.A. N.A. N.A. 0 400 0 0 400 0 因此,根据 BootROM 时钟中的 PLL DFS 频率表,PHI0 和 DFS0 输出为 0,这使得 FIRC 时钟成为 RTU0 的唯一时钟源。@alejandro_e 的分析正确吗?这是我在创建帖子之前的第一直觉,但我很怀疑我是否遗漏了任何依赖性。 Re: S32Z270 – RTU0 clock frequency at reset 你好,@danieljcoliveira、 是的,这是正确的,FIRC 是所有内核的预期时钟源,您也可以在页面顶部的注释中看到这一点: "BootROM 锁定核心 PLL 和外设 PLL,将 FIRC 作为时钟源..." 而在"模块时钟状态" 表中: 模块 RESET 时的默认时钟状态 执行引导程序期间 引导程序将控制权传递给 备注 HSE 固件-如果安全启动 (BOOT_SEQ=1) 应用程序-如果是非安全启动 (BOOT_SEQ=0) R52-RTU-0/SMU-M33 禁用 未使能 未使能 FIRC 应用内核始终在 FIRC 时钟上启用 请查看"BootROM Clocking" 页首的完整说明,了解 FIRC 的可能公差。 关于读取 MC_CGM 时的问题。请提供以下信息: 您试过运行我们的示例读取 MC_CGM 吗?还是您只尝试了您的应用程序? 您能描述一下进行读数的具体步骤吗?您看到的错误/问题是什么? 谢谢!
View full article
RT1064 EVK + EVSE-SIG-BRD2X:PLC (GreenPHY) 通过 SPI 初始化失败(CS 引脚不匹配?) 硬件设置: 主机板:i.MX RT1064 EVK 信号板:EVSE-SIG-BRD2X(根据 UG10140 修订版 4.0,跳线设置为默认值) 其他:OM-SE050X(已插入,但在软件中暂时禁用)。 软件环境: IDE:MCUXpresso IDE v24.9.2 信号板项目:dm-lpc5536-ev se-sigbrd(来自 GitHub 的最新消息) 宿主项目:rd-nxp-easyevse-imxrt106x(最新来自 GitHub),版本模式:EVSE 中间件:easyEVSE-Sevenstax_ISO-15118-2-and-ISO-15118-20(版本 3.0,软件包:rd-nxp-easyevse-imxrt106x-sevenstax.zip) 变更内容: 软件配置:为了简化调试,我禁用了 EVSE_config.h 中的以下内容和项目设置: enable_se=0, pkcs11_supported=0, enable_meter=0, enable_lcd=0 evse_sas_auth 0, evse_x509_auth 1, evse_x509_se050_auth 0 启用调试日志:在 stx_hal_spi.h 中添加了 #define HAL_SPI_DEBUG 1并将其他日志级别设置为 DEBUG。 硬件修改 (RT1064): 我在 RT1064 EVK 底部装上了电阻R278、R279、R280 和 R281,以启用 Arduino SPI 接口。 问题:系统无法初始化 PLC (GreenPHY/CG5317)。 代码到达 common\sevenstax\appl\appl-v2g.c:10839. stxPLC_HL_IsReady() 始终返回FALSE。 状态机进入 EVSE_ISO15118_SetState(EVSE_ISO15118_FWDownload)。 调试日志连续打印 stxHAL_SPI_BeginTransaction() 和 stxHAL_SPI_EndTransaction(),但通信似乎从未成功? 我的调查& 其他发现:我验证了硬件信号,发现了潜在的不匹配: HPGP_RESET 为高电平:我测量了 SIG-BRD 上的 J39 引脚 4,电压为3.27V。这确认 LPC5536 正在运行并已发布版本 RESET。 CP 电压:J9 CP 引脚正确测量 12V(A 状态)。 SPI 芯片选择 (CS) 不匹配? 我用万用表追踪了从R281(RT1064 上)到 Arduino 接头的连接。 R281 连接到 J36 引脚 3。根据 UG10140 Rev 4.0,J36 引脚 3 为 SPI_CS2。 但是,EVSE-SIG-BRD2X 的 J38(引脚 1-2)默认跳线设置希望 CS 信号位于SPI_CS1(J36 引脚 2)上。 这意味着 RT1064 正在驱动 CS2,但是信号板正在监听 CS1? 问题 由于 RT1064 EVK 上的 R281 被路由到CS2,我是否应该将 EVSE-SIG-BRD2X 上的跳线 J38更改为引脚 2-3,以与之匹配? Sevenstax/EasyEVSE 软件默认使用CS1 吗?如果是,请说明代码中(例如,pin_mux.c或特定的头文件),我是否应该修改配置,将CS2(GPIO_SD_B0_01)用作 PLC 芯片选择? 在这种设置下,通过 SPI 正确初始化 CG5317 还需要其他步骤吗? 如有任何建议或见解,我们将不胜感激, Alvis Re: RT1064 EVK + EVSE-SIG-BRD2X: PLC (GreenPHY) Initialization Fails via SPI (CS Pin Mismatch?) 我进行了进一步的硬件验证,并做了如下调整: 硬件变更:由于我确认 RT1064 EVK 上的电阻器R281连接到 EVSE sig brd 上的J36 引脚 3(SPI_CS2) ,因此我将 EVSE-SIG-BRD2X 上的跳线 J38移到了2-3 位置。这将把 CS2 信号从 RT1064 物理路由到 CG5317 PLC 芯片。 当前状态:即使将 J38 设置为 2-3(CS2),通信仍然失败。 系统将 PLC 在 0.119s 时 RESET([注意] PLCV-HL:stxCG5317_HL_Tick():RESET CG5317),HALSPI:stxHAL_SPI_Init() 在 0.630 时再次出现。 附上最新日志。 Re: RT1064 EVK + EVSE-SIG-BRD2X: PLC (GreenPHY) Initialization Fails via SPI (CS Pin Mismatch?) 大家好, 由于我已经成功解决了这个问题,因此特此更新此主题。我想在这里记录下解决方案,以帮助其他在构建 EasyEVSE 系统时可能遇到这种特定 SPI 通信问题的人。 根本原因是硬件跳线设置和缺少特定板互连所需的软件宏定义。 解决方案摘要: 要通过 Arduino 头在MIMXRT1064-EVK和EVSE-SIG-BRD (CG5317)之间成功建立通信,必须执行以下步骤: 1。硬件修改:根据 CCEVCPGSUG Rev 的说法,在 RT1064 EVK 板上5.0 CH4.3.1 时,必须短接(焊接)电阻 R278~R281,以便将 SPI 信号正确路由到 Arduino 接口。 2.软件配置:在项目配置中(如 EVSE_config.h)、必须将BOARD_SIGBOARD_ARDUINO_HEADER宏定义为1。如果未定义此宏或将其设置为 0,则 SPI 驱动程序将在错误的引脚/实例上初始化,或者 PLC 初始化将完全失败,因为固件假定板连接不同。 进行上述两项修改后,SPI 通信正常运行,PLC 成功初始化。 我希望这能为其他从事类似恩智浦 EasyEVSE 项目的人节省时间! 致以最诚挚的问候, Alvis
View full article
[乱用] 投稿者: @JohnKlug / ボード: imx-プロセッサ / 報告者: ugmaug ugmaug は、 @JohnKlug が投稿した 「Could not invoke dnf for external kernel module in Yocto kirkstone」という 投稿について、以下の理由で報告しました: 理由:詐欺または不正行為 詳細: 投稿リンク: https://community.nxp.com/t5/i-MX-Processors/Could-not-invoke-dnf-for-external-kernel-module-in-Yocto/mp/1627964#M203740 投稿者: @JohnKlug |メール著者 報告者: ugmaug |メールレポーター 報告された投稿には 2 件の返信があります。
View full article
[MIMXRT1160-EVK] 带有 1XK:NXP-WIFI 驱动程序插入 同步动态随机存取存储器(SDRAM) jaseze01_0-1765537499371.png 你好!有人使用外部同步动态随机存取存储器(SDRAM)在 RT1160-EVK 上成功运行恩智浦的 Wi-Fi 驱动程序吗?尽管我在叠加层中设置了 zephyr,sram = & sdram0,但在固件加载期间我还是遇到了总线故障 0x40000(DTCM 限制)。看来堆在同步动态随机存取存储器(SDRAM)中初始化不正确,或者我缺少正确 SDIO DMA 的 MPU/NoCache 配置。有什么建议吗?我还附上了我的 .overlay和 prj.conf 以防万一。 Re: [MIMXRT1160-EVK] with 1XK: NXP-WIFI driver into SDRAM 你好,@jaseze01 您使用的是 Zephyr OS 吗? 能告诉我您的 Zephyr 版本和 Zephyr SDK 版本吗? 能否请您告诉我重现此问题的详细步骤? 我会在本地尝试是否可以重现该问题,以便我们为您提供更好的支持。 顺祝商祺! Christine。 Re: [MIMXRT1160-EVK] with 1XK: NXP-WIFI driver into SDRAM 嗨,克莉丝汀、 感谢您的帮助。这是您需要的信息: 板:恩智浦 MIMXRT1160-EVK(Rev A) WiFi 模块:通过 M.2 接口嵌入式艺术家 1XK(村田 1XK /恩智浦 IW416)。 Zephyr 操作系统版本:4.3.0 Zephyr SDK 版本: 0.17.4 主机操作系统视窗 我正在单独开发这个项目,但在地址为 “BFAR 地址:0x40000” 时遇到了一个 “精确数据总线错误”(总线故障)。该错误在驱动程序成功协商电压开关后立即发生。 我设法让硬件做出正确响应(日志确认 "卡切换到 1.8V 信号"),因此我相信物理连接和电源都没有问题。然而,崩溃就在那之后发生了。 故障地址 (`0x40000`)与内部 ITCM/DTCM 的 256KB 边界相匹配。这让我怀疑问题可能与内存放置有关。由于 WiFi 固件约为 500KB,似乎无法放入默认的内部 RAM,或者 DMA 正在尝试访问不允许访问的内存区域(如 DTCM)。 可能的重现步骤 1.我正在构建一个 Zephyr 应用程序,在 MIMXRT1160-EVK 上启用 "nxp,wifi "驱动程序。 2.我修改了 "mimxrt1160_evk.overlay启用外部 同步动态随机存取存储器(SDRAM)(“&sdram0”,64MB)以容纳固件。 3.为了避免重叠,我尝试了不同的内存配置(将系统和固件的同步动态随机存取存储器(SDRAM)拆分)。 4。启动后,系统初始化 SDIO 总线,切换到 1.8V,然后因总线故障而崩溃。以下是显示顺序的日志输出: [00:00:01.123,000] sd: 卡切换到 1.8V 信号 [00:00:05.266,000] os:***** 总线故障 ***** [00:00:05.272 ,000] os:精确的数据总线错误 [00:00:05.277 ,000] os:BFAR 地址:0x40000 [00:00:05.283,000] os: r0/a1: 0x80006945 r1/a2: 0x00040000 r2/a3: 0x0000000c [00:00:05.305,000] os:故障指令地址 (r15/pc):0x3000242e 看起来,链接器放置数据/堆栈的位置与 WiFi 驱动程序在 DMA 操作中希望放置数据/堆栈的位置存在冲突。 你能否就 MIMXRT1160 将 WiFi 固件正确加载到外部同步动态随机存取存储器(SDRAM)的推荐内存配置(覆盖/链接器)提出建议?如果您能在本地重现并修复该问题,能否与我分享正在运行的叠加文件? 顺祝商祺! Re: [MIMXRT1160-EVK] with 1XK: NXP-WIFI driver into SDRAM 你好,@jaseze01 抱歉,由于带宽有限,我的回复晚了。 你能试试下面的参考吗: 恩智浦 M.2 Wi-Fi 和 BT 子卡 — Zephyr 项目文档 此外,该目录中还有默认的nxp_m2_1xk_wifi_bt.overlay文件: https://github.com/nxp-zephyr/nxp-zephyr/tree/nxp-v4.3-branch/boards/shields/nxp_m2_wifi_bt/ 您也可以参考此 .overlay以适应 1xk(M.2接口)连接到 I.MXRT1160-EVK。 https://github.com/nxp-zephyr/nxp-zephyr/blob/nxp-v4.3-branch/boards/shields/nxp_m2_wifi_bt/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay 请告诉我上述内容是否对您有帮助。 如果仍有任何问题,请告诉我。 顺祝商祺! Christine。
View full article
[COMM-IT EMBEDDED] [SE050] 目标上存在软件包解密问题 专家们好 客户是 COMM-IT EMBEDDED,他们使用 SE050 和 Edge2Go 进行软件包解密。但是有问题。存储在 Edge2Go 中的密钥用于管道(通过密钥钱包)加密软件包,之后此包将传输到目标 (SE050),以便在启动期间解密。 他们做了以下测试 使用由 Edge2Go 提供的密钥进入目标:bin 文件:aes_encrypt-> 加密文件-> aes_decrypt file-aes_decrypt。这一流程的工作原理是 管道(带开发密钥)。这个流程也很好 在目标系统上手动配置为 se050 的开发密钥:sscli 设置为 $SE050_KEY_ID " $work_dir/se050_key.bin " 相同密钥存储在其服务器上的密钥钱包中 管道:使用钱包中的这个密钥加密的软件包(开发密钥):(参数)openssl enc-e-aes-256-cbc-K?-iv??-不加盐?? 使用 aes_decrypt 在目标上解密 带有 Edge2Go 密钥的管道。流程与 (2) 相同,但这种情况下不可行。该密钥与 Edge2Go 中的密钥相同,但位于钱包中。 对我来说,这看起来像是密钥不匹配,我正在与客户确认,当用于加密的 bin 文件相同时,在情况 1 和情况 3 中是否有相同的加密文件。 但也想知道是否可以从 edgelock2go 进行检查?我可以看到,要上传到 edgelock2go 的密钥材料受到 PGP 工具的保护,但它是作为安全对象以纯文本存储的吗?有办法在 edgelock2go 上检查吗? 所附文件是基于 SE050 加密& 解密文件的源代码。 请予以澄清。 顺祝商祺! 坎 Re: [COMM-IT EMBEDDED][SE050]Isuue with package decryption on target 你好,Kan、 请从他们那里获取这些案例的详细日志文件,以便我们看到要检查的安全元件的 APDU 输入 + 输出。 谢谢您, Michael
View full article
恩智浦 FRDM-iMX8MP 和 NPU 你好 我们使用 Yocto 开发 FRDM-iMX8MP 已经有一段时间了,最初使用的是 Scarthgap,它在某些方面不稳定。我们使用了一次 Matter 变体和一次不含 Matter 的 i612 芯片。 我们现在改用 Walnascar,这不成问题。尽管恩智浦层发生了一些变化,但(仍然)支持该板。不过,我们注意到,从 2025 年第一季度起,Matter 将不再支持 FRDM-iMX8MP。这让人非常恼火,因为我们在 OEM 项目中一直依赖它,现在却不得不手动完成所有工作。会为板提供支持吗?I-MX9 固然很好,但从长远来看,iMX8 也不容忽视。 我们还发现,几乎不可能在 FRDM-iMX8MP 上创建带有 INT8 的模型。eIQ 无法继续运行或崩溃。还有一些模型无法转换,因为框架存在错误,会产生错误。或者模型无法使用。 有什么解决办法吗? 为了让 Detect、Multipose 和 reID 正常工作,我们已经尝试了好几个星期。 检测并不是真正的问题,因为可以使用 NXP 的 TFLite。(但它也不能训练,而且 eID 只在 Ubuntu 20.04 下才会出现问题)。 姿势只能作为单个姿势使用,int8 -> float32。 而 reID 是完全不可能的。 i-MX95 的可能性会改变吗?即使 imX95 上市和恩智浦的 FRDM Dev 上市都需要很长时间。尤其是 eIQ 已经完全可用。 你是怎么做到的? FRDM 培训 i.MX8ULP Yocto Project Re: NXP FRDM-iMX8MP and NPU 你好 虽然计划在2025年第一季度结束对FRDM-iMX8MP的Matter支持,但恩智浦将继续通过其他软件版本为i.MX 8M Plus系列提供支持。向 Walnascar 的过渡是积极的一步,该平台将继续得到更新。尽管i.MX 9系列的开发正在取得进展,但i.MX 8系列仍然是重要的产品线。 关于 NPU 模型优化挑战: 您在 NPU INT8 模型转换中遇到的困难是已知问题。有几种方法可以解决这些问题: 1.检测模型: - 恩智浦提供的 TFLite 模型确实可用,但在训练方面有局限性。 2.姿态估算: - 采用 int8→float32 转换的单一姿态模型是目前支持的最佳选择。 - 对于 FRDM-iMX8MP,你可以使用带有以下命令的预建演示应用程序:`/usr/bin/gstnninferencedemo-posenet-camera /dev/video3` 3。对于 reID 模型: - 在当前平台上实施这些模型更具挑战性。 为获得更好的模型转换效果: - 遵循正确的工作流程:.pb→ .onnx(使用 PyTorch)→ .tflite使用 eIQ(量化)→优化 .tflite - 使用 eIQ 时,确保有足够的训练数据(300 多张图像),以便进行适当的量化 - 考虑使用 eIQ v1.12.1,而不是可能存在转换错误的较新版本 i.MX 95 将通过 Neutron 代表提供改进的 NPU 功能和更好的模型支持。虽然 FRDM 开发板的上市时间表仍在等待中,但增强的 NPU 将支持更复杂的模型和操作。 此致 Re: NXP FRDM-iMX8MP and NPU 你好 感谢您的详细答复。 作为未来的合作伙伴,我认为i.MX8系列将继续在框架方面获得大力支持,尤其是自从它在2034年至2038年被列入《活跃长寿命》以来。从开发者的角度来看,当停止对Matter和可能的其他元器件的支持时,这当然是非常令人沮丧的。这大大降低了开发速度,尤其是 Yocto,有时很难在这种条件下取得有意义的结果。 基于此,我们可以假设 FRDM i.MX8MP 将不再获得 Matter 支持,而到目前为止,只有 i.MX8 系列的其他板在最新版本中获得了此类支持。 对于某些没有严格要求的用例,当然可以使用所提供的预建检测模型。然而,要想获得这些模型的可靠、无误的 INT8 版本是非常困难的。 这个问题与 i.MX8 或 i.MX9 本身关系不大,更多的是与框架相关的问题,恩智浦(除 eIQ 外)对此不负直接责任。我们知道这一点。 众所周知,单姿势模型是可用的,但我们需要多姿势模型。虽然可以将单姿态模型与检测结合起来,强行放入多姿态设置中,但这并不是一个简洁或理想的解决方案。 关于 i.MX9:是的,整体概念听起来很有前景。然而,如果框架无法生成所需的模型,那么即使是配备了 NPU 的最佳 SoC,其价值也是有限的。这不一定是恩智浦的问题,除非是在 eIQ 的背景下。我们希望 i.MX9 能够使工具变得更加现代化和稳定。如果恩智浦能够将非常强大的YOLO模型(例如v10以后的更新版本)内置到eIQ中,那也将是非常可取的。尽管我们知道这些模型的内部复杂性,但它们却非常精确。 目前,我们将暂停开发,直到i.MX9上市,因为我们特别需要i.MX95。 感谢您提供的信息。
View full article
S32K324 ETM - 跟踪数据 您好,恩智浦团队, S32K324 是否支持并行跟踪 (TRACE_D)? 参考手册中指出 SK32K24 支持 ETM 接口,但也指出 Fast Trace pad TRACE_D [15:0] 仅在 S32K344 中可用。 查阅 S32K344_S32K324_S32K314_IOMUX IO 信号 excel 表,S32K324 的引脚分配并不详细。 Re: S32K324 ETM - TRACE_DATA 参考手册中指出 SK32K 3 24 支持 ETM 接口,但也指出 Fast Trace pad TRACE_D [15:0] 仅在 S32K344 中可用。 错字更正 Re: S32K324 ETM - TRACE_DATA 你好@Kpoio64 我理解有关参考手册的混乱根源。尽管没有明确说明,但 TRACE_D [15:0] 适用于所有 S32K3x4 设备(S32K314、S32K324 和 S32K344)。这些设备采用引脚对引脚兼容。 BR、VaneB
View full article
[不正使用] 投稿者: @JohnKlug / ボード: imx-processors / 報告者: pwqnhb pwqnhb は、 @JohnKlug が投稿した 「Could not invoke dnf for external kernel module in Yocto kirkstone」という 投稿について、以下の理由で報告しました: 理由:その他 詳細: %EB%%94%%91%%EC%%B4/%%98%%EA%%88%%B0%%EB%%91%%9D% 投稿リンク: https://community.nxp.com/t5/i-MX-Processors/Could-not-invoke-dnf-for-external-kernel-module-in-Yocto/mp/1627964#M203740 投稿者: @JohnKlug |メール著者 報告者: pwqnhb |メールレポーター 報告された投稿には 2 件の返信があります。
View full article
管脚复用功能 项目需要复用ecspi3的spi功能与GPIO管脚功能,dts设计如下: &iomuxc {     pinctrl_ecspi3_gpio: ecspi3gpiogrp {         fsl,pins = <             // Pin, Mux Function, Electrical Properties             MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20       0xb0             MX6UL_PAD_UART2_RX_DATA__GPIO1_IO21       0xb0             MX6UL_PAD_UART2_CTS_B__GPIO1_IO22         0xb0             MX6UL_PAD_UART2_RTS_B__GPIO1_IO23         0xb0         >;     };      pinctrl_ecspi3: ecspi3grp {        fsl,pins = <        MX6UL_PAD_UART2_TX_DATA__ECSPI3_SS0             0x70a1        MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK         0x70a1        MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI             0x70a1        MX6UL_PAD_UART2_RTS_B__ECSPI3_MISO             0x70a1        >;     }; };   &ecspi3 { pinctrl-names = "default", "sleep";     pinctrl-0 = <&pinctrl_ecspi3>; pinctrl-1 = <&pinctrl_ecspi3_gpio>; #address-cells = <0>; spi-slave; status = "okay";   slave { compatible = "ak-ecspi3-slave"; }; };   然后在spi_probe函数里面执行devm_pinctrl_get总是报错,错误码-19, ENODEV。代码片段如下,这个犯错是什么原因呢,导致找不到设备。是dts写的有问题吗? static int spi_slave_recorder_probe(struct spi_device *spi)       temp_pinctrl = devm_pinctrl_get(&spi->dev);     if (IS_ERR(temp_pinctrl )) {         dev_warn(&spi->dev, "pinctrl handle not found, pin switching disabled\n");       temp_pinctrl  = NULL; // Ensure it's NULL for later checks     } 回复: 管脚复用功能 我大概知道原因了,static int spi_slave_recorder_probe(struct spi_device *spi)这个接口的spi_device对应设备树的结点,所以再找pinctrl时找不到信息,有没有在这个接口里面操作获取pinctrl的方法,或者其他方式实现pinctrl两种模式的切换。 slave { compatible = "ak-ecspi3-slave"; }; Re: 管脚复用功能 您好,关于ECSPI3 SPI功能与GPIO管脚功能复用的问题,我可以提供以下指导: 在i.MX系列处理器中,SPI和GPIO功能可以在同一管脚上进行复用。根据您的设计需求,有两种方法可以实现这种复用: 1. **使用设备树配置管脚复用**: - 您需要在设备树中正确映射ECSPI3与对应的管脚 - 确保在imx8mp.dtsi文件中添加适当的映射,例如: ``` aliases { spi3 = &ecspi3; } ``` - 创建正确的pinctrl节点,如pinctrl_ecspi3和pinctrl_ecspi3_cs 2. **使用GPIO作为片选信号**: 如果您需要更灵活的片选控制,可以将ECSPI的CS配置为GPIO: - 在设备树中添加cs-gpios属性到ECSPI节点 - 创建单独的pinctrl条目用于GPIO功能的CS管脚 对于同时需要SPI和GPIO功能的场景,您可以: - 在不需要SPI功能时,通过设备树重新配置管脚为GPIO模式 - 对于片选信号,使用GPIO模式可以提供软件控制的灵活性,而使用硬件CS则可以提供更好的时序性能 如果您需要在代码中识别当前管脚功能状态,建议使用一个独立的GPIO管脚连接到相同的信号线以监测状态变化。 如有具体的实现疑问,请提供您的设备树配置以便我提供更具体的建议。 Re: 管脚复用功能 已经找到软件解决方案了,谢谢
View full article
RT1021: OTPMK / SNVS Highキーを使用したDCPの例はゼロキーで暗号化されているようです こんにちは、 MCUXpresso SDKs DCP AES の例をハードウェア キーを使用するように変更しました。 SNVS High経由でOTPMKを使用するように暗号化が設定されている すべてゼロのソフトウェアキーで実行される復号化 テストは依然として合格であり、これは暗号化が OTPMK/SNVS High キーではなくゼロ キーで効果的に行われていることを示しています。 観察: DCP API はエラーを報告しません。 操作は正常に完了しました。 「ハードウェア キー」暗号化によって生成された暗号文は、ゼロ ソフトウェア キーを使用して復号化できます。 新しい EVK ボードでも、ヒューズが切れた EVK でも、動作を再現できます。(BT_FUSE_SEL、BEE_KEY*_SEL=0b10、EXIP 有効化など) これは、ハードウェア キーが無視されているか、正しく選択されていないことを示しています。 質問: DCP が実際に OTPMK/SNVS High を使用するために必要な前提条件 (ヒューズ、SNVS セットアップ、キー選択ビット) はありますか? SDK の例には既知の制限やフォールバック動作はありますか? 有効な DCP キー ソースを実行時に検証するにはどうすればよいでしょうか? 修正した例を添付します。これは RAM 内で実行するようにリンクされています (名前が示すようにフラッシュ内ではありません)。 TestAesEcb() のみを保持し、OTP キーを使用するために DCP_TEST_USE_OTP_KEY を定義しました。 私は自分の仮説を証明するために鍵と暗号文を変更しました。 static const uint8_t keyAes128[16] __attribute__((aligned)) = { 0 }; static const uint8_t plainAes128[] = {0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a}; static const uint8_t cipherAes128[] = {0xcf, 0x2e, 0xa3, 0x8a, 0x12, 0x3b, 0xe2, 0x07, 0x65, 0xeb, 0x8c, 0x5c, 0x56, 0xca, 0xf2, 0x24}; 暗号文は、すべてゼロのキーを使用して平文から取得されます。 mastupristi_0-1765355727546.png OTPMKで暗号化し、SWキーで復号化します m_handle.channel = kDCP_Channel0; m_handle.swapConfig = kDCP_NoSwap; m_handle.keySlot = kDCP_OtpKey; status = DCP_AES_SetKey(DCP, &m_handle, keyAes128, 16); TEST_ASSERT(kStatus_Success == status); DCP_AES_EncryptEcb(DCP, &m_handle, plainAes128, cipher, 16); TEST_ASSERT(memcmp(cipher, cipherAes128, 16) == 0); m_handle.keySlot = kDCP_KeySlot0; status = DCP_AES_SetKey(DCP, &m_handle, keyAes128, 16); TEST_ASSERT(kStatus_Success == status); DCP_AES_DecryptEcb(DCP, &m_handle, cipher, output, 16); TEST_ASSERT(memcmp(output, plainAes128, 16) == 0); PRINTF("AES ECB Test pass\r\n"); これを実行すると、シリアル ポートに次の内容が表示されます。 mastupristi_1-1765355841651.png ご説明いただければ幸いです。 よろしくお願いいたします。 最大 Re: RT1021: DCP example using OTPMK / SNVS High key appears to encrypt with zero key こんにちは@Bio_TICFSL ご説明ありがとうございます。 私の状況は次のとおりです。 「実際の」ボードでは USB または LPUART1 を使用できないため、NXP プロビジョニング ツール (SEC またはシリアル ダウンローダー) を使用できません。 このため、私は次の目的を持つRAM 常駐ファームウェアを開発しています。 必要なヒューズ(BT_FUSE_SEL、BEE_KEY*_SELなど)をプログラムします。 最終的なファームウェア イメージを理想的には SNVS High キー (OTPMK) を使用して暗号化します。 しかし、ヒューズの設定に関係なく、また HAB およびキー選択ヒューズがすでに切れている搭載ボード上であっても、SNVS キーが使用されることは決してないということを私は一貫して観察しています。 使用可能なインターフェースはSWD/JTAGのみなので、DCP が実際に OTPMK にアクセスできる状態にデバイスを設定するための推奨手順は何ですか? あなたの説明は重要な懸念も提起しています: デバイスがオープン モードのままの場合、署名または暗号化されたブートを必要としないアプリケーションであっても、独自の SNVS キーを使用してデータ (暗号化された大容量ストレージ ファイルなど) を暗号化/復号化できないことを意味しますか? これは厳しい制限となります。 最後に、ドキュメントに記載されているステート マシンによれば、キーは赤色の「失敗」状態のいずれかを通過する場合にのみゼロ化されます。 mastupristi_0-1765466458455.png オープンデバイスでは、遷移はCHECK → NON-SECUREのように見え、失敗状態になることはないため、SNVS マスター キーが使用できない理由は不明です。 これらの点、特に SWD/JTAG のみが利用可能な場合に OTPMK アクセスを有効にする方法に関する部分を明確にしていただけますか? よろしくお願いします。 Re: RT1021: DCP example using OTPMK / SNVS High key appears to encrypt with zero key こんにちは、 あなたが観察している動作、つまり暗号化が OTPMK/SNVS High キーではなくゼロ キーで行われているように見える動作は、特定のセキュリティ構成では予想されます。 デバイスがオープンモード構成(SEC_CONFIG[1]ヒューズ= 0)の場合、SNVSはブート中に非セキュア状態に移行します。この状態では、OTPMK は DCP モジュールで使用できません。これは、OTP キー設定を使用すると暗号化されたデータが同一に見える理由です。実際のハードウェア キーは使用されていません。 OTPMK を DCP で使用できるようにするには、デバイスが安全で信頼できる状態である必要があります。これには次のものが必要です: 1.HABを閉じるには、SEC_CONFIG[1]ヒューズを溶断(1に設定)する必要がある。 2. SNVSは信頼された状態にある必要があります テストケースでは、おそらくオープン モードになっています。このモードでは、DCP は実際の OTPMK ではなくゼロ キーを使用して実質的に暗号化します。これは、観察結果と一致します。 暗号化に OTPMK を適切に使用するには: - SEC_CONFIG[1]ヒューズをプログラムしてデバイスをセキュアモードに移行する必要があります。 - SNVSが信頼できる状態を維持することを確認する このセキュリティ アーキテクチャは意図的なものであり、適切なセキュリティ状態要件が満たされた場合にのみ、ハードウェア キーが暗号化モジュールにアクセスできるようになります。 よろしくお願いします。
View full article