Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
COD OF IC Please help confirm the COD (wafer location) for the following parts PCA82C251T/YM,118 PCA9547PW,118
記事全体を表示
Using CLRC663 as P2P device Hello, We would like to use the CLRC663 plus as a Peer-to-peer (P2P) device. According to the datasheet the CLRC663 supports P2P mode according to the ISO/IEC 18092 in Passive Initiator mode. This however brings up a multitude of questions: Is it possible to have two CLRC663 devices communicate with each other? If not, should the CLRC663 be combined with another device? Which is recommended? How to activate the ISO 18092 protocol? For other protocols I have found AN12657 at least describes how to activate some other protocols using the LoadProtocol functionality on the CLRC633, but the datasheet lacks any information on the ISO 18092 protocol. How these other two are activated is entirely unclear from the datasheet as well but can be inferred from this Application Note. Can two devices communicate in Passive Initiator mode? I have looked at probably all posts already on the forum related to this but found nothing of use. I have also seen the NFC Reader Library but am unable to find anything useful regarding P2P. Kind regards Re: Using CLRC663 as P2P device Hello, Thank you for your interest in NXP Semiconductors products and for the opportunity to support you CLRC663 is not fully NFC Forum compliant and it is intended for Reader/Writer mode. A CLRC663 can therefore be used with a different NFC device that supports the required target mode (i.e. HCE). For a standard ISO/IEC 18092 P2P connection, you could consider evaluating the PN5190. However, this hardware consideration must also be evaluated together with the available support. Please notice that the NXP NFC Reader Library states that maintenance of its P2P functionality is being discontinued. Although earlier library releases include legacy P2P support, P2P functionality is not supported in our current software baseline. Best regards,  Alondra Re: Using CLRC663 as P2P device Hello, Thanks for your response. We will look into the PN5190 as well. We have a Mikroe USB Dongle which uses the PN7150, could this be used to test this functionality too? My main concern is with setting the ISO 18092 standard on the CLRC663. For other protocols I have found the settings to enable this, but not for ISO 18092. Would it be possible or perhaps easier to use two PN5190 ICs to let them communicate together?  As a sidenote, it seems NFC P2P is sort of 'old school', Android stopped supporting it about 7 versions ago, and NXP it seems also treats it as legacy. Is this even worth trying?  Kind regards Re: Using CLRC663 as P2P device Hello,  Please note that the Mikroe USB Dongle is not an NXP product. Therefore, application implementation and compatibility will depend entirely on the capabilities and support provided by the dongle manufacturer. Additionally, the PN7150 is not recommended for new designs. NXP has discontinued Android maintenance for the PN7150 and does not plan to provide support for newer Android versions. P2P communication based on ISO/IEC 18092 is being discontinued and is no longer supported by NXP. A similar situation applies when considering two PN5190 devices. Since P2P is no longer supported, the recommended approach would be to configure one PN5190 as the NFC reader and the second device in card emulation mode, rather than implementing a P2P configuration. For new designs, we recommend using currently supported NFC operating modes and solutions. Best regards Re: Using CLRC663 as P2P device Hello, Thanks again, you have certainly steered us in the right direction. It is clear that P2P is not the way to go.
記事全体を表示
S32k144 ADC例コード(RTD非Autosar) - 動作しない/ビルドエラー こんにちは、 RTDのNon-AUTOSARドライバの既存のPdb_Adc例を使っています。ペリフェラルの設定ツールでADCチャネルを設定し、ビルドを試みたところ、ヘッダーファイルが欠落しているというコンパイルエラーが発生しました。   ../board/Port_Ci_Port_Ip_Cfg.h:47:10: 致命的なエラー: Port_Ci_Port_Ip_Types.h:そのようなファイル、又はディレクトリはありません ポートドライバのコード生成やインクルーツパスが不完全のようです。CAN   S32K1 #ADC Re: S32k144 ADC example code (RTD Non Autosar) - Not working / Build error こんにちは、 @VaneB さん。 ご返信ありがとうございます。おっしゃる通りにうまくいきました。 エラーはクリアし、アップロードされたコードはありますが、ADCの値は変わらず、S32k144の評価ボードのポット位置に依存します。何か機能を追加したり、データを取得したりする必要はありますか?解決策をご教示ください。また、参考のためにメイン関数ファイルを添付しました。 Re: S32k144 ADC example code (RTD Non Autosar) - Not working / Build error こんにちは、 @Buddynさん 元のデモではピンツールでピンを設定していなかったため、ペリフェラルツールでPort_Ipドライバーを追加する必要がありませんでした。 ただし、今はADCピンを設定するので、Port_Ipドライバを追加する必要があります。また、ピンツール機能グループ名を PortContainer_0_VS_0に変更する必要があります。これは以下の通りです: Port_Ipドライバーからのポートコンテナ名 + 「_」 + ペリフェラル機能グループ名 以下の画像のウィンドウで名前を変更できます: BR、VaneB Re: S32k144 ADC example code (RTD Non Autosar) - Not working / Build error こんにちは、 @Buddynさん 先ほど述べた部分だけをPort_Ipドライバと機能グループ名に改変したのですか? あなたが共有してくれたプロジェクトでは、ADC0_SE12が出力として設定されていることに気づきました。ADC値を読み取るための入力として設定する必要があります。 また、 S32M24x/S32K1 – FTM/TRGMUX/PDB/ADC – [RTD300] Threadもチェックすることをお勧めします。より複雑なアプリケーション例を示しています。例ではS32K144EVB-Q100のポテンショメータを使っていますが、その実装はあなたのアプリケーションの参考として役立つかもしれません。
記事全体を表示
S32k144 ADC 示例代码(RTD 非 Autosar) - 无法运行/版本错误 您好, 我正在使用 RTD 非 AUTOSAR 驱动程序中现有的 Pdb_Adc 示例。在外部配置工具中配置好ADC通道并尝试编译后,我遇到了一个关于缺少头文件的编译错误:   ../板/Port_Ci_Port_Ip_Cfg.h:47:10: 致命错误:Port_Ci_Port_Ip_Types.h:没有这样的文件或目录 Port 驱动程序的代码生成或包含路径似乎不完整。可以   S32K1 #ADC Re: S32k144 ADC example code (RTD Non Autosar) - Not working / Build error 嗨@VaneB , 谢谢你的回复,是的,按照你说的做是有效的。 现在错误已清除上传的代码,但是 S32k144 评估板上的 ADC 值不会随着电位器位置的变化而变化。我需要添加任何功能或捕获数据吗?请指导我如何解决这个问题。另外,我附上了主函数文件供您参考。 Re: S32k144 ADC example code (RTD Non Autosar) - Not working / Build error 嗨@Buddyn 在原始演示中,没有使用引脚工具配置任何引脚,因此无需在外设工具中添加 Port_Ip 驱动程序。 但是,由于您现在要配置ADC引脚,因此需要添加Port_Ip驱动程序。您还需要将引脚工具功能组名称更改为PortContainer_0_VS_0 ,这对应于: 来自 Port_Ip 驱动程序的 PortContainer 名称+ " _ " +外围设备功能组名称 您可以在下图所示的窗口中修改名称: BR,VaneB Re: S32k144 ADC example code (RTD Non Autosar) - Not working / Build error 嗨@Buddyn 您是否只修改了我之前提到的 Port_Ip 驱动程序和功能组名称部分? 我注意到,在你分享的项目中,ADC0_SE12 配置为输出。需要将其配置为输入以读取ADC值。 我还建议您查看S32M24x/S32K1 – FTM/TRGMUX/PDB/ADC – [RTD300]主题。它提供了一个更复杂应用的范例。该示例使用了 S32K144EVB-Q100 上的电位器,但该实现方式仍然可以作为您应用的参考。
記事全体を表示
S32K144 RTD 3.0.0: differences between S32DS Configuration Tools and EB tresos Hello,   S32K144, S32 Design Studio 3.6.0, RTD SW32K1_S32M24x_RTD_R21-11_3.0.0_D2503, EB tresos Studio 29.0.0. High-level AUTOSAR drivers only.   In EB tresos, Port and Mcu are filled in by hand. In S32 Configuration Tools, Pins and Clocks are used together with those drivers. In the S32DS Dio example, the pin is configured in Pins, then added in Port with PortPinPcr. Direction and the related fields are filled from Pins. The clock tree is configured in Clocks, and Mcu only references that configuration by name.   After Pins and Clocks are used this way, what still has to be configured in Port, Mcu, or any related module? For the other high-level drivers, are the configuration items and the generated result the same as in EB tresos? Besides Pins and Port, and Clocks and Mcu, is there any other place where the configuration behavior is not the same as in EB tresos? Re: S32K144 RTD 3.0.0: differences between S32DS Configuration Tools and EB tresos Hi @Julián_AragónM , Thank you for the detailed and clear explanation! It's great to know that the generated code for the HLD (MCAL) is exactly the same, and the main difference is just the configuration format. Since my project is a bare-metal setup focusing purely on MCAL with my own custom BSW, I will strictly stick to the EB Tresos workflow and use S32DS just for compilation. "Everything is proceeding according to the scenario." (Keikaku doori) Thanks again for your help! Best regards, chaofan Re: S32K144 RTD 3.0.0: differences between S32DS Configuration Tools and EB tresos Hello @chaofan, S32DS provides perspectives to edit a device configuration, mainly Pins, Clocks, Peripherals, DCD (Device Configuration Data), IVT (Image vector Table), QuadSPI, eFUSE, ICE, GTM, and DDR. However, S32K1 (and S32K MCUs) only support Pins, Clocks and Peripherals. You can see this from the Config Tools Overview: Config Tools OverviewConfig Tools OverviewConfig Tools Overview All of the generated files for the high-level drivers (HLD) are the same between S32DS and EB Tresos. The main difference between these two tools is that EB Tresos uses AUTOSAR format (such as AUTOSAR schema XML format), while S32DS uses a .mex file, which does not follow the ASR schema format, but it is easier to program NXP devices through this interface.  Best regards, Julián Re: S32K144 RTD 3.0.0: differences between S32DS Configuration Tools and EB tresos Hi @chaofan, No problem and good luck! Best regards, Julián
記事全体を表示
Using IW610F as concurrent mode Hi, NXP Team. I have a question with using IW610F as concurrent mode. (at murata Type2KL module) → Using "AP (Wi-Fi)" mode & "STA (Wi-Fi)" mode & "BLE" simultaneously. Is it possible to use all 3 functions simultaneously, without disconnection? I think AP and STA mode should us 5G signal together and BLE will use 2G signal. Is it possible to use in this condition? → If I see Murata's Type2KL datasheet, there's a filter that divide 5G and 2G.     So, I assume that BLE will using 2G freq., so Wi-Fi can't use it.     So, I think that AP and STA mode should use 5G freq. together. → In my recognition, AP should keep connect, so there would be a difficulty with using STA simultaneously. (The background of my thought) Also, if there's something strange with my recognition, please notice me. IW611 END-NODE-MATTER-WI-FI  Best Regards. Happy hump day. Re: Using IW610F as concurrent mode Hi. Daniel. Really thank you for your reply. I checked the Link you shared and there's some questions. 1. I think "Concurrent" and "Coexistence" function is a bit different.    And, as it is written in NXP site, it seems IW610 series do support "Coexistence".    And this do help customer to use different functions simultaneously. (Exactly it is not simultaneously)    Do my recognition correct? 2. If I check the parts of Coexistence, there's no specific comment about using "AP + STA + BLE".     Is it okay, that IW610 series do support coexistence of "AP + STA + BLE" ?     Attached pic. do only say "BLE + Wi-Fi", so I think it do not clarify with my thought, so want to check. Also, If I check at the another page you shared. (mwifiex/doc/Release_Notes/Linux_RN/topics/coexistence.md at doc_WCT_release · nxp-imx/mwifiex · GitHub) It seems IW610 series do support "AP+BLE" or "STA+BLE". But, there's no comment about "AP+STA+BLE", so I want to check, IW610 series do support this. 3. Also, Do all the FW (or SW) released by NXP do support this coexistence, as it is written in these pages?     or, specific FW do support this coexistence? Best Regards. Have a nice day. Re: Using IW610F as concurrent mode Hi, Please refer to the following release notes for the supported coexistence scenarios: FreeRTOS Linux Regards, Daniel
記事全体を表示
使用 IW610F 作为并发模式 您好,NXP团队。 我有一个关于使用IW610F作为并发模式的问题。(在 Murata Type2KL 模块) →同时使用“AP(Wi-Fi)”模式、“STA(Wi-Fi)”模式和“BLE”。 是否可以同时使用这三个功能而不断开连接? 我认为AP 和 STA 模式应该同时使用 5G 信号,而 BLE 将使用 2G 信号。 在这种情况下可以使用吗? → 如果我查看Murata 的 Type2KL 数据表,会发现有一个滤波器可以区分 5G 和 2G 。 所以,我推测BLE会使用2G频段,因此Wi-Fi无法使用它。 所以,我认为AP模式和STA模式应该同时使用5G频率。 → 我认为AP 应该保持连接,因此同时使用 STA 会有困难。(我的思考背景) 另外,如果我的识别系统出现任何问题,请告知我。 IW611终端节点物质-Wi-Fi 此致。 周三快乐! Re: Using IW610F as concurrent mode 你好,丹尼尔。 非常感谢您的回复。 我查看了你分享的链接,里面有一些问题。 1.我认为“并发”和“共存”的功能略有不同。 而且,正如NXP网站上所写,IW610系列似乎确实支持“共存”。 这样确实有助于客户同时使用不同的功能。(确切地说,并非同时发生) 我的判断是否正确? 2. 如果我查看共存部分,没有关于使用“AP + STA + BLE”的具体说明。 IW610系列支持“AP+STA+BLE”共存,这可以吗? 附图。只写了“BLE + Wi-Fi”,我觉得这跟我预想的不太一样,所以想确认一下。 另外,如果我查看你分享的另一个页面。 ( mwifiex/doc/Release_Notes/Linux_RN/topics/coexistence.md 位于 doc_WCT_release · nxp-imx/mwifiex · GitHub) 看来 IW610 系列确实支持“AP+BLE”或“STA+BLE”。 但是,没有关于“AP+STA+BLE”的说明,所以我想确认一下,IW610 系列是否支持此功能。 3. 此外, NXP的所有固件(或软件)版本是否都像这些页面中所述那样支持这种共存?     或者, 特定的固件是否支持这种共存? 此致。 祝你今天过得愉快。 Re: Using IW610F as concurrent mode 您好, 请参阅以下版本说明,了解支持的共存场景: FreeRTOS Linux 问候, 丹尼尔
記事全体を表示
S32N55 A/B 交换 OTA — 被动库资产 (PaCo/Codef/SMR) 安装时序和运行时闪存访问 环境:S32N55,FSS 固件 1.19.0 (D2604),GrayVIP 1.0.25,HSE2,已启用安全启动。 目标:实现 A/B 交换 OTA。活动存储体 A 位于 AHB 0x10000000,被动存储体 B 位于 0x14000000(闪存偏移 0x04000000)。我正在尝试让正在运行的 FSS(活动库 A)安装被动库的 PaCo/Codef/SMR,然后交换 IVT 并重新启动到库 B。 我的发现: 正在运行的 FSS 无法读取 0x14000000 处的被动存储体。使用 T32(XSPI 配置为 4 字节读取,命令 0x13)时,0x14000000 处的数据可以正确读取,但在运行时,FSS/QSPI 使用 OPI 读取,这似乎是 3 字节寻址(~16MB 范围),因此任何对 0x14xxxxxx 总线的访问都会导致故障。银行 A 之所以能正常运行,是因为它使用的所有数据都在 16MB 以内。 强制重新安装运行时资源会导致电路板硬故障/RESET。当我在 FSS 资产安装函数(InstallPaCo / InstallSMRs / InstallCodefs / AuthenProcess)中绕过“SYS-IMAGE 已加载”门,在运行时重新运行安装时,即使我选择的是活动(可读)存储体,板也会重置。这表明资产安装不应该在队列(CRS/RTU)已经执行时运行。 问题: FSS 资产安装(通过 HSE 安装 PaCo/Codef/SMR)是否仅在启动/配置阶段(在队列发布之前)受支持,而不在 CRS/RTU 运行时受支持? 对于 A/B 交换 OTA,预期的激活顺序是什么?在写入被动存储体并交换 IVT 之后,被动存储体的 Codef(其映像源地址取决于存储体)、SMR 和 PaCo 何时以及如何安装/验证? 运行中的 FSS 是否需要在运行时访问被动存储体 (0x14000000)(即,运行时读取路径是否应该使用 4 字节寻址),还是被动存储体仅在下次启动时由启动 ROM 访问? 在 A/B 互换交易中,各银行的 PaCo 值是否不同?PaCo 包含闪存范围地址(0x10xxxxxx / 0x11xxxxxx),那么被动存储体的 PaCo 是否像 Codef 一样需要重新定位,还是与存储体无关? S32N5 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 陈音,谢谢你的快速回复。 为了澄清我的问题:我并没有依赖内置的 SCMI 服务。我已经实现了我自己的运行时 PaCo/CoDef 安装,作为 A/B 银行交换 OTA 的一部分。该设计与银行无关:运行中的(活动的)FSS 在运行时安装被动银行的资产,然后交换 IVT 主指针 (0x10000000 ↔ 0x14000000) 并重新启动到另一个银行。我直接重复使用现有的 FSS 安装状态机来实现这一点。 所以我的真正问题是,这种方法在当前的FSS上是否可行,因为在测试中它在某个特定点失败了。 有效方法:当安装目标指向活动银行时,完整路径完成(PaCo/Owner/Keys,SMR 安装返回 OK,FSS FW SMR0/AuthenProcess OK;Codef-install 和 ValidateBootConfig 在已发布的 SYS-IMG 下返回 NOT_ALLOWED,因此我将它们推迟到下一次启动的 BootCfgVerify)。然后 BTM 继续执行 PublishSysImage + EnableGlobalSecureBoot。 失败的原因:当安装程序以被动存储体为目标时,在 FSS 首次在 AHB 0x14013000 处取消引用被动存储体 PaCo 时,IndexSourcesStep 中会发生总线故障。活动银行地址(0x10xxxxxx)读取正常。 我追溯到的根本原因:问题不在于 AHB 窗口或地址。MemAcc_Init()(初始化 Mem_43_EXFLS,MemPerformDeviceConfiguration=TRUE)在 Fss_Firmware_InstallPacoCodefs() 之前运行,因此在安装时 SFA1D 已经是 0x18000000(128 MB),AHB 读取已启用,读取 LUT 为 4 字节 OPI-DDR。即使我通过 T32 手动确认 SFA1D = 0x18000000,0x14013000 仍然返回硬总线错误(不是 SFP 错误有效载荷)。这表明 XSPI 安全闪存保护 (SFP):覆盖被动区域的 FRAD 没有授予访问主功能域 RW 权限。当我将 FRAD 覆盖范围扩展到整个闪存并将 Md4Acp 设置为 RW 时,访问行为发生了变化。 我的问题: 在当前的 FSS(启用安全启动)架构上,是否支持通过重复使用上述安装函数将 PaCo/CoDef 运行时安装到被动存储体中?或者在参考 OTA 可用之前,是否存在我应该注意的重大障碍? 这种临时方法有什么注意事项吗?例如,为目标存储体安装 FSS FW SMR0(AuthenProcess),并将 CoDef/启动-config 检查推迟到下次启动的 BootCfgVerify 中? 谢谢, 埃迪 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 你好, @EddiePark 感谢您的帖子,很高兴再次支持您。 当前 FSS 不提供 SCMI 服务以在运行时安装 PaCo 和 CoDef。 目前,S32N 的 OTA 参考实现仍在开发中,如果可能的话,我建议在它可用时直接参考它来实现您自己的 OTA 流程。 BR 陈银   Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 您好,经过系统调试后,我将提供更多详细信息。 配置:S32N55,FSS固件1.19.0,安全启动。A/B 银行间互换 OTA。运行中的 FSS (M7) 在运行时安装被动银行的 PaCo/CoDef(我们自己的实现,重复使用 FSS 安装状态机)。被动银行基址 = 0x14000000。 故障:在 Fss_Firmware_IndexSourcesStep 中,FSS-M7 对 0x14013000 处的被动存储体 PaCo 执行直接 AHB 内存映射读取(CPU 解引用),并出现精确的 BusFault: CFSR = 0x00008200 → BFSR: PRECISERR=1, BFARVALID=1, MMFSR=0 BFAR = 0x14013000 我们已排除以下可能性(并附有证据): MPU:并非病因。MMFSR=0。MPU 区域 2 = 外部闪存 0x10000000–0x1FFFFFFF,普通可缓存 WB,只读 → 覆盖 0x14013000,允许读取。 SFP:并非原因。设置 MemXspiSfpEnable = FALSE 并重新构建 → 出现同样的错误。(无论如何,FRAD 都会将该区域授予相关功能域。) AHB 窗口:SFA1D = 0x18000000 (128 MB) → 银行 B 位于窗口内。 关键观察结果——这并非特定于某家银行,而是“新鲜数据与缓存数据”的问题: 读取/故障边界正好是 0x13780000(0x1377FFFF 读取,0x13780000 故障)。这是固件映像区域(FSS/CRS/HSE/RTU/Sys_Img)的结束/数据区域(IDS…)的开始。从基本容量算起是 56 MB——不是 2 的幂,所以它不是硬件大小的边界;它恰好是 FSS 在启动期间读取和缓存的范围(外部闪存区域是可缓存的)。 → FSS 在启动期间读取的所有内容(现在位于数据缓存中)都可以正常读取。任何需要 FRESH(未缓存)直接 AHB 读取故障的地址——包括低于 0x14000000 的地址(例如,0x13780000 位于活动的 64 MB 内存中,并且也存在故障)。所以真正的问题是:对外部闪存进行新鲜的、未缓存的、直接的 AHB 内存映射读取在运行时失败。 MemPerformDeviceConfiguration 测试: MemPerformDeviceConfiguration = TRUE(设备初始化运行 → 八进制 DDR):闪存写入工作(通过 MemAcc INDIRECT_STATIC 的间接/IP 命令),缓存读取工作,新的 AHB 读取失败。 MemPerformDeviceConfiguration = FALSE(跳过设备初始化):读取操作全部返回 0x00(设备未保持在八进制 DDR 模式)。 因此,当设备正确设置为八进制 DDR 时,写入操作成功,但新内存映射的读取操作失败。由于八进制 DDR 外部 DQS 读取使用设备 DQS 选通进行采样,而写入则不使用,这表明存在读取路径(DQS/DLL/虚拟/时序)问题。 配置上下文: 只有 FSS 配置 XSPI 控制器(Xspi_Ip_paXspiUnitCfg,MemPerformDeviceConfiguration = TRUE,八进制 DDR,外部 DQS,DLL 已绕过)。CRS 和 RTU 跳过控制器配置(XspiUnit = NULL,DeviceConfiguration = FALSE),并继承启动配置。 qspi 参数(xspi_S28H_octal_ddr_200Mhz_dll_bypass_ext_dqs.bin)包含在生成的 VIP/IVT blob 中。 问题: 在当前的 FSS 中,FSS-M7 是否能够对任意/未绑定的地址在运行时(MemAcc_Init 之后)执行直接的 AHB 内存映射读取外部 XSPI 闪存?或者运行时闪存读取必须通过间接(IP 命令)Mem/MemAcc 路径? 为什么在 SFA1D=128 MB、SFP 已禁用且 MPU RO 覆盖该区域的情况下,直接 AHB 读取未缓存地址会返回精确的 BusFault,而写入(间接)和缓存读取却会成功? FSS 的 MemAcc_Init 控制器重新配置是否与启动 qspi-param XSPI 读取设置冲突,以致于内存映射读取中断?FSS 是否应该跳过控制器重新配置(如 CRS/RTU)并继承启动 qspi-param 配置?如果是这样,我们如何保留闪存写入支持? 对于 S28HS01GT 上的 200 MHz 八进制 DDR / 外部 DQS / DLL 旁路,可靠的内存映射读取需要哪些 DLL / DQS / 虚拟周期设置?(我们怀疑我们的 FSS 读取配置与正常工作的启动 qspi-param 配置不同。) 谢谢, 埃迪 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 你好, @EddiePark 抱歉回复晚了,因为我休假了。 请问您是否修改过以下设置?TG0 的访问控制策略 → 将所有实例更改为 XSPI_IP_SFP_ACP_RW,然后测试通过 FSS 访问闪存地址时问题是否仍然存在。 BR 陈银 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 陈银你好, 完全没问题——谢谢你的回复。 是的,我们已经实现了相关功能,通过 FSS 的被动银行访问功能也已实现。被动存储体(存储体 B)的 PaCo 和 SMR 安装已在运行时成功完成: PaCo:HSE 返回 HSE_SRV_RSP_ALREADY_DONE (0xDADAEAEA),我们将其视为成功。 SMR:使用 bank-B 源地址 (0x14280000) 正确安装,ret=0。 我们剩下的问题具体是关于运行时 Codef 的安装: 当启用安全启动并且 SYS-IMAGE 已发布时,运行时 Sherpa_Cdd_InstallCodef 调用(由 FSS 发出,在正常运行期间通过 RTU3 SCMI 触发信号)将为每个队列返回 HSE_SRV_RSP_NOT_ALLOWED (0xAA55A21C)。我们通过日志记录(所有队列的 instRet=1)证实了这一点。 我们的理解是,在启用安全启动的情况下,发布的 SYS-IMAGE 会密封 Codef,因此不允许运行时安装 Codef,Codef CHECK-IN 必须推迟到下一次启动的 hseBootCfgVerifySrv_t 阶段(在 IVT 交换之后)。相比之下,SMR 是在运行时允许的。 请问这是否是预期行为/设计使然?那是: 启用安全启动并发布 SYS-IMAGE 后,运行时 Codef 安装(通过 FSS/SCMI)是否预期返回 NOT_ALLOWED? 将 Codef CHECK-IN 推迟到下一次启动验证 (hseBootCfgVerifySrv_t) 是否是 A/B 交换被动库更新的正确/预期方法? 关于访问控制策略设置(TG0 → XSPI_IP_SFP_ACP_RW):我们将按照您的建议检查我们当前的配置并测试闪存访问,并向您汇报。 谢谢你, 埃迪·帕克
記事全体を表示
FS2633D 标准 OTP(无增强)适用于 S32K376 – MFS2633HMDAKAD? 感谢您提出帮我们审阅原理图,我们非常乐意接受您的帮助。我们希望能在11月底之前准备好。 自从我发第一篇帖子以来,我们已经改用FS2633D ,搭配我们自己的 24V → 12V 降压转换器(没有 VBST 升压),以及 S32K376 芯片。我们更倾向于使用标准的一次性密码本 (OTP) 部分: 能否分享一下MFS2633HMDAKAD的完整 OTP 映射表,它与 S32K376 兼容吗?如果没有,您推荐哪款不带增压功能的标准FS2633D部件用于S32K376/S32K396? 我们需要:VPRE 5.4 V,VCORE 1.5 V,LDO1 3.3 V 和 LDO2 5.0 V(待机时均开启),TRK1/TRK2、VREF 和 VMON_EXT 关闭,GPIO2 为 VCORE_PGOOD,WAKE2 为唤醒输入(无 ERRMON),FS0B/FS1B 启用。AK地图与这些相符吗? 如果没有合适的标准零件,定制 FS2633D OTP 零件的流程、最小起订量和交货时间是什么? 您认为 FS26 任务我的是否涵盖在 5-40 摄氏度的适宜温度下 24/7 全天候运行 10 年? 再次感谢! Re: FS2633D standard OTP (no boost) for S32K376 – MFS2633HMDAKAD? 嗨,乔纳斯 能否分享一下MFS2633HMDAKAD的完整 OTP 映射表,它与 S32K376 兼容吗?如果没有,您推荐哪个不带增压的标准 FS2633D 部件用于 S32K376/S32K396?[gw]请参阅附件中的 OTP 文件。请参阅下方推荐的适用于 S32K37*/S32K396 的 FS26。 我们需要:VPRE 5.4 V,VCORE 1.5 V,LDO1 3.3 V 和 LDO2 5.0 V(待机时均开启),TRK1/TRK2、VREF 和 VMON_EXT 关闭,GPIO2 为 VCORE_PGOOD,WAKE2 为唤醒输入(无 ERRMON),FS0B/FS1B 启用。AK 映射是否与这些匹配?[GW]您也可以将您的要求与附件 OTP 文件中列出的 VOUT 和 FUSA 接口配置进行比较。 如果没有合适的标准零件,定制 FS2633D OTP 零件的流程、最小起订量和交货时间是什么?[gw]建议联系您当地的 NXP 代理商讨论此主题。 您认为 FS26 任务我的是否涵盖在 5-40 摄氏度的适宜温度下 24/7 全天候运行 10 年?
記事全体を表示
S32K311 SPI Rx FIFO resets to zero after receiving Data Hello, I have a "s32k31XEVB-Q100 Evaluation Board" and try to get a working communication between the S32 and the FS23. I am using non-Autosar driver for LPSPI and FS23 (Sbc_fs23_Ip). In the main-Function I start with int main(void) { /* Write your code here */ Clock_Ip_StatusType clockStatus; volatile Sbc_fs23_Ip_StatusType sbcStatus; clockStatus = Clock_Ip_Init(&Clock_Ip_aClockConfig[0]); if (CLOCK_IP_SUCCESS != clockStatus) { exit_code = -1; } uint8 sbcLEDState = 0; /* Initial Pins */ Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS_PortContainer_0_BOARD_InitPeripherals, g_pin_mux_InitConfigArr_PortContainer_0_BOARD_InitPeripherals); /* Initial ISR */ IntCtrl_Ip_Init(&IntCtrlConfig_0); IntCtrl_Ip_EnableIrq(FlexCAN0_0_IRQn); /* already enabled in IntCtrl_Ip - Interrupt Controller */ //IntCtrl_Ip_EnableIrq(FlexCAN0_1_IRQn); //IntCtrl_Ip_EnableIrq(FlexCAN0_2_IRQn); //IntCtrl_Ip_EnableIrq(FlexCAN0_2_IRQn); FlexCAN_Ip_Init(INST_FLEXCAN_0, &FlexCAN_State0, &FlexCAN_Config0); FlexCAN_Ip_SetRxIndividualMask(INST_FLEXCAN_0,CAN_RX_MB_IDX,0xFFFFFFFF); FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, CAN_RX_MB_IDX, &CAN_rx_info, CAN_Rx_MSG_ID); FlexCAN_Ip_SetStartMode(INST_FLEXCAN_0); //FlexCAN_Ip_Receive(INST_FLEXCAN_0,CAN_RX_MB_IDX,&rxData,false); OsIf_Init(NULL_PTR); lpspi_status = Lpspi_Ip_Init(&Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_0_Instance_0); Sbc_fs23_Ip_InitDriver(&Sbc_fs23_Ip_Config); sbcStatus = Sbc_fs23_Ip_InitDevice(0x00); if (SBC_FS23_IP_SUCCESS_U8 != sbcStatus) { sbcLEDState++; } When it comes to Sbc_fs23_Ip_InitDevice the SBC_FS23_IP_M_STATUS_ADDR (0x03) will be read out. in Lpspi_Ip.c the Function Lpspi_Ip_SyncTransmit is called. The TX-Data are pushed to LPSPI_0->TDR. LOCAL_INLINE void Lpspi_Ip_PushDataToFifo(uint8 Instance, uint8 NumberOfWrites😞 if (NULL_PTR != State->TxBuffer) { if (State->ExternalDevice->DeviceParams->FrameSize < 9u) { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint8*)(&State->TxBuffer[State->TxIndex + Index])); Base->TDR = Data; } } else if (State->ExternalDevice->DeviceParams->FrameSize < 17u) { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint16*)(&State->TxBuffer[2u * (State->TxIndex + Index)])); Base->TDR = Data; } } else { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint32*)(&State->TxBuffer[4u * (State->TxIndex + Index)])); Base->TDR = Data; } } } else { for (Index = 0; Index < NumberOfWrites; Index++) { Base->TDR = Data; } } State->TxIndex += NumberOfWrites; } The code goes to the else (State->TxBuffer != NULL_PTR) and the Datas are sent. Now I can see that RXCOUNT in LPSPI_0->FSR is 1 and the data in LPSPI_0->RDR are same as received But when I continue the debugging (directly next step in same Function Lpspi_Ip_PushDataToFifo) the RDRA->DATA switches to 0, the FSR->RXCOUNT goes to 0 and the RXR->RXEMPTY switches back to 1. Later in the function Lpspi_Ip_SyncTransmit the LPSPI_0->FSR Register is read out to get the Data. But because it is set to 0, no Datas are read out. I have no Idea why this happens. maybe my .mex file has some wrong configurations? Can anybody have a look at it? Re: S32K311 SPI Rx FIFO resets to zero after receiving Data Hello @john_2, This is most likely a debugger side effect.  RXCOUNT = 1 with valid RDR data, then RXCOUNT = 0 after single-stepping. Reading RDR pops data from the RX FIFO. The debugger’s peripheral/register/memory views may read RDR during refresh/stepping and consume the data. Close the S32DS registers/peripheral/memory views. Break after the driver has copied RDR data into the receive buffer and inspect the buffer, not RDR. Regards, Daniel
記事全体を表示
S32DSアプリケーションでHMSボードS32K344検出できません。 S32DSではプロジェクトをビルドできますが、S32k3ボードでのデバッグまたはフラッシュ中に、ポートオプションのPEMicroデバッガーオプションでこのS32K3ボードを検出できません。通常通りUSBケーブルで接続してデバイスマネージャの表示を確認しましたが、HMSボードS32K344コネクテッド検出できませんでした。#S32k344             Re: Unable to detect S32K344 HMS Board in S32DS application. こんにちは、 @Amit8863さん 搭載されているLEDは正常に動作しているようです。 もしかすると、別のS32DSやIDEのインスタンスが現在このデバッガを使っている可能性はありますか? しかし、オンボードのデバッガ(PEMicro OpenSDA Debug ドライバ )は デバイスマネージャには表示されません。USBケーブルを差し込んだ後、デバイスマネージャーをご覧ください。D+とD-の信号線を含むUSBケーブルを使用してください。 オンボードデバッガはPEMicroによって提供されており、最新の「USB Multilink Resources Installer」を、「Multilink Debug Probes」の「サポート & Downloads」カテゴリからダウンロードすることを推奨します。インストール後、PEFirmwareConfig.exe C:\PEMicro\Multilink_Resourcesにあるファイルを開き、ファームウェアのバージョンを確認してください。ハードウェアタイプを選択し:Multilink ACP Embedded - OnBoard Arm Debug インターフェース。次に、利用可能なアップデートを確認してください。 その後、S32DS PEMicroインターフェース設定のポートフィールドで「Embedded Multilink Rev A」が検出されるはずです。 よろしくお願いいたします ロビン Re: Unable to detect S32K344 HMS Board in S32DS application. こんにちは、 @Robin_Shen さん。 あなたのスクリーンショットに表示されているようなデバイス選択オプションが、こちらでは見つかりません。しかし、私には何も表示されませんでした。どうすれば選択肢を得られるか教えていただけますか よろしくお願いいたします。 アミット Re: Unable to detect S32K344 HMS Board in S32DS application. こんにちは、Amit8863さん。 最新版の「 USBマルチリンクリソースインストーラー」をダウンロードしてインストールしましたか? 他にテスト用のS32K3開発ボードはありますか?それとも同僚のパソコンは搭載デバッガを認識できますか? よろしくお願いいたします ロビン Re: Unable to detect S32K344 HMS Board in S32DS application. こんにちは、アミットさん。 搭載デバッガはPEMicroが提供しており、搭載LEDD14(STATUS OSDA)はオレンジ色で正しく点灯しているため、サポートチケットシステムを通じてPEMicroに連絡することをお勧めします。 よろしくお願いいたします ロビン Re: Unable to detect S32K344 HMS Board in S32DS application. こんにちは、ロビン 最新の「USB Multilink Resources Installer」をダウンロードしてインストールしました。しかし、上記のソフトウェアのオプションが表示されています。はい、他にもS32K3の開発ボードがあり、同じPCで完全に動作しています。このS32K344ボードは確認しています。 よろしくお願いいたします。 アミット・クマール
記事全体を表示
S32DS 应用中无法检测到 S32K344 HMS 板。 在 S32DS 中,我能够构建我的项目,但在 S32k3 板上进行调试或烧录时,我无法在 PEMicro 调试器的端口选项中检测到该 S32K3 板。即使按照正常方式,我通过 USB 电缆连接检查设备管理器是否显示已连接,但设备管理器也无法检测到这块 S32K344 HMS 板。#S32k344             Re: Unable to detect S32K344 HMS Board in S32DS application. 你好@Amit8863 板载LED指示灯似乎工作正常。 会不会是另一个 S32DS 实例或其他 IDE 当前正在使用此调试器? 然而,板载调试器( PEMicro OpenSDA 调试驱动程序) )未出现在设备管理器中。请在插入USB线缆后查看我的设备管理器。请使用带有 D+ 和 D- 信号线的 USB 数据线。 板载调试器由 PEMicro 提供,建议下载最新的“USB 多链路资源安装程序”,该安装程序可从“支持与下载”类别下的“多链路调试探针”页面获得。安装完成后,打开PEFirmwareConfig.exe文件,该文件位于 C:\PEMicro\Multilink_Resources 目录下,用于检查固件版本。选择硬件类型:Multilink ACP Embedded - OnBoard Arm 调试接口然后检查是否有可用更新。 然后,应在 S32DS PEMicro 接口设置的端口字段中检测到“嵌入式多链路 Rev A ”。 此致敬礼, Robin Re: Unable to detect S32K344 HMS Board in S32DS application. 嗨@Robin_Shen 我在这里找不到像您截图中显示的那样选择设备的选项。但我这边什么都没显示。请问我如何才能获得选项? 顺祝商祺! 阿米特 Re: Unable to detect S32K344 HMS Board in S32DS application. 你好 Amit8863, 你是否下载了最新的“ USB多链路资源安装程序”并进行了安装? 是否有其他 S32K3 开发板可供您测试?或者您同事的计算机是否能够识别板载调试器? 此致敬礼, Robin Re: Unable to detect S32K344 HMS Board in S32DS application. 你好,罗宾 我下载了最新的“USB Multilink Resources Installer”并进行了安装,但它显示的选项与上面提到的可用软件相同。是的,我还有另一块S32K3开发板,它和我现在用来测试这块S32K344板的电脑连接良好,运行正常。 此致, 阿米特·库马尔 Re: Unable to detect S32K344 HMS Board in S32DS application. 嗨,阿米特, 由于板载调试器由 PEMicro 提供,并且板载 LED D14(STATUS OSDA)已正确亮起橙色,我建议您通过 PEMicro 的支持票务系统联系他们寻求帮助。 此致敬礼, Robin
記事全体を表示
S32K376用FS2633D標準OTP(ブーストなし) – MFS2633HMDAKAD? 回路図のレビューのお申し出ありがとうございます。喜んでお引き受けさせていただきます。11月末頃には完成させたいと思っています。 最初の投稿以降、自社の24V→12Vバック(VBSTブーストなし)の後ろに FS2633D を設置し、さらにS32K376を設置しました。標準的なOTP部品を希望します。 MFS2633HMDAKADのOTPマップ全体を共有してもらえますか?また、S32K376で問題ないですか?そうでない場合、S32K376/S32K396 用に推奨する、ブースト機能のない標準の FS2633D 部品はどれですか? 必要な設定:VPRE 5.4 V、VCORE 1.5 V、LDO1 3.3 V、LDO2 5.0 V(スタンバイ時は両方ともオン)、TRK1/TRK2、VREFおよびVMON_EXTオフ、GPIO2をVCORE_PGOOD、WAKE2をウェイク入力(ERRMONなし)、FS0B/FS1B有効化。AKの地図はこれらと一致しますか? 標準部品が適合しない場合、カスタムFS2633D OTP部品の製造プロセス、最小注文数量(MOQ)、および納期はどうなりますか? FS26のミッションプロファイルは、5~40℃の適度な気温下で、10年間24時間365日稼働することをカバーしていると思いますか? 再度、感謝します! Re: FS2633D standard OTP (no boost) for S32K376 – MFS2633HMDAKAD? こんにちは、ジョナス MFS2633HMDAKADのOTPマップ全体を共有してもらえますか?また、S32K376で問題ないですか?そうでない場合、S32K376/S32K396 にはどの標準 FS2633D 部品(ブーストなし)をお勧めしますか?[gw]この OTP ファイルは添付ファイルを参照してください。S32K37*/S32K396にはFS26をお勧めします。下記をご覧ください。 必要な設定:VPRE 5.4 V、VCORE 1.5 V、LDO1 3.3 V、LDO2 5.0 V(スタンバイ時は両方ともオン)、TRK1/TRK2、VREFおよびVMON_EXTオフ、GPIO2をVCORE_PGOOD、WAKE2をウェイク入力(ERRMONなし)、FS0B/FS1B有効化。AKマップはこれらと一致していますか?[GW]また、VOUTとFUSAのインターフェース構成が記載された添付のOTPファイルとご自身で要件を比較することもできます。 標準部品が合わない場合は、カスタムFS2633D OTP部品のプロセス、最小注文量、リードタイムはどのようなものですか?[GW]このトピックについて話し合うために、地元のNXP代理店に連絡することをお勧めします。 FS26のミッションプロファイルは、5~40℃の適度な気温下で、10年間24時間365日稼働することをカバーしていると思いますか?
記事全体を表示
Unable to detect S32K344 HMS Board in S32DS application. In S32DS I am able to build my project but during debug or flashing in S32k3 board I am unable detect this S32K3 board in PEMicro debbuger option in port option. Even in normal way I checked by connecting through USB cable whether it showing connected or not device manager but there also unable to detect this S32K344 HMS board. #S32k344             Re: Unable to detect S32K344 HMS Board in S32DS application. Hi @Amit8863  The onboard LED appears to be functioning normally. Could it be that another instance of S32DS or another IDE is currently using this debugger? However, the onboard debugger(PEMicro OpenSDA Debug Driver ) does not appear in Device Manager. Please take a look at my Device Manager after the USB cable has been plugged in. Please use a USB cable that includes D+ and D- signal lines. The onboard debugger is provided by PEMicro, it is recommended to download the latest "USB Multilink Resources Installer" from the "Support & Downloads" category of the "Multilink Debug Probes". After installation, open PEFirmwareConfig.exe located in C:\PEMicro\Multilink_Resources to check the firmware version. Select Hardware Type: Multilink ACP Embedded - OnBoard ARM Debug Interface  Then, check for available updates. Then, "Embedded Multilink Rev A" should be detected in the Port field under S32DS PEMicro Interface Settings. Best Regards, Robin Re: Unable to detect S32K344 HMS Board in S32DS application. Hi @Robin_Shen  I am unable to find any option here in select device as in your screenshot showing some devices. but for me nothing showing. could you please tell me how i can i get options Best Regards, Amit Re: Unable to detect S32K344 HMS Board in S32DS application. Hi Amit8863, Did you download the latest "USB Multilink Resources Installer" and then install it? Are there any other S32K3 development boards available for you to test with, or is your colleague's computer able to recognize the on-board debugger? Best Regards, Robin Re: Unable to detect S32K344 HMS Board in S32DS application. Hi Amit, Since the on-board debugger is provided by PEMicro, and the on-board LED D14 (STATUS OSDA) is correctly lit in orange, I suggest that you reach out to PEMicro via their Support Ticket system for assistance. Best Regards, Robin Re: Unable to detect S32K344 HMS Board in S32DS application. Hello Robin I downloaded the latest "USB Multilink Resources Installer" and then i installed it. but it is showing option as in above available software. Yes i have one another S32K3 development boards available and it is in fully working case with same my computer on which i am checking this S32K344 board. Regards, Amit Kumar
記事全体を表示
S32K311 SPI Rx FIFOはデータ受信後にゼロにリセットされます こんにちは、 私は「s32k31XEVB-Q100評価ボード」を持っていて、S32とFS23の間で動作する通信を試みています。 LPSPIとFS23(Sbc_fs23_Ip)にはAUTOSAR以外のドライバを使っています。 メイン関数では、まず int main(void) { /* Write your code here */ Clock_Ip_StatusType clockStatus; volatile Sbc_fs23_Ip_StatusType sbcStatus; clockStatus = Clock_Ip_Init(&Clock_Ip_aClockConfig[0]); if (CLOCK_IP_SUCCESS != clockStatus) { exit_code = -1; } uint8 sbcLEDState = 0; /* Initial Pins */ Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS_PortContainer_0_BOARD_InitPeripherals, g_pin_mux_InitConfigArr_PortContainer_0_BOARD_InitPeripherals); /* Initial ISR */ IntCtrl_Ip_Init(&IntCtrlConfig_0); IntCtrl_Ip_EnableIrq(FlexCAN0_0_IRQn); /* already enabled in IntCtrl_Ip - Interrupt Controller */ //IntCtrl_Ip_EnableIrq(FlexCAN0_1_IRQn); //IntCtrl_Ip_EnableIrq(FlexCAN0_2_IRQn); //IntCtrl_Ip_EnableIrq(FlexCAN0_2_IRQn); FlexCAN_Ip_Init(INST_FLEXCAN_0, &FlexCAN_State0, &FlexCAN_Config0); FlexCAN_Ip_SetRxIndividualMask(INST_FLEXCAN_0,CAN_RX_MB_IDX,0xFFFFFFFF); FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, CAN_RX_MB_IDX, &CAN_rx_info, CAN_Rx_MSG_ID); FlexCAN_Ip_SetStartMode(INST_FLEXCAN_0); //FlexCAN_Ip_Receive(INST_FLEXCAN_0,CAN_RX_MB_IDX,&rxData,false); OsIf_Init(NULL_PTR); lpspi_status = Lpspi_Ip_Init(&Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_0_Instance_0); Sbc_fs23_Ip_InitDriver(&Sbc_fs23_Ip_Config); sbcStatus = Sbc_fs23_Ip_InitDevice(0x00); if (SBC_FS23_IP_SUCCESS_U8 != sbcStatus) { sbcLEDState++; } Sbc_fs23_Ip_InitDevice の場合、SBC_FS23_IP_M_STATUS_ADDR (0x03) が読み出されます。 Lpspi_Ip.c 内関数 Lpspi_Ip_SyncTransmit が呼び出されます。 TXデータはLPSPI_0->TDRに送信されます。 LOCAL_INLINE void Lpspi_Ip_PushDataToFifo ( uint8 Instance , uint8書き込み数😞 if (NULL_PTR != State->TxBuffer) { if (State->ExternalDevice->DeviceParams->FrameSize < 9u) { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint8*)(&State->TxBuffer[State->TxIndex + Index])); Base->TDR = Data; } } else if (State->ExternalDevice->DeviceParams->FrameSize < 17u) { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint16*)(&State->TxBuffer[2u * (State->TxIndex + Index)])); Base->TDR = Data; } } else { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint32*)(&State->TxBuffer[4u * (State->TxIndex + Index)])); Base->TDR = Data; } } } else { for (Index = 0; Index < NumberOfWrites; Index++) { Base->TDR = Data; } } State->TxIndex += NumberOfWrites; } コードはelse (State->TxBuffer != NULL_PTR) に進み、データが送信されます。 今では、LPSPI_0->FSRのRXCOUNTは1で、LPSPI_0->RDRのデータは受信と同じであることがわかります しかし、デバッグを続けると(同じ関数Lpspi_Ip_PushDataToFifoの次のステップ)、RDRA->DATAは0にスイッチし、FSR->RXCOUNTは0に戻り、RXR->RXEMPTYは1にスイッチしてしまいます。 後ほど関数Lpspi_Ip_SyncTransmit内で、LPSPI_0->FSRレジスタが読み出されてデータが取得されます。しかし、このレジスタは0に設定されているため、データは読み出されません。 なぜこうなるのか全く分かりません。 たぶん私の.mexファイルの設定に誤りがある可能性があります。 CAN、誰か見せてもらえますか? Re: S32K311 SPI Rx FIFO resets to zero after receiving Data こんにちは、@john_2 さん。 これはおそらくデバッガーの副作用でしょう。 有効なRDRデータがある場合、RXCOUNT = 1となり、その後、シングルステップ実行後にRXCOUNT = 0となる。 RDRを読み取ると、RX FIFOからデータがポップされます。 デバッガのペリフェラル/レジスタ/メモリビューは、リフレッシュやステップピング中にRDRを読み取り、データを消費することがあります。 S32DSのレジスタやペリフェラル、メモリビューを閉じてください。 ドライバがRDRデータを受信バッファにコピーした後にブレークし、RDRではなくバッファを検査します。 よろしくお願いいたします。 ダニエル
記事全体を表示
S32K311 SPI 接收 FIFO 在接收到数据后 RESET 为零 你好, 我有一个“s32k31XEVB-Q100 评估板”,并尝试在 S32 和 FS23 之间建立工作通信。 我正在使用非 Autosar 驱动程序来支持 LPSPI 和 FS23 (Sbc_fs23_Ip)。 在主函数中,我首先 int main(void) { /* Write your code here */ Clock_Ip_StatusType clockStatus; volatile Sbc_fs23_Ip_StatusType sbcStatus; clockStatus = Clock_Ip_Init(&Clock_Ip_aClockConfig[0]); if (CLOCK_IP_SUCCESS != clockStatus) { exit_code = -1; } uint8 sbcLEDState = 0; /* Initial Pins */ Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS_PortContainer_0_BOARD_InitPeripherals, g_pin_mux_InitConfigArr_PortContainer_0_BOARD_InitPeripherals); /* Initial ISR */ IntCtrl_Ip_Init(&IntCtrlConfig_0); IntCtrl_Ip_EnableIrq(FlexCAN0_0_IRQn); /* already enabled in IntCtrl_Ip - Interrupt Controller */ //IntCtrl_Ip_EnableIrq(FlexCAN0_1_IRQn); //IntCtrl_Ip_EnableIrq(FlexCAN0_2_IRQn); //IntCtrl_Ip_EnableIrq(FlexCAN0_2_IRQn); FlexCAN_Ip_Init(INST_FLEXCAN_0, &FlexCAN_State0, &FlexCAN_Config0); FlexCAN_Ip_SetRxIndividualMask(INST_FLEXCAN_0,CAN_RX_MB_IDX,0xFFFFFFFF); FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, CAN_RX_MB_IDX, &CAN_rx_info, CAN_Rx_MSG_ID); FlexCAN_Ip_SetStartMode(INST_FLEXCAN_0); //FlexCAN_Ip_Receive(INST_FLEXCAN_0,CAN_RX_MB_IDX,&rxData,false); OsIf_Init(NULL_PTR); lpspi_status = Lpspi_Ip_Init(&Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_0_Instance_0); Sbc_fs23_Ip_InitDriver(&Sbc_fs23_Ip_Config); sbcStatus = Sbc_fs23_Ip_InitDevice(0x00); if (SBC_FS23_IP_SUCCESS_U8 != sbcStatus) { sbcLEDState++; } 当处理 Sbc_fs23_Ip_InitDevice 时,将读取 SBC_FS23_IP_M_STATUS_ADDR (0x03)。 在 Lpspi_Ip.c调用函数 Lpspi_Ip_SyncTransmit。 TX 数据被推送至 LPSPI_0->TDR。 LOCAL_INLINE void Lpspi_Ip_PushDataToFifo ( uint8 Instance , uint8写入次数😞 if (NULL_PTR != State->TxBuffer) { if (State->ExternalDevice->DeviceParams->FrameSize < 9u) { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint8*)(&State->TxBuffer[State->TxIndex + Index])); Base->TDR = Data; } } else if (State->ExternalDevice->DeviceParams->FrameSize < 17u) { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint16*)(&State->TxBuffer[2u * (State->TxIndex + Index)])); Base->TDR = Data; } } else { for (Index = 0; Index < NumberOfWrites; Index++) { Data = *((const uint32*)(&State->TxBuffer[4u * (State->TxIndex + Index)])); Base->TDR = Data; } } } else { for (Index = 0; Index < NumberOfWrites; Index++) { Base->TDR = Data; } } State->TxIndex += NumberOfWrites; } 代码会执行 else (State->TxBuffer != NULL_PTR) 部分,然后发送数据。 现在我可以看到 LPSPI_0-FSR 中的 RXCOUNT 为 1,并且 LPSPI_0-RDR 中的数据与接收到的数据相同。 但是当我继续调试(直接执行同一函数Lpspi_Ip_PushDataToFifo 中的下一步)时,RDRA->DATA 变为 0,FSR->RXCOUNT 变为 0,RXR->RXEMPTY 变回 1。 在函数Lpspi_Ip_SyncTransmit 的后续步骤中,会读取 LPSPI_0->FSR 寄存器以获取数据。但由于该寄存器被设置为 0,因此无法读取到任何数据。 我不知道为什么会发生这种情况。 可能是我的 .mex文件配置有误? 有人能帮忙看一下吗? Re: S32K311 SPI Rx FIFO resets to zero after receiving Data 你好@john_2 , 这很可能是调试器的副作用。 使用有效的 RDR 数据时,RXCOUNT = 1;单步处理后,RXCOUNT = 0。 从 RX FIFO 读取 RDR pops 数据。 调试器的外设/寄存器/内存视图可能会在刷新/单步执行期间读取 RDR 并消耗数据。 关闭 S32DS 寄存器/外设/内存视图。 在驱动程序将 RDR 数据复制到接收缓冲区后中断并检查缓冲区,而不是 RDR。 此致, 丹尼尔
記事全体を表示
S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash access Environment: S32N55, FSS FW 1.19.0 (D2604), GrayVIP 1.0.25, HSE2, Secure Boot enabled. Goal: Implement A/B swap OTA. Active bank A at AHB 0x10000000, passive bank B at 0x14000000 (flash offset 0x04000000). I am trying to have the running FSS (active bank A) install the passive bank’s PaCo/Codef/SMR, then swap the IVT and reboot into bank B. What I found: The running FSS cannot read the passive bank at 0x14000000. With T32 (XSPI configured for a 4-byte read, cmd 0x13) the data at 0x14000000 reads correctly, but at runtime the FSS/QSPI uses an OPI read that appears to be 3-byte addressing (~16MB reach), so any access to 0x14xxxxxx bus-faults. Bank A works because all of its used data is within the low 16MB. Forcing a runtime asset re-install hard-faults/resets the board. When I bypass the “SYS-IMAGE already loaded” gate in the FSS asset-install functions (InstallPaCo / InstallSMRs / InstallCodefs / AuthenProcess) to re-run the install at runtime, the board resets — even when I target the active (readable) bank. This suggests asset install is not intended to run while the cohorts (CRS/RTU) are already executing. Questions: Is FSS asset install (PaCo/Codef/SMR via HSE) supported only during the boot/provisioning phase (before cohorts are released), and not at runtime while CRS/RTU are running? For A/B swap OTA, what is the intended activation sequence? After writing the passive bank and swapping the IVT, when and how are the passive bank’s Codef (whose image source addresses are bank-dependent), SMRs, and PaCo installed/verified? Is the running FSS expected to access the passive bank (0x14000000) at runtime (i.e., should the runtime read path use 4-byte addressing), or is the passive bank accessed only by the boot ROM at the next boot? Across an A/B swap, does the PaCo differ between banks? The PaCo contains flash-range addresses (0x10xxxxxx / 0x11xxxxxx), so does the passive bank’s PaCo require relocation like the Codef, or is it bank-independent? S32N5 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hi Chenyin, thanks for the quick reply. To clarify my question: I am not relying on a built-in SCMI service. I have already implemented my own runtime PaCo/CoDef install as part of an A/B bank-swap OTA. The design is bank-agnostic: the running (active) FSS installs the passive bank’s assets at runtime, then swaps the IVT primary pointer (0x10000000 ↔ 0x14000000) and reboots into the other bank. I reuse the existing FSS install state machine directly for this. So my real question is whether this approach is feasible on the current FSS, because in testing it fails at a specific point. What works: With the install targeted at the active bank, the full path completes (PaCo/Owner/Keys, SMR install returns OK, FSS FW SMR0/AuthenProcess OK; Codef-install and ValidateBootConfig return NOT_ALLOWED under the published SYS-IMG, so I defer those to the next boot’s BootCfgVerify). BTM then proceeds to PublishSysImage + EnableGlobalSecureBoot. What fails: When the install targets the passive bank, it bus-faults in IndexSourcesStep the first time the FSS dereferences the passive-bank PaCo at AHB 0x14013000. Active-bank addresses (0x10xxxxxx) read fine. Root cause I traced: It is not the AHB window or addressing. MemAcc_Init() (which initializes Mem_43_EXFLS, MemPerformDeviceConfiguration=TRUE) runs before Fss_Firmware_InstallPacoCodefs(), so at install time SFA1D is already 0x18000000 (128 MB), AHB read is enabled, and the read LUT is 4-byte OPI-DDR. Even after I manually confirmed SFA1D = 0x18000000 via T32, 0x14013000 still returns a hard bus error (not the SFP error payload). This points to XSPI Secure Flash Protection (SFP): the FRAD covering the passive region did not grant the accessing master’s domain RW. When I extended the FRAD coverage to the full flash and set Md4Acp = RW, the access behavior changed. My questions: Is runtime install of PaCo/CoDef into the passive bank architecturally supported on the current FSS (Secure Boot enabled) by reusing the install functions as above, or are there hard blockers I should be aware of before the reference OTA is available? Any caveats for this interim approach — e.g., installing FSS FW SMR0 (AuthenProcess) for the target bank, and deferring the CoDef/boot-config check to the next boot’s BootCfgVerify? Thanks, Eddie Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hello, @EddiePark  Thanks for the post and glad to support again. The current FSS does not provide an SCMI service for installing PaCo and CoDef at runtime. Currently, the reference OTA implementation of S32N is still under development, if possible, I suggest referencing it directly to implement your own OTA process once it is available. BR Chenyin   Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hi, following up with much more detail after systematic debugging. Setup: S32N55, FSS FW 1.19.0, Secure Boot. A/B bank-swap OTA. The running FSS (M7) installs the passive bank’s PaCo/CoDef at runtime (our own implementation, reusing the FSS install state machine). Passive bank base = 0x14000000. Fault: In Fss_Firmware_IndexSourcesStep, the FSS-M7 does a direct AHB memory-mapped read (CPU dereference) of the passive-bank PaCo at 0x14013000 and takes a precise BusFault: CFSR = 0x00008200 → BFSR: PRECISERR=1, BFARVALID=1, MMFSR=0 BFAR = 0x14013000 What we ruled out (with evidence): MPU: not the cause. MMFSR=0. MPU region 2 = External Flash 0x10000000–0x1FFFFFFF, Normal cacheable WB, Read-Only → covers 0x14013000, read permitted. SFP: not the cause. Setting MemXspiSfpEnable = FALSE and rebuilding → same fault. (FRADs grant the region to the relevant domains anyway.) AHB window: SFA1D = 0x18000000 (128 MB) → bank B is inside the window. Key observation — it’s not bank-specific, it’s “fresh vs cached”: The read/fault boundary is exactly 0x13780000 (0x1377FFFF reads, 0x13780000 faults). That is the end of the firmware image region (FSS/CRS/HSE/RTU/Sys_Img) / start of the data region (IDS…). It is 56 MB from base — not a power of two, so it is not a hardware size boundary; it is exactly the extent the FSS read and cached during boot (External Flash region is cacheable). → Everything the FSS read during boot (now in D-cache) reads back fine. Any address requiring a FRESH (uncached) direct AHB read faults — including addresses below 0x14000000 (e.g. 0x13780000 is in the active 64 MB and also faults). So the real issue is: fresh, uncached, direct AHB memory-mapped reads of external flash fail at runtime. MemPerformDeviceConfiguration test: MemPerformDeviceConfiguration = TRUE (device init runs → octal-DDR): flash writes work (indirect/IP-command via MemAcc INDIRECT_STATIC), cached reads work, fresh AHB reads FAULT. MemPerformDeviceConfiguration = FALSE (skip device init): reads return all 0x00 (device not left in octal-DDR mode). So with the device correctly in octal-DDR, writes succeed but fresh memory-mapped READS fault. Since octal-DDR external-DQS reads are sampled using the device DQS strobe and writes are not, this points to a read-path (DQS/DLL/dummy/timing) problem. Config context: Only the FSS configures the XSPI controller (Xspi_Ip_paXspiUnitCfg, MemPerformDeviceConfiguration = TRUE, octal-DDR, external DQS, DLL bypassed). CRS and RTU skip controller configuration (XspiUnit = NULL, DeviceConfiguration = FALSE) and inherit the boot config. The qspi param (xspi_S28H_octal_ddr_200Mhz_dll_bypass_ext_dqs.bin) is included in the generated VIP/IVT blob. Questions: On the current FSS, is the FSS-M7 expected to be able to perform direct AHB memory-mapped reads of external XSPI flash at runtime (after MemAcc_Init) at arbitrary/uncached addresses? Or must runtime flash reads go through the indirect (IP-command) Mem/MemAcc path? Why would a direct AHB read return a precise BusFault for uncached addresses while writes (indirect) and cached reads succeed, given SFA1D=128 MB, SFP disabled, and MPU RO covering the region? Does the FSS’s MemAcc_Init controller re-configuration conflict with the boot qspi-param XSPI read setup such that memory-mapped reads break? Should the FSS skip controller reconfiguration (like CRS/RTU) and inherit the boot qspi-param config — and if so, how do we retain flash write support? For octal-DDR / external-DQS / DLL-bypass at 200 MHz on S28HS01GT, what DLL / DQS / dummy-cycle settings are required for reliable memory-mapped reads? (We suspect our FSS read config differs from the working boot qspi-param config.) Thanks, Eddie Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hello, @EddiePark  Sorry for the late response due on leave. May I know if you had the following settings modified?   Access Control Policy for TG0 → change all instances to XSPI_IP_SFP_ACP_RW, then test if the issue still persist when accessing the flash address via FSS. BR Chenyin Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hi Chenyin, No problem at all — thanks for getting back to me. Yes, we have implemented the related functionality, and the passive-bank access via FSS is working. The PaCo and SMR installs for the passive bank (bank B) complete successfully at runtime: PaCo: HSE returns HSE_SRV_RSP_ALREADY_DONE (0xDADAEAEA) and we treat it as success. SMR: installs correctly with the bank-B source address (0x14280000), ret=0. Our remaining question is specifically about Codef installation at runtime: When Secure Boot is enabled and the SYS-IMAGE has been published, a runtime Sherpa_Cdd_InstallCodef call (issued from FSS, triggered via RTU3 SCMI during normal operation) returns HSE_SRV_RSP_NOT_ALLOWED (0xAA55A21C) for every cohort. We confirmed this with logging (instRet=1 on all cohorts). Our understanding is that, under Secure Boot ON, the published SYS-IMAGE seals the Codef, so a runtime Codef install is not permitted — and the Codef CHECK-IN must instead be deferred to the next boot’s hseBootCfgVerifySrv_t stage (after the IVT swap). SMRs, by contrast, are allowed at runtime. Could you please confirm whether this is the expected/by-design behavior? That is: Is runtime Codef install (via FSS/SCMI) expected to return NOT_ALLOWED once Secure Boot is enabled and SYS-IMAGE is published? Is deferring the Codef CHECK-IN to the next boot verify (hseBootCfgVerifySrv_t) the correct/intended approach for the A/B swap passive-bank update? Regarding the Access Control Policy setting (TG0 → XSPI_IP_SFP_ACP_RW): we will check our current configuration and test the flash access as you suggested, and report back. Thank you, Eddie Park
記事全体を表示
FS2633D standard OTP (no boost) for S32K376 – MFS2633HMDAKAD? Thank you for the offer to review our schematic, we'd be glad to take you up on it. We hope to have it ready towards the end of November. Since my first post we've moved to an FS2633D behind our own 24 V → 12 V buck (no VBST boost), with an S32K376. We'd prefer a standard OTP part: Can you share the full OTP map of MFS2633HMDAKAD, and is it OK with the S32K376? If not, which standard FS2633D part without boost do you recommend for S32K376/S32K396? We need: VPRE 5.4 V, VCORE 1.5 V, LDO1 3.3 V and LDO2 5.0 V (both on in Standby), TRK1/TRK2, VREF and VMON_EXT off, GPIO2 as VCORE_PGOOD, WAKE2 as wake input (no ERRMON), and FS0B/FS1B enabled. Does the AK map match these? If no standard part fits, what's the process, MOQ and lead time for a custom FS2633D OTP part? Does the FS26 mission profile cover 24/7 operation for 10 years you think in decent temperature 5-40 degree celsius? Thanks again! Re: FS2633D standard OTP (no boost) for S32K376 – MFS2633HMDAKAD? Hi Jonas Can you share the full OTP map of MFS2633HMDAKAD, and is it OK with the S32K376? If not, which standard FS2633D part without boost do you recommend for S32K376/S32K396?[gw]Please see attached for this OTP file. Please see below recommend FS26 for S32K37*/S32K396 We need: VPRE 5.4 V, VCORE 1.5 V, LDO1 3.3 V and LDO2 5.0 V (both on in Standby), TRK1/TRK2, VREF and VMON_EXT off, GPIO2 as VCORE_PGOOD, WAKE2 as wake input (no ERRMON), and FS0B/FS1B enabled. Does the AK map match these?[GW]You also can compare your requirement with attached OTP file which listed the VOUT and FUSA interface configuration by yourself. If no standard part fits, what's the process, MOQ and lead time for a custom FS2633D OTP part?[gw]Suggest contact with your local NXP distributors for discuss this topic. Does the FS26 mission profile cover 24/7 operation for 10 years you think in decent temperature 5-40 degree celsius?
記事全体を表示
S32N55 A/B スワップ OTA — パッシブバンク資産(PaCo/Codef/SMR)インストールタイミングおよびランタイムフラッシュアクセス 環境: S32N55、FSS FW 1.19.0 (D2604)、GrayVIP 1.0.25、HSE2、セキュアブート有効。 目標:OTA(Over-The-Air)によるA/Bスワップを実装する。アクティブバンクAはAHB 0x10000000、パッシブバンクBは0x14000000(フラッシュオフセット0x04000000)にあります。実行中のFSS(アクティブバンクA)にパッシブバンクのPaCo/Codef/SMRをインストールさせ、その後IVTを交換してバンクBに再起動させようとしています。 私が発見したこと: 実行中のFSSは0x14000000のパッシブバンクを読み取ることができません。T32(XSPIは4バイト読み取り、cmd 0x13設定)では0x14000000のデータが正しく読み込まれますが、実行時にはFSS/QSPIはOPI読み取りを3バイトアドレス指定(約16MBの範囲)で使用するため、0x14xxxxxxバスへのアクセスは困難です。バンクAが機能するのは、使用されているデータがすべて16MB未満に収まっているためです。 ランタイムアセットの再インストールを強制すると、ボードがハードフォルト/リセットされます。FSSアセットインストール機能(InstallPaCo / InstallSMRs / InstallCodefs / AuthenProcess)の「SYS-IMAGEは既にロードされています」ゲートをバイパスして実行時にインストールを再実行すると、アクティブな(読み取り可能な)バンクをターゲットにした場合でも、ボードがリセットされます。これは、アセットのインストールは、コホート(CRS/RTU)が既に実行されている間は実行されるべきではないことを示唆しています。 質問: FSSアセットのインストール(HSE経由のPaCo/Codef/SMR)は、ブート/プロビジョニングフェーズ(コホートがリリースされる前)のみサポートされ、CRS/RTUが実行されている実行時にはサポートされないのでしょうか? A/BスワップOTAの場合、想定されるアクティベーション手順は何ですか?パッシブバンクの書き込みとIVTの交換後、パッシブバンクのCodef(イメージソースアドレスはバンクによって異なる)、SMR、およびPaCoはいつ、どのようにインストール/検証されますか? 実行中のFSSは実行時にパッシブバンク(0x14000000)にアクセスすることが期待されるのでしょうか(つまり、ランタイムの読み取りパスは4バイトアドレス指定を使うべきか)、それともパッシブバンクは次のブート時にブートROMのみがアクセスするのでしょうか? A/Bスワップにおいて、銀行間でPaCoに違いはありますか?PaCoにはフラッシュレンジアドレス(0x10xxxxxx / 0x11xxxxxx)が含まれていますが、パッシブバンクのPaCoはCodefのように移動が必要なのでしょうか、それとも銀行に依存しないのでしょうか? S32N5 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Chenyinさん、早速のお返事ありがとうございます。 私の質問を明確にするために申し上げますが、私は組み込みのSCMIサービスに依存しているわけではありません。私は既に、A/Bバンク切り替えOTAの一環として、独自のランタイムPaCo/CoDefインストールを実装しました。このデザインは銀行に依存しません。実行中の(アクティブ)FSSは実行時にパッシブ銀行の資産をインストールし、IVTのプライマリポインタ(0x10000000 ↔ 0x14000000)を交換してもう一方の銀行に再起動します。この目的のために、既存のFSSインストール状態マシンをそのまま再利用します。 SO、私の本当の疑問は、この方法が現行のFSSで実現可能かどうかです。なぜなら、テストでは特定のポイントで失敗するからです。 うまくいく方法:アクティブなバンクをターゲットにインストールすると、全パスが完了します(PaCo/Owner/Keys、SMRのインストールはOK、FSS FW SMR0/AuthenProcess OK;codef-installとValidateBootConfigは公開されたSYS-IMGの下でNOT_ALLOWED返すので、それらは次のブートのBootCfgVerifyに任せています)。BTMはその後、PublishSysImageとEnableGlobalSecureBootを実行します。 何が失敗するか: インストールがパッシブバンクをターゲットにする場合、FSS が AHB 0x14013000 にあるパッシブバンク PaCo を最初に参照解除したときに、IndexSourcesStep でバスフォルトが発生します。アクティブなバンクアドレス(0x10xxxxxx)は正常に読み取れます。 原因を突き止めたところ、AHBウィンドウやアドレス指定の問題ではないことがわかりました。MemAcc_Init()(Mem_43_EXFLSを初期化するMemPerformDeviceConfiguration=TRUE)はFss_Firmware_InstallPacoCodefs()より先に動作するため、インストール時点でSFA1Dはすでに0x18000000(128MB)済みで、AHB読み込みが有効で、読み込みLUTは4バイトのOPI-DDRです。T32経由でSFA1D = 0x18000000を手動で確認した後でも、0x14013000は依然としてハードバスエラーを返します(SFPエラーペイロードではありません)。これはXSPIセキュアフラッシュ保護(SFP)に関係しています。パッシブ領域をカバーするFRADはアクセスするマスターのドメインRWを付与していません。FRADカバレッジをフルフラッシュに拡張し、Md4Acp = RWに設定したところ、アクセスの動作が変わりました。 私の質問: 現在のFSS(セキュアブート有効)では、上記のようにインストール関数を再利用することで、パッシブバンクへのPaCo/CoDefのランタイムインストールがアーキテクチャ的にサポートされていますか?それとも、リファレンスOTAが利用可能になる前に注意すべき重大な障害がありますか? この暫定的なアプローチ(例えば、対象バンクにFSS FW SMR0(AuthenProcess)をインストールし、CoDef/boot-configのチェックを次回のブート時のBootCfgVerifyに延期するなど)に関して、何か注意点はありますか? ありがとう、 エディ Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc こんにちは、 @EddiePark 投稿ありがとうございます。またサポートできて嬉しいです。 現在のFSSは、実行時にPaCoとCoDefをインストールするためのSCMIサービスを提供していません。 現在、S32NのリファレンスOTA実装はまだ開発中です。可能であれば、利用可能になった時点でそれを直接参照して独自のOTAプロセスを実装することをお勧めします。 BR チェイン   Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc こんにちは。体系的なデバッグを行った結果、より詳細な情報をお伝えします。 セットアップ: S32N55、FSS FW 1.19.0、セキュアブート。A/B銀行スワップOTA。実行中のFSS(M7)は、実行時にパッシブバンクのPaCo/CoDefをインストールします(FSSインストールステートマシンを再利用した独自の実装)。パッシブバンクベース = 0x14000000。 障害: Fss_Firmware_IndexSourcesStep で、FSS-M7 はパッシブバンク PaCo の 0x14013000 を直接 AHB メモリマップド リード (CPU デリファレンス) し、正確な BusFault が発生します。 CFSR = 0x00008200 → BFSR: PRECISERR=1、BFARVALID=1、MMFSR=0 BFAR = 0x14013000 我々が(証拠に基づいて)除外した事項: MPU:原因ではない。MMFSR=0。MPU領域2 = 外部フラッシュ0x10000000–0x1FFFFFFF、通常のキャッシュ可能なWB、読み取り専用 → 0x14013000をカバー、読み取り許可。 SFP:原因ではない。MemXspiSfpEnable = FALSE に設定して再構築しても、同じエラーが発生します。(FRADは、いずれにせよ該当ドメインにその領域を付与する。) AHB ウィンドウ: SFA1D = 0x18000000 (128 MB) → バンク B はウィンドウ内にあります。 重要な観察結果:これは銀行固有の問題ではなく、「新規データかキャッシュデータか」の問題です。 読み取り/フォルト境界は正確に0x13780000です(読み取り回数0x1377FFFF、フォルト回数0x13780000)。これはファームウェアイメージ領域(FSS/CRS/HSE/RTU/Sys_Img)の終わりであり、データ領域(IDS…)の開始です。ベースから56MBであり、2のべき乗ではなくハードウェアサイズの境界ではありません。これはFSSがブート時に読み取ってキャッシュする範囲(外部フラッシュ領域はキャッシュ可能)に正確に相当します。 → ブート中にFSSが読み取ったもの(現在はDキャッシュに格納されている)はすべて正常に読み戻されます。FRESH (キャッシュされていない) の直接 AHB 読み取りフォルトを必要とするアドレス (0x14000000 未満のアドレスを含む) (例:0x13780000はアクティブな64MBにあり、障害も発生しています。SO、本当の問題は、外部フラッシュの新規でキャッシュされていない直接のAHBメモリマップ読み取りが実行時に失敗することです。 MemPerformDeviceConfiguration テスト: MemPerformDeviceConfiguration = TRUE (デバイス初期化実行 → 8 進 DDR): フラッシュ書き込みは機能し (MemAcc INDIRECT_STATIC を介した間接 / IP コマンド)、キャッシュ読み取りは機能し、新しい AHB 読み取りは FAULT です。 MemPerformDeviceConfiguration = FALSE (デバイス初期化をスキップ): 読み取り結果はすべて 0x00 を返します (デバイスが 8 進 DDR モードのままではありません)。 SO、デバイスを正しく8進制DDRに設定した場合、書き込みは成功しますが、新しいメモリマップのREADS障害が発生します。8進数DDRの外部DQS読み出しはデバイスのDQSストローブを使用してサンプリングされますが、書き込みはサンプリングされないため、これは読み出しパス(DQS/DLL/ダミー/タイミング)の問題を示しています。 設定コンテキスト: XSPIコントローラの設定はFSSのみです(Xspi_Ip_paXspiUnitCfg、MemPerformDeviceConfiguration = TRUE、octal-DDR、外部DQS、DLLバイパス)。CRSとRTUはコントローラ設定(XspiUnit = NULL、DeviceConfiguration = FALSE)をスキップし、ブート設定を引き継ぎます。 qspi パラメータ (xspi_S28H_octal_ddr_200Mhz_dll_bypass_ext_dqs.bin) は、生成された VIP/IVT ブロブに含まれています。 質問: 現在のFSSにおいて、FSS-M7は、実行時(MemAcc_Init後)に、任意のアドレス/キャッシュされていないアドレスで、外部XSPIフラッシュのAHBメモリマップド読み出しを直接実行できると予想されますか?それとも、実行時のフラッシュ読み取りは間接的な(IPコマンドによる)Mem/MemAccパスを経由する必要があるのでしょうか? SFA1D=128MB、SFP無効、MPU ROが領域をカバーしている場合、キャッシュされていないアドレスに対して直接AHB読み取りを行うと正確なBusFaultが返されるのに、書き込み(間接)とキャッシュされた読み取りは成功するのはなぜでしょうか? FSSのMemAcc_Initコントローラの再構成が、起動時のqspi-paramのXSPI読み取り設定と衝突し、メモリマップされた読み取りが途切れてしまうのでしょうか?FSSはコントローラの再構成(CRS/RTUのように)を省略し、起動時のqspi-param設定を継承すべきでしょうか?もしそうなら、フラッシュ書き込みのサポートをどのように維持すればよいのでしょうか? S28HS01GTの200MHzにおけるオクタルDDR/外部DQS/DLLバイパスの場合、信頼性の高いメモリマップド読み出しを行うには、どのようなDLL/DQS/ダミーサイクル設定が必要ですか?(FSS読み取り設定が、正常に動作するブート時のqspi-param設定と異なっている可能性があると考えています。) ありがとう、 エディ Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc こんにちは、 @EddiePark 休暇のため返信が遅くなり申し訳ありません。 以下の設定を変更されたかどうか教えていただけますか?TG0のアクセス制御ポリシー→すべてのインスタンスをXSPI_IP_SFP_ACP_RWに変更し、FSS経由でフラッシュアドレスにアクセスしても問題が続くかテストします。 BR チェイン Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc こんにちは、チェンインさん 全く問題ありません。ご連絡いただきありがとうございます。 はい、関連機能は実装しており、FSSを使ったパッシブバンクアクセスも動作しています。パッシブバンク(バンクB)のPaCoおよびSMRのインストールは、実行時に正常に完了しました。 PaCo: HSE は HSE_SRV_RSP_ALREADY_DONE (0xDADAEAEA) を返し、これを成功とみなします。 SMR: バンクBのソースアドレス(0x14280000)を使用して正しくインストールされ、ret=0。 残りの疑問は、実行時におけるCodefのインストールについてです。 セキュアブートが有効でSYS-IMAGEが公開されている場合、ランタイムSherpa_Cdd_InstallCodef呼び出し(FSSから発行され、通常動作中にRTU3 SCMIを介してトリガーされる)は、すべてのコホートに対してHSE_SRV_RSP_NOT_ALLOWED(0xAA55A21C)を返します。ログ記録によってこれを確認しました(すべてのコホートでinstRet=1)。 私たちの理解では、Secure Boot ONの下で公開されたSYS-IMAGEがCodefを封印するため、実行時のCodefインストールは許可されず、CodefのCHECK-INは次のブートのhseBootCfgVerifySrv_t段階(IVTスワップ後)に延期される必要があります。一方、SMRは実行時に許可される。 これが予想される動作/設計上の動作かどうか確認していただけますか?つまり: セキュアブートが有効になり、SYS-IMAGEが公開された後、ランタイムCodefのインストール(FSS/SCMI経由)はNOT_ALLOWEDを返すことが想定されていますか? A/Bスワップパッシブバンクアップデートにおいて、Codef CHECK-INを次回のブート検証(hseBootCfgVerifySrv_t)まで延期することは、正しい/意図されたアプローチでしょうか? アクセス制御ポリシー設定(TG0 → XSPI_IP_SFP_ACP_RW)についてですが、ご提案通り現在の構成を確認し、フラッシュアクセスをテストし、報告いたします。 ありがとう、 エディ・パーク
記事全体を表示
LPC55S69でI2Cリカバリ中にI2C_MasterTransferAbort()がハングアップする こんにちは、チームの皆さん、 現在、そのLPC55S69を使ったアプリケーションを開発中です。 私はI2Cインターフェースを介してLPC55S69と通信するセンサーモジュールを持っています。 私はI2Cリカバリメカニズムを実装しており、不完全なノンブロッキングI2C転送を中止するためにI2C_MasterTransferAbort()を呼び出しています。しかし、場合によってはこの関数が停止してしまうようです。 この関数呼び出しの前後にログメッセージを追加しました。しかし、呼び出し前に印刷されたログメッセージしか見えず、呼び出し後のメッセージは一度も印刷されません。これは実行がI2C_MasterTransferAbort()内で詰まっていることを示しています。 以下のログを参照してください。 使用されているI2Cインターフェースは I2C5_MASTERです。   PRINTF("%s() -> CFG=0x%08lX, STAT=0x%08lX, MSTCTL=0x%08lX, MSTDAT=0x%08lX, INTSTAT=0x%08lX, INTENSET=0x%08lX, TIMEOUT=0x%08lX\r\n", __func__, (unsigned long)I2C5_MASTER->CFG, (unsigned long)I2C5_MASTER->STAT, (unsigned long)I2C5_MASTER->MSTCTL, (unsigned long)I2C5_MASTER->MSTDAT, (unsigned long)I2C5_MASTER->INTSTAT, (unsigned long)I2C5_MASTER->INTENSET, (unsigned long)I2C5_MASTER->TIMEOUT); /* Capture interrupt state before cleanup. */ PRINTF("%s() -> FLEXCOMM5 IRQ enabled=%d, pending=%d\r\n", __func__, (int)NVIC_GetEnableIRQ(FLEXCOMM5_IRQn), (int)NVIC_GetPendingIRQ(FLEXCOMM5_IRQn)); /* Abort the incomplete non-blocking I2C transfer. */ status_t abortStatus = I2C_MasterTransferAbort(I2C5_MASTER, &g_m_handle); PRINTF("%s() -> I2C_MasterTransferAbort status=%d\r\n", __func__, (int)abortStatus); 観測されたログ出力: CFG=0x00000001, STAT=0x00000800, MSTCTL=0x00000002, MSTDAT=0x00000055, INTSTAT=0x00000000, INTENSET=0x03000051, TIMEOUT=0x0000FFFF FLEXCOMM5 IRQ enabled=1, pending=0 上記のログからもわかるように、以下のメッセージは決して印刷されません。 I2C_MasterTransferAbort status 私が気づいたことの一つは、 I2C_RETRY_TIMESが現在0に設定されていることです。 私の調査に基づくと、実行がI2C_PendingStatusWait()内で停止していると思われます。 なぜ I2C_MasterTransferAbort() がある場合では動作するのに、他のケースでは固まってしまうのか、誰か教えていただけますか? 特に、I2C_PendingStatusWait()が無限に待つ原因となる条件や、I2C_RETRY_TIMES構成がこの挙動に影響を与えるかどうかを理解したいです。 よろしくお願いします。 よろしくお願いいたします。 サン
記事全体を表示