Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
In GUI-Guider-2.0.1-GA, after importing an image and changing its color format, the original .c files are still retained. Can this software automatically clean them up? Click to switch (color format/original size) and compile once for each state. This will result in different .c files being generated. Normally, unused .c files should be automatically deleted. Keep only the selected one. The same applies to importing fonts, so I won't demonstrate that. Another question Without making any changes, but simply recompiling the next day, the dates in the comments within the .c files will change. This is a huge pitfall in version control systems like Git or SVN. The comment date should only be updated when the file has actually been modified. Either the date only needs to be in one file, Otherwise, Git will list all changes, even if there were no changes made during the recompile. I hope that all of the above issues can be optimized. Re: GUI-Guider-2.0.1-GA,软件中导入了图片切换颜色格式后,原有的格式.c文件还会保留,这个软件能自动清理吗? Hello @LRJ , Thank you for your suggestions and feedback. 1. You can manually click the "clean" button first, and then regenerate the code: 2. Regarding the comment date, this issue is known and will be optimized in the next version. BR, Celeste
View full article
GUI-Guider-2.0.1-GA,软件中导入了图片切换颜色格式后,原有的格式.c文件还会保留,这个软件能自动清理吗? 点击切换 (颜色格式/原始尺寸)  各个状态编译一次    就会有不同的.c文件出来, 正常来说 用不到的.c应该是要自动清理掉才对.    只保留选中的那个. 同样的字体的导入也是如此,我就不演示了. 还有一个问题 没有任何改动的情况下,只是隔天重新编译,.c里面的注释的日期会改动, 这在git或者SVN这种版本管理中简直是大坑, 应该做成只有文件真的有改动了才更新注释日期, 要么只在一个文件中有日期就行, 否则git会列出全部的改动,明明只是重新编译没有任何改动的情况. 以上的几个问题希望都优化一下. Re: GUI-Guider-2.0.1-GA,软件中导入了图片切换颜色格式后,原有的格式.c文件还会保留,这个软件能自动清理吗? Hello @LRJ , 感谢您的建议和反馈。 1. 您可以先手动点击“clean”按钮,再重新生成代码: 2. 关于注释日期,这个问题已知悉,将会在下一个版本中优化。 BR, Celeste
View full article
S32 プラットフォーム v.3.4 用 S32 Design Studioライセンスの更新/延長 こんにちは、Nxpチームの皆さん、 S32 Design Studioのバージョン3.4のサブスクリプションを更新したいと思っています 起動コード:F1F5-0CCF-9B6B-CE31
View full article
S32平台S32设计工作室 v.3.4许可证续期/延期 您好,NXP团队, 我想续订我的 s32 设计工作室 3.4 版本订阅。 激活码: F1F5-0CCF-9B6B-CE31
View full article
NXP RTD SDKインストール問題:Linkフォルダが見つからないため、EB Tresos Studioとの連携が失敗しました こんにちは、 EB Tresos StudioのインストールからNXP RTD SDKへのパスを提供しているにもかかわらず、EB Tresos Studioとは統合されていません Re: NXP RTD SDK installation issue: EB Tresos Studio integration failed due to Link folder not found こんにちは、 @VaneB さん。 パスを「C:/EB/Tresos/plugins」に変更しましたが、問題は解決しません。お知らせ下さい。 Re: NXP RTD SDK installation issue: EB Tresos Studio integration failed due to Link folder not found こんにちは、 @a1g1さん RTDパッケージとEB tresoのリンクを作成する際に指定されているEB tresosのインストールディレクトリがC:\EB\tresos\であることを確認していただけますか? 問題が解決しない場合は、RTDプラグインをC:\EB\tresos\pluginsにコピーしてみてください。 BR、VaneB Re: NXP RTD SDK installation issue: EB Tresos Studio integration failed due to Link folder not found こんにちは、 @a1g1さん 最後の部分の説明が十分ではなかったかもしれません。RTDパッケージをEB Tresosと連携できない場合は、そのステップを省略してプラグインを手動で追加することもできます。 これを行うには、インストール済みのRTDディレクトリに移動し、すべてのプラグインをコピーして、EB tresosディレクトリC:\EB\tresos\pluginsに貼り付けます。
View full article
MCXA145フラッシュセキュア おはようございます。 MCXA145のフラッシュセキュリティビットをファームウェアで設定したいです。 MCXC444では、起動ファイルを開いて設定していましたが、MCUXpresso Secure Provisioningを使用せずに同様の設定を行う方法はありますか? 本番環境では、単に.axfファイルを読み込むだけです。ファイルにセキュリティ設定をすでに含めておきたいので、二段階目を省きたいです。 この点についてアドバイスをいただけますか? どうもありがとうございました よろしくお願いします。 Re: MCXA145 flash secure Hello MCXAにおけるフラッシュセキュリティの同等物は 読み出し保護[ROP_STATE]です。ROP_STATEはIFR0に保存された32ビットフィールドです。ROP機能はチップのセキュリティを保護し、ユーザーは自分のアプリケーションの要件に応じて異なるROPレベルを設定できます。   お客様の生産中、お客様はROPを通じてISPやデバッグに特定の制限を課すことができます。お客様はROPレベル1かROPレベル2のいずれかを選択できます。重要な注意点:各ROPレベルごとの制限を考慮してください。一部のレベルは 「NORETURN ライフサイクル」に入る可能性があります。 Secure Provisioning Toolでライフサイクル設定ROP Levelを設定してイメージを構築し、その画像を本番デバイスに利用できます。MCUXpressoSecure Provisioningを使うことでROPの設定プロセスが簡素化され、CMPA設定の設定が推奨されます。 このトピックやROPの設定手順について詳しく知りたいので、NXPコミュニティの投稿を強くお勧めします MCXA153 読み出し保護 リファレンス・マニュアルからの関連情報 MCXA145 リファレンス・マニュアル 第20.3章、20.3.4【保護を読み上げる】 他に何か必要なことがあれば教えてください よろしくお願いいたします。
View full article
关于 S32K328 生命周期转换期间的硬故障和 UTEST 编程的咨询 你好, 我们在使用 HSE 固件 2.40.0 (AB_SWAP) 对 S32K328 执行 IVT 熔丝和生命周期转换时遇到了 HardFault。我们希望您能协助调查此事。 1. 开发环境 MCU:S32K328 HSE固件:S32K358_HSE_FW_2.40.0 (AB_SWAP)   2. 问题描述 我们实现了一个功能,该功能按顺序执行 IVT 熔丝,然后进行生命周期转换到 IN_FIELD。 在测试过程中,我们观察到以下现象: 第一次函数调用期间发生硬故障。MCU 复位后,我们确认 IVT 熔丝已完成,但生命周期并未改变。 当再次调用同一函数时,又发生了一次 HardFault。MCU RESET 后,我们确认生命周期已更改为 IN_FIELD。 目前我们已确定的Hse_Ip_ServiceRequest函数、其子函数以及相关数据的内存放置情况如下: 004117a4+000378 .mcal_text Hse_Ip.o 21006cac+000008 .mcal_bss Hse_Ip.o 00411ca8+000008 .mcal_const Hse_Ip.o 00411b1c+00003e .mcal_text OsIf_Timer.o 以上信息仅涵盖目前已确定的项目。可能还涉及其他下属功能和相关数据。 作为参考,我们的测试环境配置为单核裸机系统,使用同步服务请求。除了服务请求之外,此过程中不会执行其他任何操作。 我们之前在 S32K314 上执行过同样的操作,并且成功完成,没有任何问题。虽然具体的内存布局有所不同,但当时的代码也位于 Flash Block 0 中。 3. 问题 问题1:UTEST编程过程中是否存在闪存读写冲突(RWW)的可能性 我们怀疑在 HSE 于 IVT 熔丝或生命周期转换期间对 UTEST 区域进行编程时可能会发生 RWW 冲突,而该转换是通过HSE_SRV_ID_SET_ATTR服务执行的。具体来说,主机核心可能正在执行 Flash Block 0 中的代码,而 HSE 正在对 UTEST 进行编程,从而导致 RWW 冲突,并随后发生硬故障。 请问这是否是对观察到的现象的一种合理解释? 另外,能否确认 UTEST 区域是否与 S32K328 上的 Flash Block 0 属于同一个 RWW 分区? Q2. 复位后硬故障原因的识别和诊断方法 RESET 后 由于每次执行 IVT 熔丝和生命周期转换时,MCU 的生命周期状态都可能发生变化,因此反复使用新的 MCU 样本进行根本原因分析并不实际。 因此,我们想澄清以下几点: 在发生 HardFault 时,是否有任何寄存器或状态信息可用于识别是否发生了 RWW 冲突并确定其原因? 在发生硬故障后,MCU RESET 时,此错误信息是否会保留? RESET后,是否可以通过闪存控制器状态寄存器、RWW 错误状态寄存器或其他诊断方法来识别故障原因? 如果可以,请提供需要检查的相关寄存器名称和位字段。 Q3. 发生 RWW 冲突时,代码执行受到限制的内存区域 如果 Q1 中描述的疑似 RWW 冲突是实际原因,我们希望确定在 IVT 熔丝和生命周期转换期间代码执行受到限制的具体内存区域,因为 Flash Block 0 的地址范围相对较大。 能否提供以闪存扇区为单位的受限内存区域(每个扇区 0x2000 字节)? 这将有助于我们区分 Flash Block 0 中允许代码执行的区域和在执行相关服务时限制代码执行的区域。 Q4. 需要重定位到 SRAM 或其他闪存块以防止 RWW 冲突的代码 如果 Q1 中描述的疑似 RWW 冲突是实际原因,我们正在考虑将相关代码移至 SRAM 或其他 Flash 块以防止出现此问题。 假设所有生命周期转换服务请求都是同步执行的,那么仅将Hse_Ip_ServiceRequest函数及其子函数迁移到 SRAM 或其他 Flash 块是否就足够了? 或者,调用 Hse_Ip_ServiceRequest 的函数是否 也需要重新定位? 此外,在函数执行或中断服务例程 (ISR) 期间引用的任何常量数据是否也应放置在 SRAM 或其他 Flash 块中? 我们恳请您审阅并指导我们,以帮助我们找出问题的根本原因并防止此类问题再次发生。 感谢您的支持。 Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 嗨,卢卡斯, 感谢您的详细解释。 请查看下方所需信息。 1. RTD 版本 SW32K3_S32M27x_RTD_4.4_4.0.0_HF04_D2504 2. OSIF 模式 当前测试代码配置为使用虚拟计数器(OSIF_COUNTER_DUMMY)。但是,此配置仅用于测试目的,实际应用中可能会有所不同。 因此,能否请您提供一份完整的列表,列出在 UTEST 编程期间需要迁移到 RAM 中的所有函数和资源,涵盖所有支持的 OSIF 模式,而不仅仅是当前的虚拟计数器配置? 3. Hse_Ip_apMuBase 内存放置 我们检查了 Hse_Ip.c通过源代码发现,Hse_Ip_apMuBase 的声明使用了以下内存映射宏: #define CRYPTO_START_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" /*! @brief Array of MU base pointers */ static MU_Type* const Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS; #define CRYPTO_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" 这与您提供的代码片段不同,该代码片段使用了 CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIED 和 Crypto_43_HSE_MemMap.h。 我们还检查了映射文件,并确认 Hse_Ip_apMuBase 位于 .mcal_const 文件中。Flash Block 0 内的部分,地址如下: .mcal_const 00411ca8+000008 Hse_Ip_apMuBase 基于此,即使 Hse_Ip_ServiceRequest 函数本身被重新定位到 RAM 中,在 UTEST 编程期间访问 Hse_Ip_apMuBase 也可能导致 RWW 冲突。 请您检查一下,考虑到所有支持的 OSIF 模式,我们的 RTD 版本需要将哪些具体功能和资源迁移到 RAM 中? 4. 关于RWW冲突的其他问题 关于此问题的可复现性和条件,我还有几个问题。 4.1.使用相同内存布局实现可复现性 如果另一台 S32K328 配置了相同的固件和内存布局,是否还会持续出现同样的 RWW 冲突? 换句话说,如果满足 RWW 冲突的条件,我们是否应该预期该问题会在配置相同的不同 S32K328 设备上重现? 4.2.内存布局差异的影响 即使相关代码和数据位于 Flash Block 0 中,它们的具体内存地址或位置的差异是否会影响 RWW 冲突的发生? 例如,改变 Hse_Ip_ServiceRequest、其调用的函数或它们访问的数据的位置是否可以避免该问题? 4.3.执行时机的影响 即使固件和内存布局相同,RWW 冲突的发生是否取决于服务请求的时机或其他执行条件? 具体来说,冲突是否仅在主机核心尝试在 UTEST 编程进行期间访问 Flash Block 0 时发生? 4.4.可重复性和发生频率 这个问题是在特定条件下确定性的,还是会根据执行时间间歇性地发生? 换句话说,如果在相同条件下重复相同的操作,我们是否应该预期每次都会出现该问题,还是每次尝试出现该问题的情况可能有所不同? 5. MCSR 注册和 RWE 标志 您提到当发生 RWW 冲突时,Flash MCSR 寄存器中的 RWE 标志会被设置。但是,我在参考手册中找不到名为 MCSR 的寄存器。 请问您指的是附件图片中显示的 MCRS 登记册吗? 具体来说,我们是否应该检查第 20 位(地址:0x402EC004)的 RWE 位,以确定是否发生了 RWW 冲突? 感谢您的支持。 Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 嗨@wodudwo 是的,你描述的行为很可能是由 RWW 冲突引起的。 在 S32K328 上,UTEST 和 Flash Block 0 属于同一个 RWW 分区。 另请参阅此帖子,其中我解释了调用 Hse_Ip_ServiceRequest() 时需要将哪些资源重新定位到 RAM 中: https://community.nxp.com/t5/S32K/S32K324-HSE-Setting-ADKP-Issue/m-p/2369325/highlight/true#M58774 需要重新定位的具体功能取决于所使用的 OSIF 模式,并且 RTD 版本之间也可能存在差异。 还有一点需要检查。根据 RTD 版本不同,Hse_Ip_ServiceRequest() 使用的 Hse_Ip_apMuBase 数组可以声明为常量,因此可以放置在 Flash 中: #define CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIED #include "Crypto_43_HSE_MemMap.h"   /*! @brief MU 基指针数组 */ static MU_Type* const Hse_Ip_apMuBase[HSE_IP_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_43_HSE_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_43_HSE_MemMap.h" 如果 CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIED 位于受影响的物理 Flash Block 0 中,则在限制期间访问此阵列仍会导致 Flash 读取。 作为一种变通方法,可以使用 CRYPTO_43_HSE_START_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE 将数组移动到 RAM 中,并移除 const 限定符。 我已经提交了一个功能请求,要求在 Hse_Ip 驱动程序中添加对 UTEST 编程的支持,因为当前的实现方式可能会导致此类问题。 如果您能告诉我您使用的RTD版本以及配置的OSIF模式(您是否使用OSIF_COUNTER_DUMMY?),我可以准确地检查哪些功能和资源需要迁移。 如果发生 RWW 冲突,则应设置 Flash MCSR 寄存器中的 RWE 标志。请注意,RESET后此信息将不会保留。 当 HSE 对 UTEST 进行编程时,既无法读取 UTEST 区域,也无法读取整个 Flash Block 0。 因此,推进生命周期、启用 IVT 授权以及其他发出触发信号以进行 UTEST 编程的操作应在受控环境中执行。我建议在这些操作期间禁用中断。否则,中断处理程序使用的所有资源也需要位于另一个可访问的 Flash 块中或 RAM 中。 此致, Lukas Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 为了从 RAM 同步执行 Hse_Ip_ServiceRequest(),请将以下函数放置在 RAM 中: Hse_Ip_ServiceRequest() OsIf_MicrosToTicks() OsIf_GetCounter() OsIf_GetElapsed() 此外,将所选 OSIF 超时实现的功能放置在 RAM 中: 虚拟 OSIF:OsIf_Timer_Dummy_MicrosToTicks()、OsIf_Timer_Dummy_GetCounter() 和 OsIf_Timer_Dummy_GetElapsed()。 系统 OSIF:OsIf_Timer_System_MicrosToTicks()、OsIf_Timer_System_GetCounter()、OsIf_Timer_System_GetElapsed(),以及选定的系统定时器后端函数。 自定义 OSIF:OsIf_Timer_Custom_MicrosToTicks()、OsIf_Timer_Custom_GetCounter() 和 OsIf_Timer_Custom_GetElapsed()。 MU 访问函数和内存屏障是内联代码。同步请求路径不使用 OsIf_Interrupts.c。 本RTD中,Hse_Ip_apMuBase被定义为一个常量: #define CRYPTO_START_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h"   /*! @brief MU 基指针数组 */ static MU_Type* const Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" 所以,改成: #define CRYPTO_START_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE #include "Crypto_MemMap.h"   /*! @brief MU 基指针数组 */ static MU_Type* Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_STOP_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE #include "Crypto_MemMap.h" 关于可复现性——如果启动条件始终完全相同(这意味着简单的顺序代码,没有中断等),您应该会看到相同的结果。这是因为缓存的数据和代码相同,闪存读取缓冲区处于相同的状态等等。 如果存在任何不确定性,您可能会看到不同的结果。例如,我遇到过这样的情况:客户没有收到硬故障,但生命周期信息没有正确存储到 UTEST 中,RESET 后设置了 LC_ERR 标志(生命周期扫描错误)。这意味着必须按照上述方式,从 RAM 或其他闪存块运行该代码。 抱歉,我打错了,应该是模块配置状态 (MCRS)。 此致, Lukas
View full article
Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 Hello, We have encountered a HardFault while performing IVT fusing and a Lifecycle transition on the S32K328 using HSE Firmware 2.40.0 (AB_SWAP). We would like to ask for your assistance in investigating this issue. 1. Development Environment MCU: S32K328 HSE Firmware: S32K358_HSE_FW_2.40.0 (AB_SWAP)   2. Issue Description We implemented a function that sequentially performs IVT fusing followed by a Lifecycle transition to IN_FIELD. During testing, we observed the following behavior: A HardFault occurred during the first function call. After the MCU was reset, we confirmed that IVT fusing had been completed, but the Lifecycle had not been changed. When the same function was called again, another HardFault occurred. After the MCU was reset, we confirmed that the Lifecycle had been changed to IN_FIELD. The memory placement of the Hse_Ip_ServiceRequest function, its subordinate functions, and related data that we have identified so far is as follows: 004117a4+000378 .mcal_text Hse_Ip.o 21006cac+000008 .mcal_bss Hse_Ip.o 00411ca8+000008 .mcal_const Hse_Ip.o 00411b1c+00003e .mcal_text OsIf_Timer.o The above information covers only the items identified so far. Additional subordinate functions and related data may also be involved. For reference, our test environment is configured as a single-core, bare-metal system using synchronous service requests. No other operations are performed during this procedure apart from the service requests. We previously performed the same operation on the S32K314, and it completed successfully without any issues. Although the detailed memory layout was different, the code was also located in Flash Block 0 at that time. 3. Questions Q1. Possibility of Flash Read-While-Write (RWW) Conflict During UTEST Programming We suspect that an RWW conflict may occur while the HSE is programming the UTEST area during either IVT fusing or the Lifecycle transition, which is performed through the HSE_SRV_ID_SET_ATTR service. Specifically, the Host Core may be executing code from Flash Block 0 while the HSE is programming UTEST, resulting in an RWW conflict and subsequently a HardFault. Could you please confirm whether this is a valid explanation for the observed behavior? Additionally, could you confirm whether the UTEST area belongs to the same RWW partition as Flash Block 0 on the S32K328? Q2. Identifying the Cause of the HardFault and Diagnostic Methods After Reset Since the MCU's Lifecycle state may change each time IVT fusing and the Lifecycle transition are performed, repeatedly using new MCU samples for root cause analysis is not a practical approach. Therefore, we would like to clarify the following: Is there any register or status information that can be used to identify whether an RWW conflict occurred and determine its cause at the time of the HardFault? Is this error information retained after the MCU resets following the HardFault? Are there any Flash Controller status registers, RWW Error Status registers, or other diagnostic methods that can be used to identify the cause even after a reset? If possible, please provide the relevant register names and bit fields that should be checked. Q3. Memory Regions Where Code Execution Is Restricted in the Event of an RWW Conflict If the suspected RWW conflict described in Q1 is the actual cause, we would like to identify the specific memory regions where code execution is restricted during IVT fusing and the Lifecycle transition, since the address range of Flash Block 0 is relatively large. Could you provide the restricted memory regions on a Flash Sector basis (0x2000 bytes per sector)? This would help us distinguish between the regions within Flash Block 0 where code execution is permitted and those where execution is restricted while the relevant service is being performed. Q4. Code That Needs to Be Relocated to SRAM or Another Flash Block to Prevent RWW Conflicts If the suspected RWW conflict described in Q1 is the actual cause, we are considering relocating the relevant code to SRAM or another Flash Block to prevent this issue. Assuming that all Lifecycle transition service requests are performed synchronously, would relocating only the Hse_Ip_ServiceRequest function and its subordinate functions to SRAM or another Flash Block be sufficient? Or would the functions that call Hse_Ip_ServiceRequest also need to be relocated? Additionally, should any constant data referenced during function execution or interrupt service routines (ISRs) also be placed in SRAM or another Flash Block? We would appreciate your review and guidance to help us identify the root cause and prevent this issue from recurring. Thank you for your support. Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 Hi Lukas, Thank you for your detailed explanation. Please find the requested information below. 1. RTD Version SW32K3_S32M27x_RTD_4.4_4.0.0_HF04_D2504 2. OSIF Mode The current test code is configured to use the Dummy Counter (OSIF_COUNTER_DUMMY). However, this configuration is only used for testing purposes and may differ in the actual application. Therefore, could you please provide a complete list of all functions and resources that need to be relocated to RAM during UTEST programming, covering all supported OSIF modes rather than only the current Dummy Counter configuration? 3. Hse_Ip_apMuBase Memory Placement We checked the Hse_Ip.c source code and found that the declaration of Hse_Ip_apMuBase uses the following memory mapping macros: #define CRYPTO_START_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" /*! @brief Array of MU base pointers */ static MU_Type* const Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS; #define CRYPTO_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" This differs from the code snippet you provided, which uses CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIED and Crypto_43_HSE_MemMap.h. We also checked the map file and confirmed that Hse_Ip_apMuBase is placed in the .mcal_const section within Flash Block 0, at the following address: .mcal_const 00411ca8+000008 Hse_Ip_apMuBase Based on this, accessing Hse_Ip_apMuBase during UTEST programming could also cause an RWW conflict, even if the Hse_Ip_ServiceRequest function itself is relocated to RAM. Could you please check which specific functions and resources need to be relocated to RAM for our RTD version, considering all supported OSIF modes? 4. Additional Questions Regarding RWW Conflict I have a few additional questions regarding the reproducibility and conditions of this issue. 4.1. Reproducibility with the Same Memory Layout If another S32K328 is configured with the same firmware and memory layout, would the same RWW conflict occur consistently? In other words, if the conditions for an RWW conflict are met, should we expect the issue to be reproducible across different S32K328 devices with the same configuration? 4.2. Impact of Differences in Memory Layout Even if the relevant code and data are located in Flash Block 0, could differences in their specific memory addresses or placement affect whether the RWW conflict occurs? For example, could a different placement of Hse_Ip_ServiceRequest, its called functions, or the data they access prevent the issue? 4.3. Impact of Execution Timing Even with the same firmware and memory layout, could the occurrence of an RWW conflict depend on the timing of the service request or other execution conditions? Specifically, does the conflict occur only when the Host Core attempts to access Flash Block 0 while UTEST programming is in progress? 4.4. Reproducibility and Occurrence Frequency Is this issue deterministic under specific conditions, or can it occur intermittently depending on execution timing? In other words, if the same operation is repeated under identical conditions, should we expect the issue to occur every time, or could the occurrence vary between attempts? 5. MCSR Register and RWE Flag You mentioned that the RWE flag in the Flash MCSR register is set when an RWW conflict occurs. However, I could not find a register named MCSR in the reference manual. Could you please confirm whether you are referring to the MCRS register shown in the attached image? Specifically, should we check the RWE bit at bit position 20 (address: 0x402EC004) to determine whether an RWW conflict has occurred? Thank you for your support. Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 Hi @wodudwo  Yes, the behavior you described is most likely caused by an RWW conflict. On S32K328, UTEST and Flash Block 0 belong to the same RWW partition. Please also refer to this post, where I explained which resources need to be relocated to RAM when calling Hse_Ip_ServiceRequest(): https://community.nxp.com/t5/S32K/S32K324-HSE-Setting-ADKP-Issue/m-p/2369325/highlight/true#M58774 The exact functions that need to be relocated depend on the OSIF mode being used, and there may also be differences between RTD versions. There is one additional point to check. The Hse_Ip_apMuBase array used by Hse_Ip_ServiceRequest() may be declared as a constant and therefore placed in Flash, depending on the RTD version: #define CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIED #include "Crypto_43_HSE_MemMap.h"   /*! @brief Array of MU base pointers */ static MU_Type* const Hse_Ip_apMuBase[HSE_IP_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_43_HSE_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_43_HSE_MemMap.h" If CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIED is located in the affected physical Flash Block 0, accessing this array would still result in a Flash read during the restricted period. As a workaround, the array can be moved to RAM using CRYPTO_43_HSE_START_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE, with the const qualifier removed. I have already submitted a feature request to add support for UTEST programming to the Hse_Ip driver, as the current implementation can lead to this type of issue. If you let me know which RTD version you are using and which OSIF mode is configured (do you use OSIF_COUNTER_DUMMY?), I can check exactly which functions and resources need to be relocated. If an RWW conflict occurs, the RWE flag in the Flash MCSR register should be set. Please note that this information is not retained across a reset. While HSE is programming UTEST, neither the UTEST area nor the entire Flash Block 0 can be read. Operations such as advancing the lifecycle, enabling IVT authorization, and other operations that trigger UTEST programming should therefore be performed in a controlled environment. I recommend keeping interrupts disabled during these operations. Otherwise, all resources used by the interrupt handlers would also need to be located either in another Flash block that remains accessible or in RAM. Regards, Lukas Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 For synchronous Hse_Ip_ServiceRequest() execution from RAM, please place the following functions in RAM: Hse_Ip_ServiceRequest() OsIf_MicrosToTicks() OsIf_GetCounter() OsIf_GetElapsed() Additionally, place the functions of the selected OSIF timeout implementation in RAM: Dummy OSIF: OsIf_Timer_Dummy_MicrosToTicks(), OsIf_Timer_Dummy_GetCounter(), and OsIf_Timer_Dummy_GetElapsed(). System OSIF: OsIf_Timer_System_MicrosToTicks(), OsIf_Timer_System_GetCounter(), OsIf_Timer_System_GetElapsed(), plus the selected system timer backend functions. Custom OSIF: OsIf_Timer_Custom_MicrosToTicks(), OsIf_Timer_Custom_GetCounter(), and OsIf_Timer_Custom_GetElapsed(). The MU access functions and the memory barrier are inline code. OsIf_Interrupts.c is not used by the synchronous request path. Hse_Ip_apMuBase is defined as a constant in this RTD: #define CRYPTO_START_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h"   /*! @brief Array of MU base pointers */ static MU_Type* const Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" So, change it to: #define CRYPTO_START_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE #include "Crypto_MemMap.h"   /*! @brief Array of MU base pointers */ static MU_Type* Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_STOP_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE #include "Crypto_MemMap.h" Regarding reproducibility – if the startup conditions are always exactly the same (that means simple sequential code, no interrupts etc.), you should see the same result. That’s because the same data and code is cached, the flash read buffers are in the same state etc. If there’s any indeterminateness, you may see different results. For example, I saw a case when a customer got no hardfault but the life cycle information was not stored correctly to UTEST and LC_ERR flag (Error In Life Cycle Scanning) was set after reset. That means it is important to run that code from RAM or from another flash block as discussed above. And I’m sorry, that was a typo, it’s Module Configuration Status (MCRS). Regards, Lukas
View full article
RW612: SWDIO (GPIO_14) と SWCLK (GPIO_13) のみを使用した SWD デバッグ? こんにちは、NXPチームの皆様、 私のカスタムRW612ボード(FRDM-RW612 V2由来)では、10ピンCortexヘッダーにSEGGER J-Linkを使っています。回路図を添付します。SWDIO(GPIO_14)とSWCLK(GPIO_13)は、VTrefとGNDとともにヘッダーに配線されています。 SWDIOとSWCLKだけでデバッグに十分かどうか知りたいです。 1. SWDIO + SWCLK + GND(+VTref)で通常のデバッグやフラッシュに十分でしょうか? 2. SWDを選択するにはリセット時にRF_CNTL_2が引き出される必要がありますか? 3. nRESET(PDn)がデバッガに接続されていない場合、ファームウェアがGPIO_13/14の多様化を変更しても復旧は可能でしょうか? ありがとうございます。 Re: RW612: SWD debug with only SWDIO (GPIO_14) and SWCLK (GPIO_13)? こんにちは、 @Yash_shinde。 RW61x設計ガイドのレビューを強くお勧めします。このガイドには、デバッグインターフェースの設計考慮など、RW61xデバイスでPCBを設計する際の重要な考慮事項がいくつか記載されています。詳細は第10章を参照してください。 以下に、ご質問にお答えします。 1. 通常のデバッグとフラッシュ書き込みには、SWDIO + SWCLK + GND (+VTref) で十分ですか? SWDIO、CLK、+VTref、GNDに加えて、nRESETも含めることを強くお勧めします。デバッグのために、ツールは特定の状況下でこれを取得しようとする場合があります(デバッグプローブ、デバッグ構成設定、およびツールによって異なります)。 2. SWDを選択するには、リセット時にRF_CNTL_2をローにプルダウンする必要がありますか? はい。RW61x設計ガイドの表14「ピン構成」に記載されているように、DAPはデフォルトでJTAGを使用しています。したがって、SWDを使用する場合はRF_CNTL_2を0に設定すべきです。同じドキュメント内の図33「設定ピン」は、この構成でこのピンをどのようにコネクテッドすべきかの例を示しています。 3. nRESET(PDn)がデバッガにコネクテッドされていない場合、ファームウェアがGPIO_13/14の多様化を変更しても復旧は可能でしょうか? このCASEでは、ISPモードでボードを復元して再プログラムできます。ISPはイメージプログラミング用のUART、I2C、SPI、USB HIDなどのインターフェースをサポートしています。 この機能については、リファレンス・マニュアルの第43章「ISPとIAP」で詳しくご覧いただけます。 さらに、このコミュニティ投稿では、ISPモードを使用してボードを復旧する方法の例が示されています。 他に質問がありましたら、お気軽にお知らせください。 BR ハビブ
View full article
RW612: SWD debug with only SWDIO (GPIO_14) and SWCLK (GPIO_13)? Hi NXP team, On my custom RW612 board (derived from FRDM-RW612 V2) I use a SEGGER J-Link on a 10-pin Cortex header. Schematic attached. SWDIO (GPIO_14) and SWCLK (GPIO_13) are wired to the header, with VTref and GND. I want to know if SWDIO + SWCLK alone are enough for debug. 1. Is SWDIO + SWCLK + GND (+VTref) enough for normal debug and flashing? 2. Is RF_CNTL_2 pulled low at reset required to select SWD? 3. If nRESET (PDn) is not connected to the debugger, is recovery still possible if firmware changes the GPIO_13/14 mux? Thanks. Re: RW612: SWD debug with only SWDIO (GPIO_14) and SWCLK (GPIO_13)? Hello @Yash_shinde, I highly recommend reviewing the RW61x Design Guide, as it provides several important considerations for designing a PCB with the RW61x device, including design considerations for debug interface, please refer to the chapter 10 for more details. Let me address your questions below: 1. Is SWDIO + SWCLK + GND (+VTref) enough for normal debug and flashing? We would strongly recommend also including nRESET in addition to SWDIO, CLK, +VTref and GND. For debugging, the tools may try to pull this in certain circumstances (depending upon debug probe, debug configuration settings and tools). 2. Is RF_CNTL_2 pulled low at reset required to select SWD? Yes. As mentioned in Table 14 "Pin configurations" of the RW61x Design Guide, the DAP uses JTAG by default. Therefore, RF_CNTL_2 should be set to 0 if you intend to use SWD. Figure 33 "Configuration pins" in the same document shows an example of how this pin should be connected for this configuration. 3. If nRESET (PDn) is not connected to the debugger, is recovery still possible if firmware changes the GPIO_13/14 mux? In this case, you can use ISP mode to recover and reprogram the board. ISP supports interfaces such as UART, I2C, SPI, and USB HID for image programming. You can find more information about this functionality in Chapter 43, "ISP and IAP," of the Reference Manual. Additionally, this community post provides an example of how to recover a board using ISP mode. Please let me know if you have any further questions. BR Habib
View full article
Issue in interfacing Barcode scanner using LPC4337 controller with LPCUSBLIB Hello , I’m currently working on barcode scanner interfacing with LPC4337 using lpcusblib (HID keyboard host example).  Issue: The USB1 host receives only the first character from the scanner after receiving few successful barcode readings, and then stalls. After rescanning, no further data transfers occur. I’ve enabled USB1 interrupts and used HID_Host_ReceiveReport(), but suspect I’m missing proper IN packet handling or report clearing. Has anyone implemented HID barcode scanning with lpcusblib on LPC microcontrollers? Any guidance or code snippets on handling continuous data transfer would be greatly helpful for me and appreciated. i wanted to know that which are the conditions cause to clear the  pipe buffer. some times i receive full barcode properly. some times after first character nothing is received also the usb line gets stuck so that after that nothing is received for several times barcode scanning.  Thank you in advance! #EmbeddedSystems #LPC4337 #USBHost #HID #Firmware  Regards, Re: Issue in interfacing Barcode scanner using LPC4337 controller with LPCUSBLIB Hello @RDGC_member  My colleague has modified the LPC4337 USB host keyboard code to work with the NLS-HR11 barcode scanner on the LPCXpresso4337 EVK using MCUXpresso IDE. It works well. Please see the screenshot of the changed code, as I cannot send the source code to you due to company policy. I have taken a screenshot for you to compare the differences. You can refer to it to check. Thank you. BR Alice
View full article
LPC55xx USARTにおけるFIFOINTSTAT.PERINTフラグの目的は何ですか? こんにちは、 私はLPC55xxファミリ(特にLPC5516)のUSART FIFO割り込み機構を扱っており、FIFOINTSTATレジスタにおけるPERINTビットの意図された目的を理解したいと考えています。 USART割り込みハンドラには、割り込みステータスの独立したソースが2つあるようです。 FIFO 関連の割り込みは、 FIFOINTSTATに報告されます(例: TXLVL 、 RXLVL 、 TXERR 、 RXERR )。 INTSTATで報告されるUSARTペリフェラル割り込み (例:TXIDLE、RXRDY、エラー条件)。 両方の割り込みソースは同じIRQハンドラで処理されるため、ハンドラーはFIFOINTSTATにFIFOINTSTATのFIFOINTイベント情報、INTSTATでUSARTペリフェラルイベント情報を単純にチェックできます。 このCASEでは、追加情報や機能をFIFOINTSTAT.PERINT提供するのか分かりません。 例えば、PERINTがUSARTペリフェラルにアクティブな割り込みがあることを示しても、ハンドラーは実際の 割り込み源(例えばTXIDLE)を特定するためにINTSTATを読み込む必要があります。なぜINTSTAT を直接確認しないのでしょうか? 私の質問は以下のとおりです。 FIFOINTSTAT.PERINTは具体的に何を示しているのでしょうか? 割り込みハンドラ内では、どのような状況で使用されることが想定されていますか? INTSTATを直接チェックするよりも、PERINTのチェックが望ましい、あるいは必要な特定のユースケースはありますか? その意図された使い方を示すコード例を教えていただけますか? MCUXpresso SDKs USARTドライバ(fsl_usart.c),を確認しましたが、FIFOINTSTATはFIFOINTSTATをチェックせずに、FIFO割り込みやUSARTペリフェラル割り込みを直接処理しているようですPERINT。 ご説明いただきありがとうございます。 LPC55xx ペリフェラル
View full article
LPC55xx USART 中的 FIFOINTSTAT.PERINT 标志有什么用途? 你好, 我正在使用 LPC55xx 系列(特别是 LPC5516)上的 USART FIFO 中断机制,我想了解FIFOINTSTAT寄存器中的PERINT位的预期用途。 USART中断处理程序似乎有两个独立的中断状态来源: FIFO 相关中断,在FIFOINTSTAT中报告(例如TXLVL 、 RXLVL 、 TXERR 、 RXERR )。 USART 外设中断,在INTSTAT中报告(例如TXIDLE 、 RXRDY和错误状态)。 由于两个中断源都由同一个 IRQ 处理程序处理,因此该处理程序可以简单地检查FIFOINTSTAT以获取 FIFO 事件,检查 INTSTAT以获取 USART 外设事件。 在这种情况下,我看不出FIFOINTSTAT.PERINT提供了什么额外的信息或功能。 例如,如果PERINT指示 USART 外设有活动中断,处理程序仍然需要读取INTSTAT来确定实际的中断源(例如TXIDLE )。为什么不直接检查INTSTAT呢? 我的问题是: FIFOINTSTAT.PERINT究竟表示什么? 在中断处理程序中,预期在什么情况下会使用它? 是否存在某些特定用例,使得检查PERINT比直接检查INTSTAT更可取或更必要? 能否提供一个代码示例来演示其预期用途? 我检查了 MCUXpresso SDK USART 驱动程序 ( fsl_usart.c ),但它似乎直接处理 FIFO 中断和 USART 外设中断,而没有检查FIFOINTSTAT.PERINT 。 谢谢你的澄清。 LPC55xx 外设
View full article
LPCUSBLIBとLPC4337コントローラを組み合わせたバーコードスキャナーのインターフェースでの問題 こんにちは 、 現在、lpcusblib(HIDキーボードホストのサンプル)を使用して、バーコードスキャナとLPC4337のインターフェースを開発中です。 問題:USB1ホストは、バーコードの読み取りに数回成功した後、スキャナーから最初の文字のみを受信し、その後停止します。再スキャン後は、それ以上のデータ転送は発生しません。 USB1割り込みを有効にしてHID_Host_ReceiveReport()を使用しましたが、INパケットの適切な処理またはレポートのクリアが不足しているのではないかと考えています。 誰かLPCマイコンでLPCマイクロコントローラでIPCのバーコードスキャンを実装したことがありますか?継続的なデータ転送の扱い方に関するアドバイスやコードスニペットがあれば、ぜひ教えていただけると助かります。 パイプバッファをクリアする条件を知りたいです。時々、バーコード全体が正しく表示されることがあります。最初の文字の後に何も受信しないこともあり、USB回線も詰まってしまい、その後何度もバーコードスキャンを繰り返しても何も受信されません。 お手数ですが、よろしくお願いいたします。 #組み込みシステム #LPC4337 #USBホスト #HID #ファームウェア よろしくお願いいたします。 Re: Issue in interfacing Barcode scanner using LPC4337 controller with LPCUSBLIB こんにちは@RDGC_member 同僚がMCUXpresso IDEを使ってLPCXpresso4337 EVKのNLS-HR11バーコードスキャナーに対応しられるように、LPC4337 USBホストキーボードコードを改造しました。うまく機能します。 会社の方針によりソースコードを送ることができないため、変更されたコードのスクリーンショットをご覧ください。違いを比較できるようにスクリーンショットを撮りました。確認するために参照できます。ありがとう。 BR アリス
View full article
使用 LPC4337 控制器和 LPCUSBLIB 接口条码扫描器时出现问题 你好 , 我目前正在研究使用lpcusblib(HID键盘主机示例)将条形码扫描器与LPC4337连接。 问题:USB1 主机在成功读取几次条形码后,仅接收到扫描器的第一个字符,然后就停止工作。重新扫描后,不会再进行数据传输。 我已经启用了 USB1 中断并使用了 HID_Host_ReceiveReport(),但我怀疑我缺少正确的 IN 数据包处理或报告清除。 有人在LPC微控制器上使用lpcusblib实现过HID条形码扫描吗?任何关于处理连续数据传输的指导或代码片段都将对我非常有帮助,不胜感激。 我想知道清除管道缓冲器的条件是什么。有时候我能正确收到完整的条形码。有时扫描第一个字符后就收不到任何数据,而且USB线似乎会卡住,导致之后多次扫描条形码都收不到任何数据。 提前谢谢! #嵌入式系统 #LPC4337 #USB主机 #HID #固件 此致, Re: Issue in interfacing Barcode scanner using LPC4337 controller with LPCUSBLIB 您好@RDGC_member 我的同事修改了 LPC4337 USB 主机键盘代码,使其能够与 LPCXpresso4337 EVK 上的 NLS-HR11 条形码扫描器配合使用,并使用了 MCUXpresso IDE。效果很好。 请查看修改后的代码截图,由于公司政策限制,我无法将源代码发送给您。我截取了屏幕截图,方便您比较差异。你可以参考一下。谢谢。 BR 爱丽丝
View full article
What is the purpose of FIFOINTSTAT.PERINT flag in LPC55xx USART? Hello, I am working with the USART FIFO interrupt mechanism on the LPC55xx family (specifically LPC5516) and I would like to understand the intended purpose of the PERINT bit in the FIFOINTSTAT register. The USART interrupt handler appears to have two independent sources of interrupt status: FIFO-related interrupts, reported in FIFOINTSTAT (e.g. TXLVL, RXLVL, TXERR, RXERR). USART peripheral interrupts, reported in INTSTAT (e.g. TXIDLE, RXRDY, and error conditions). Since both interrupt sources are handled by the same IRQ handler, the handler can simply check FIFOINTSTAT for FIFO events and INTSTAT for USART peripheral events. In this case, I don't see what additional information or functionality FIFOINTSTAT.PERINT provides. For example, if PERINT indicates that the USART peripheral has an active interrupt, the handler would still need to read INTSTAT to determine the actual interrupt source (such as TXIDLE). Why not simply check INTSTAT directly? My questions are: What exactly does FIFOINTSTAT.PERINT indicate? Under what circumstances is it expected to be used in an interrupt handler? Is there a specific use case where checking PERINT is preferable or necessary compared to checking INTSTAT directly? Could you provide a code example demonstrating its intended use? I have checked the MCUXpresso SDK USART driver (fsl_usart.c), but it appears to handle FIFO interrupts and USART peripheral interrupts directly, without checking FIFOINTSTAT.PERINT. Thank you for clarifying this. LPC55xx Peripherals
View full article
S32K328におけるライフサイクル移行中のハードフォルトおよびUTESTプログラミングに関する問い合わせ こんにちは、 HSEファームウェア2.40.0(AB_SWAP)を使用してS32K328でIVTフュージングとライフサイクルトランジションを実行中に、ハードフォルトが発生しました。この件の調査にご協力をお願いいたします。 1. 開発環境 MCU:S32K328 HSEファームウェア:S32K358_HSE_FW_2.40.0 (AB_SWAP)   2. 問題の説明 IVT融合を順次実行し、その後IN_FIELDへのライフサイクル遷移を実行する機能を実装しました。 テスト中に、以下の挙動が観察されました。 最初の関数呼び出し中にハードフォルトが発生しました。MCUがリセットされた後、IVT融合は完了したものの、ライフサイクルは変更されていないことが確認されました。 同じ関数が再度呼び出された際、別のハードフォルトが発生した。MCUがリセットされた後、ライフサイクルがIN_FIELDに変更されたことを確認しました。 Hse_Ip_ServiceRequest 関数、その従属機能、およびこれまでに特定した関連データの メモリ配置 は以下の通りです。 004117a4+000378 .mcal_text Hse_Ip.o 21006cac+000008 .mcal_bss Hse_Ip.o 00411ca8+000008 .mcal_const Hse_Ip.o 00411b1c+00003e .mcal_text OsIf_Timer.o 上記の情報は、これまでに特定された項目のみをカバーしています。追加の補助機能や関連データも関係する場合があります。 参考までに、私たちのテスト環境は同期サービス要求を用いたシングルコアのベアメタルシステムとして構成されています。この手順では、サービスリクエスト以外の操作は一切行われません。 以前、S32K314で同様の操作を実施しましたが、問題なく正常に完了しました。詳細なメモリレイアウトは異なっていたものの、当時もコードはフラッシュブロック0に配置されていた。 3. 質問 Q1.UTESTプログラミング中のフラッシュ読み書き(RWW)競合の可能性 HSEがIVT融合中またはライフサイクル遷移中にUTEST領域をプログラミングしている際に、RWW競合が発生する可能性があると推測されます。ライフサイクル遷移はHSE_SRV_ID_SET_ATTRサービスを介して実行されます。具体的には、HSEがUTESTをプログラミングしている間に、ホストコアがフラッシュブロック0のコードを実行している可能性があり、その結果、RWW競合が発生し、ハードフォルトが発生します。 この現象が観察された行動の正当な説明かどうか確認していただけますか? さらに、UTESTエリアがS32K328上のFlash Block 0と同じRWWパーティションに属しているかどうかも確認できますか? Q2。リセット後のハードフォルトの原因と診断方法 MCUのライフサイクル状態はIVT融合やライフサイクル遷移のたびに変化する可能性があるため、新しいMCUサンプルを繰り返し根本原因分析に使用することは実用的な方法ではありません。 したがって、以下の点について明確にしておきたいと思います。 ハードフォルト時にRWWの競合が発生し、その原因を特定するために使えるレジスタやステータス情報はありますか? このエラー情報はハードフォールト後にMCUがリセットされた後も保持されますか? リセット後でも原因を特定するために使えるフラッシュコントローラの状態レジスタ、RWWエラーステータスレジスタ、またはその他の診断方法はありますか? 可能であれば、チェックすべき関連するレジスタ名とビットフィールドを指定してください。 Q3。RWWの衝突時にコード実行が制限されるメモリ領域 Q1で説明された疑われるRWWの競合が実際の原因である場合、Flash Block 0のアドレス範囲が比較的広いため、IVTフュージングおよびライフサイクル移行時にコード実行が制限される特定のメモリ領域を特定したいと考えています。 制限されたメモリ領域をフラッシュセクター単位(セクターあたり0x2000バイト)で提供できますか? これにより、フラッシュブロック0内のコード実行が許可されている領域と、関連するサービスが実行されている間は実行が制限されている領域を区別するのに役立ちます。 Q4。RWWの競合を防ぐためにSRAMや他のフラッシュブロックに移す必要があるコード Q1で説明された疑われるRWWの衝突が実際の原因であれば、この問題を防ぐために関連コードをSRAMや他のFlash Blockに移すことを検討しています。 すべてのライフサイクル遷移サービス要求が同期的に実行されると仮定した場合、 Hse_Ip_ServiceRequest関数とその下位関数のみをSRAMまたは別のフラッシュブロックに移動するだけで十分でしょうか? あるいは、 Hse_Ip_ServiceRequest を呼び出す関数 も再配置する必要があるのでしょうか? さらに、関数実行中または割り込みサービスルーチン(ISR)中に参照される定数データも、SRAMまたは別のフラッシュブロックに配置する必要があるでしょうか? この問題の根本原因を特定し、再発防止に役立てるため、皆様のご意見とご指導をいただければ幸いです。 再開まで今しばらくお待ちください。 Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 こんにちは、ルーカスさん。 詳しいご説明をありがとうございました。 ご依頼いただいた情報は下記をご覧ください。 1. RTDバージョン SW32K3_S32M27x_RTD_4.4_4.0.0_HF04_D2504 2. OSIFモード 現在のテストコードは、ダミーカウンタ(OSIF_COUNTER_DUMMY)を使用するように構成されています。しかし、この構成はテスト目的のみで使用され、実際の用途では異なる場合があります。 ですので、UTESTプログラミング中にRAMに移すべきすべての機能とリソースを、現在のダミーカウンター構成だけでなく、すべての対応OSIFモードを網羅して完全なリストを提供していただけますか? 3. Hse_Ip_apMuBase メモリ配置 Hse_Ip.c を確認しましたソースコードを解析した結果、Hse_Ip_apMuBaseの宣言では以下のメモリマッピングマクロが使用されていることがわかりました。 #define CRYPTO_START_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" /*! @brief Array of MU base pointers */ static MU_Type* const Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS; #define CRYPTO_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" これは、あなたが提供したコードスニペットとは異なり、CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIEDとCrypto_43_HSE_MemMap.hを使用しています。 マップファイルも確認し、Hse_Ip_apMuBaseが.mcal_constに配置されていることを確認しました。Flash Block 0 内の次のアドレスにあるセクション: .mcal_const 00411ca8+000008 Hse_Ip_apMuBase このことから、UTESTプログラミング中にHse_Ip_apMuBaseにアクセスすると、Hse_Ip_ServiceRequest関数自体がRAMに移動されていてもRWWの競合が発生する可能性があります。 RTD版で、サポートされているすべてのOSIFモードを考慮して、どの特定の機能やリソースをRAMに移すべきか確認していただけますか? 4. RWW紛争に関する追加の質問 この問題の再現性および発生条件に関して、いくつか追加の質問があります。 4.1.同一メモリレイアウトでの再現性 別のS32K328を同じファームウェアとメモリレイアウトで構成した場合、同じRWW競合が常に発生するでしょうか? 言い換えれば、RWW競合の条件が満たされた場合、同じ構成の異なるS32K328デバイス間でこの問題が再現されると予想すべきでしょうか? 4.2.メモリレイアウトの違いが及ぼす影響 たとえ関連するコードやデータがFlash Block 0にあったとしても、それらの特定のメモリアドレスや配置の違いがRWWの衝突の有無に影響を与える可能性はありますか? 例えば、Hse_Ip_ServiceRequestの配置やその関数、アクセスするデータの配置を変えることで問題が防げるでしょうか? 4.3.実行タイミングの影響 同じファームウェアとメモリレイアウトであっても、RWWの競合が発生するかどうかは、サービス要求のタイミングや他の実行条件によって変わる可能性はありますか? 具体的には、UTESTプログラミング中にホストコアがFlash Block 0にアクセスしようとした場合にのみ競合が発生するのでしょうか? 4.4.再現性と発生頻度 この問題は特定の条件下でデターミニスティックなのでしょうか、それとも実行タイミングによって断続的に発生することがありますか? 言い換えれば、同じ操作を同じ条件下で繰り返す場合、毎回問題が発生すると予想すべきでしょうか、それとも試みによって発生頻度が異なるのでしょうか? 5. MCSR登録とRWEフラグ Flash MCSRレジスタのRWEフラグは、RWW競合が発生したときに設定されるとおっしゃっていましたね。しかし、リファレンス・マニュアルにはMCSRという名前のレジスターは見つかりませんでした。 添付の画像に示されているMCRS登録簿のことを言っているのか確認していただけますか? 具体的には、RWEビットのビット位置20(アドレス:0x402EC004)でRWWの競合が発生したかどうかを確認するべきでしょうか? 再開まで今しばらくお待ちください。 Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 こんにちは、 @wodudwo さん。 はい、ご説明いただいた現象は、RWWの競合が原因である可能性が最も高いです。 S32K328では、UTESTとフラッシュブロック0は同じRWWパーティションに属しています。 Hse_Ip_ServiceRequest() を呼び出す際にどのリソースを RAM に移動する必要があるかを説明したこちらの投稿もご参照ください。 https://community.nxp.com/t5/S32K/S32K324-HSE-Setting-ADKP-Issue/m-p/2369325/highlight/true#M58774 再配置が必要な具体的な機能は、使用するOSIFモードによって異なり、RTDのバージョンによっても違いが生じる可能性があります。 もう一つ確認すべき点があります。Hse_Ip_ServiceRequest() で使用される Hse_Ip_apMuBase 配列は、RTD のバージョンによっては定数として宣言され、フラッシュメモリに配置される場合があります。 #define CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIED #include "Crypto_43_HSE_MemMap.h"   /*! @brief MUベースポインタの配列 */ static MU_Type* const Hse_Ip_apMuBase[HSE_IP_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_43_HSE_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_43_HSE_MemMap.h" CRYPTO_43_HSE_START_SEC_CONST_UNSPECIFIEDが影響を受けた物理的なフラッシュブロック0に位置している場合、このアレイへのアクセスは制限期間中もフラッシュの読み取りが行われます。 回避策として、配列をCRYPTO_43_HSE_START_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLEを使ってRAMに移動させることができ、コンスタント修飾子は削除されます。 現在の実装ではこの種の問題を引き起こす可能性があるため、Hse_IpドライバにUTESTプログラミングのサポートを追加する機能要請はすでに提出しています。 使用しているRTDのバージョンと設定されているOSIFモード(OSIF_COUNTER_DUMMYを使用していますか?)を教えていただければ、どの機能やリソースを移すべきか正確に確認できます。 RWW競合が発生した場合、Flash MCSRレジスタのRWEフラグを設定する必要があります。この情報はリセット後には保持されないことにご注意ください。 HSEがUTESTをプログラムしている間、UTEST領域もFlash Block 0全体も読み取れません。 したがって、ライフサイクルの進行、IVT認証の有効化、およびUTESTプログラミングをトリガーするその他の操作などの作業は、管理された環境下で実行する必要があります。これらの操作中は割り込みを無効にしておくことをお勧めします。そうでない場合、割り込みハンドラで使用されるすべてのリソースは、アクセス可能な別のフラッシュブロック、またはRAMに配置する必要があります。 よろしくお願いいたします。 ルーカス Re: Inquiry Regarding HardFault During Lifecycle Transition and UTEST Programming on S32K328 RAMから同期的にHse_Ip_ServiceRequest()を実行するには、以下の関数をRAMに配置してください。 Hse_Ip_ServiceRequest() OsIf_MicrosToTicks() OsIf_GetCounter() OsIf_GetElapsed() さらに、選択したOSIFタイムアウト実装の機能をRAMに配置します。 ダミーOSIF: OsIf_Timer_Dummy_MicrosToTicks()、OsIf_Timer_Dummy_GetCounter()、およびOsIf_Timer_Dummy_GetElapsed()。 システムOSIF:OsIf_Timer_System_MicrosToTicks()、OsIf_Timer_System_GetCounter()、OsIf_Timer_System_GetElapsed()、および選択されたシステムタイマーバックエンド関数。 カスタムOSIF:OsIf_Timer_Custom_MicrosToTicks()、OsIf_Timer_Custom_GetCounter()、およびOsIf_Timer_Custom_GetElapsed()。 MUアクセス機能とメモリバリアはインラインコードです。OsIf_Interrupts.c は同期要求パスでは使用されません。 Hse_Ip_apMuBase は、この RTD において定数として定義されています。 #define CRYPTO_START_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h"   /*! @brief MUベースポインタの配列 */ static MU_Type* const Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_STOP_SEC_CONST_UNSPECIFIED #include "Crypto_MemMap.h" SO、以下に変えてください: #define CRYPTO_START_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE #include "Crypto_MemMap.h"   /*! @brief MUベースポインタの配列 */ static MU_Type* Hse_Ip_apMuBase[HSE_NUM_OF_MU_INSTANCES] = MU_HOST_BASE_PTRS;   #define CRYPTO_STOP_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE #include "Crypto_MemMap.h" 再現性に関して言えば、起動条件が常に完全に同じであれば(つまり、単純な逐次コードで、割り込みがないなど)、同じ結果が得られるはずです。それは、同じデータとコードがキャッシュされ、フラッシュ読み取りバッファが同じ状態になっているためです。 不確定要素がある場合は、異なる結果が得られる可能性があります。例えば、お客様にハードフォールトが発生しなかったにもかかわらず、ライフサイクル情報がUTESTに正しく保存されておらず、リセット後にLC_ERRフラグ(ライフサイクルスキャン中のエラー)が設定されたCASEを見ました。つまり、前述のように、そのコードをRAMまたは別のフラッシュメモリから実行することが重要であるということです。 申し訳ありません、それはタイプミスでした。正しくはモジュール構成ステータス(MCRS)です。 よろしくお願いいたします。 ルーカス
View full article
RW612:仅使用 SWDIO (GPIO_14) 和 SWCLK (GPIO_13) 进行 SWD 调试? 您好,NXP团队: 在我的定制 RW612 板(源自 FRDM-RW612 V2)上,我使用了一个 10 针 Cortex 接头上的 SEGGER J-Link。附图为示意图。SWDIO (GPIO_14) 和 SWCLK (GPIO_13) 连接到接头,VTref 和 GND 也连接到接头。 我想知道单独使用 SWDIO + SWCLK 是否足以进行调试。 1. SWDIO + SWCLK + GND (+VTref) 是否足以满足正常的调试和烧录需求? 2. 复位时是否需要将 RF_CNTL_2 拉低才能选择 SWD? 3. 如果 nRESET (PDn) 未连接到调试器,固件更改 GPIO_13/14 多路复用器时是否仍可恢复? 谢谢。 Re: RW612: SWD debug with only SWDIO (GPIO_14) and SWCLK (GPIO_13)? 你好@Yash_shinde , 我强烈建议您查阅RW61x 设计指南,因为它提供了使用 RW61x 设备设计 PCB 的几个重要考虑因素,包括调试接口的设计考虑因素,请参阅第 10 章了解更多详情。 下面我将回答您的问题: 1. SWDIO + SWCLK + GND (+VTref) 是否足以满足正常的调试和烧录需求? 我们强烈建议除了 SWDIO、CLK、+VTref 和 GND 之外,还要加上 nRESET。为了进行调试,在某些情况下,工具可能会尝试拉取此文件(取决于调试探针、调试配置设置和工具)。 2. RESET时是否需要将 RF_CNTL_2 拉低才能选择 SWD? 是的。如 RW61x 设计指南的表 14“引脚配置”中所述,DAP 默认使用 JTAG。因此,如果您打算使用 SWD,则应将 RF_CNTL_2 设置为 0。同一文档中的图 33“配置引脚”显示了此配置下该引脚的连接示例。 3. 如果 nRESET (PDn) 未连接到调试器,固件更改 GPIO_13/14 多路复用器时是否仍可恢复? 在这种情况下,您可以使用 ISP 模式来恢复和重新编程板。ISP 支持 UART、I2C、SPI 和 USB HID 等接口,用于图像编程。 您可以在参考手册第 43 章“ISP 和 IAP”中找到有关此功能的更多信息。 此外,这篇社区帖子还提供了一个如何使用 ISP 模式恢复板的示例。 如果您还有其他问题,请告诉我。 BR 哈比卜
View full article
MCXA145 flash secure Good morning, I would like to set the flash security bit on the MCXA145 via firmware. On the MCXC444, I used to go into the startup file to configure it; is there a similar option here without using MCUXpresso Secure Provisioning? In production, they simply load the .axf file, and I’d like it to already contain the security settings to avoid them having to carry out a second step. Could you advise me on this? Many thanks Regards Re: MCXA145 flash secure Hello The Flash Security equivalent in MCXA is the Read Out Protection [ROP_STATE];  ROP_STATE is a 32-bit field stored in IFR0; ROP function protects the security of the chip, users can set different levels of ROP according to the requirements of their own applications.   During customer production, customers can impose certain restrictions on ISP and debugging based on their needs through ROP. Customers can choose between ROP level 1 or ROP level 2. Important warning: Take in consideration the restrictions for each ROP Level since some levels may enter NO return LifeCycles. You can configure the Life Cycle settings ROP Level on the Secure Provisioning Tool to build the image and then use the image to the production devices, Using MCUXpresso Secure Provisioning simplifies the ROP configuration process and it’s the recommended path to configure CMPA settings; I would strongly recommend this NXP Community post for more information on the topic and the instructions to configure ROP MCXA153 Read Out Protection And the related information from the Reference Manual MCXA145 Reference Manual Chapter 20.3, 20.3.4 [Read Out Protection] Let me know if you need anything else Best Regards
View full article
NXP RTD SDK 安装问题:由于找不到 Link 文件夹,EB Tresos Studio 集成失败 你好, 尽管已提供指向 NXP RTD SDK 安装目录的 EB Tresos Studio 安装路径,但它并未与 EB Tresos Studio 集成。 Re: NXP RTD SDK installation issue: EB Tresos Studio integration failed due to Link folder not found 你好@VaneB , 我已将路径更改为“C:/EB/Tresos/plugins”,但问题仍然存在。请指教。 Re: NXP RTD SDK installation issue: EB Tresos Studio integration failed due to Link folder not found 嗨@a1g1 请您确认在创建 RTD 包和 EB tresos 之间的链接时指定的 EB tresos 安装目录是否为C:\EB\tresos\ 如果问题仍然存在,请尝试将 RTD 插件复制到C:\EB\tresos\plugins目录。 BR,VaneB Re: NXP RTD SDK installation issue: EB Tresos Studio integration failed due to Link folder not found 嗨@a1g1 我觉得最后一部分可能解释得不够清楚。如果无法将 RTD 包与 EB tresos 连接,您可以跳过该步骤并手动添加插件。 为此,请导航至已安装的 RTD 目录,复制所有插件,然后将其粘贴到 EB tresos 目录C:\EB\tresos\plugins中。
View full article