Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
PCF85063AT/AAZ OS raising flag Hiya all,  I'm facing a problem with the implementaion of the PCF85063AT/AAZ RTC.  We are currently using a dual channel power supply in a Oring configuration : Here is the rooting :  pin 1 and 2 are used for the quartz and pin 8 for VDD The issue is that the OS ( oscillator stop ) flag is triggered when the 3.3V rise. We added a RC filter after the diodes to lower the noise at switching. However the OS flag is still rising from time to time.  We ended up measuring the quartz and found that it was disturbed during the power_up  ( below one measure on one side of the quartz referenced to GND ) We are wondering if there is any way to protect the quartz and still other problemes  we coudn't see.  We are thinking of using a 4 pins quartz instead of the current quartz that use 2. We are also considering that the noise is also comming from the GND and in this case maybe a Ring shield could be considered.  Did any of you encontered a similar problem before or are having a solution for us ?  It would be greatly appreciated.    Re: PCF85063AT/AAZ OS raising flag Hi, We are using a 7pF configuration. We confirmed this is properly set by reading the appropriate register. It's also the default configuration.  Re: PCF85063AT/AAZ OS raising flag Hello, The device features an internal oscillator that requires 32.768 kHz external quartz crystal. Selectable integrated oscillator load capacitors for CL = 7 pF or CL = 12.5 pF are also available.   In this case, what is the load capacitor selected? Re: PCF85063AT/AAZ OS raising flag Thank you for confirming. In this case, the recommendation would be: Place a 100 nF ceramic capacitor as close as possible to the RTC’s VDD pin. Add an additional 10 µF capacitor to help smooth the power-up sequence. Consider using an LC filter instead of just an RC filter to better reduce high-frequency noise. Use a 4-pin crystal as in our evaluation board with shielding if the environment is noisy, this helps minimize external interference. I also recommend reviewing the document at the following link: https://www.nxp.com/docs/en/user-guide/UM10301.pdf
記事全体を表示
KV5 DMA 和 UART 早上好 我导入了使用 UART 和 DMA 的示例。原始示例中使用的是 UART0。它很管用。我改用其他端口,现在试着用 UART4,但不行。我能看到 TX 结束时调用了回调,但 RX 结束时从未调用过回调。我不明白你的意思。我确信引脚和连接都没问题。我正在使用 KV5 的塔式系统。 我在这里提供一个稍作修改的示例,用于更改 UART。 欢迎提供一切帮助 谢谢 Pietro Re: KV5 DMA and UART 你好,皮耶罗 能否帮助我们确认您使用的是哪个 UART-DMA 示例,以及是哪个版本的 SDK? 您能帮助我们分享您的联系吗? 最诚挚的问候,路易斯 Re: KV5 DMA and UART 文件在这里。
記事全体を表示
PCF85063AT/AAZ OS フラグを立てる 皆さんこんにちは PCF85063AT/AAZ RTC の実装で問題が発生しています。 現在、O-リング構成のデュアル チャネル電源を使用しています。 ルートは次のとおりです。ピン1と2はクォーツに使用され、ピン8はVDDに使用されます。 問題は、3.3V が上昇すると OS (発振器停止) フラグがトリガーされることです。スイッチング時のノイズを低減するために、ダイオードの後に RC フィルターを追加しました。 ただし、OS フラグはまだ時々上昇します。 最終的に水晶を測定したところ、電源投入時に水晶が乱されていたことがわかりました(GNDを基準とした水晶の片側での1つの測定値の下) クォーツを保護する方法があるのか、また、私たちが目に見えない他の問題があるのか、私たちは考えています。 現在 2 ピンを使用しているクォーツの代わりに、4 ピンのクォーツを使用することを検討しています。 また、ノイズは GND からも発生している可能性もあるため、このCASEはリング シールドを検討する必要があるかもしれません。 皆さんの中に、以前同様の問題に遭遇した方や、解決策をお持ちの方はいらっしゃいますか? 大変助かります。   Re: PCF85063AT/AAZ OS raising flag こんにちは。7pF 構成を使用しています。適切なレジスタを読み取ることで、これが適切に設定されていることを確認しました。これはデフォルトの設定でもあります。 Re: PCF85063AT/AAZ OS raising flag こんにちは、 このデバイスは、32.768 kHz の外部水晶振動子を必要とする内部発振器を備えています。CL = 7 pF または CL = 12.5 pF の選択可能な統合発振器負荷コンデンサも利用できます。   このCASE、選択される負荷コンデンサは何ですか? Re: PCF85063AT/AAZ OS raising flag ご確認いただきありがとうございます。このCASE、推奨事項は次のようになります。 100 nF のセラミック コンデンサを RTC の VDD ピンのできるだけ近くに配置します。 電源投入シーケンスをスムーズにするために、10 µF のコンデンサを追加します。 高周波ノイズをより効果的に低減するには、RC フィルターだけでなく LC フィルターの使用を検討してください。 環境がノイズが多い場合は、シールド付きの評価ボードのように 4 ピン水晶を使用すると、外部干渉を最小限に抑えることができます。 次のリンクにあるドキュメントを確認することもお勧めします。 https://www.nxp.com/docs/en/ユーザーガイド/UM10301.pdf
記事全体を表示
PCF85063AT/AAZ 操作系统升旗 大家好 我在执行PCF85063AT/AAZ RTC 时 遇到一个问题。 我们目前使用的是 Oring 配置的双通道电源: 下面是扎根:1 号和 2 号引脚用于石英,8 号引脚用于 VDD 问题在于,当 3.3V 升高时,会触发信号操作系统(振荡器停止)标志。我们在二极管后面添加了 RC 滤波器,以降低开关噪声。 然而,操作系统的旗帜仍不时升起。 我们最终测量了石英,发现它在 power_up 期间受到了干扰(以下是石英一侧参考 GND 的测量值) 我们想知道是否有办法保护石英,还有其他我们看不到的问题。 我们正在考虑使用 4 引脚石英,而不是目前使用的 2 引脚石英。 我们还在考虑噪音也来自GND,在这种情况下,也许可以考虑使用环形屏蔽罩。 你们中有人遇到过类似的问题吗? 我们将不胜感激。   Re: PCF85063AT/AAZ OS raising flag 你好,我们使用的是 7pF 配置。我们通过读取相应的寄存器,确认已正确设置。这也是默认配置。 Re: PCF85063AT/AAZ OS raising flag 你好 该设备具有内部振荡器,需要 32.768 kHz 的外部石英晶体。还提供 CL = 7 pF 或 CL = 12.5 pF 的可选集成振荡器负载电容。   在这种情况下,选择的负载电容是什么? Re: PCF85063AT/AAZ OS raising flag 感谢您的确认。在这种情况下,建议 尽可能靠近 RTC 的 VDD 引脚放置一个 100 nF 的陶瓷电容。 再添加一个 10 µF 电容以帮助平滑上电顺序。 考虑使用 LC 滤波器,而不仅仅是 RC 滤波器,以更好地降低高频噪声。 如果环境噪音,请像我们的评估板一样使用带屏蔽功能的 4 引脚晶体,这有助于最大限度地减少外部干扰。 我还建议通过以下链接查看该文件: https://www.nxp.com/docs/en/user-guide/UM10301.pdf
記事全体を表示
NT3H2111 VOUT 最大电容 NT3H2111 数据表列出了 " 总连接电容 " 范围为 " 150 nF 至最大 220 nF "。最大 0.22uF 是硬性限制吗?我想通过 低压差线性稳压器(LDO) 运行能量收集输出,以提供具有多个可能的电压源(来自 HT3H2111 的 VOUT,来自调试/编程探头的电源)的归一化电压。低压差线性稳压器(LDO) 需要一个 1uF 的输入电容,这超过了 0.22uF 的限制。 即使我没有使用 低压差线性稳压器(LDO),微控制器上的组合解耦电容也会超过 0.22uF 的限制。 人们如何应对这一限制?还是可以置之不理? 谢谢,迈克 Re: NT3H2111 VOUT Max Capacitance 你好@mike_durian 希望你一切顺利。 如文档中所述,正如您所提到的,恩智浦建议在VOUT和GND之间使用介于150nF至220nF范围内的存储电容,以确保在调制或应用过程中电压不会下降。 您应该考虑到,连接到能量收集引脚的容量只能是外部系统所需的容量--容量越大,读取器就越难唤醒并向 NTAG I²C 供电。 Eduardo。 Re: NT3H2111 VOUT Max Capacitance 你好@EduardoZamora、 谢谢您的答复。因此,0.22uF 的限制不是硬上限?你说较大的负荷会让读者更难醒来。 是否有任何文档、图表、图表等显示负载电容对系统行为(在不同的场强度下)的影响? 如何为需要较大负载电容的 MCU 和相关电路供电? Re: NT3H2111 VOUT Max Capacitance 您好, 很抱歉,关于能量收集行为的唯一可用信息包含在 NTAG I²C 和 NTAG I²C plus 的 AN11578 能量收集中(考虑使用 220nF 电容)以及 NTAG I2C plus 数据表,第 8.6 章。 也许你可以考虑使用二极管来尝试隔离 " 局部 " 电容;但是,这超出了我的范围,这取决于你的设计。请注意,我们建议使用 150nF - 220nF 范围内的总电容,以确保可靠运行,否则无法保证正常工作。不便之处,敬请原谅。 Eduardo。
記事全体を表示
How to use the SE050 middleware I want to use the STM32F429IGT6 main control chip to control the SE050 for encryption functions, but I don't know how to use or port the official middleware software package, making it impossible to implement this function. Re: How to use the SE050 middleware Hi @zym , I would like to recommend starting from the nano package instead of the full version of MW, please kindly refer to https://github.com/NXPPlugNTrust/nano-package#porting for details. Hope that helps, Have a great day, Kan ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. -------------------------------------------------------------------------------
記事全体を表示
S32DSライセンスの有効期限が切れました こんにちは。S32 Design Studio for ARM v2.2 のライセンスの有効期限が切れました。延長していただけますか? フルフィルメントID: 199868897 有効期限: 2026年1月9日 製品: S32 Design Studio for ARM v2.2 ありがとうございます。 アクティベーション | インストール | ライセンス | インストーラーのダウンロード Re: S32DS License Expired こんにちは、 S32DS ライセンスが延長されました。古いコードを使用して S32DS を再度アクティブ化してください。
記事全体を表示
imx6 vxworks7.0 drawing Using imx6q's gpu to draw two screen outputs, extremely occasional program error triggering data abort exception, operating system is using vxworks 7.0, what could it be related to? What are the known bugs? Graphics & Display i.MX6Quad Re: imx6 vxworks7.0绘图 Thank you. We have encountered similar issues several times since 2022: the program crashes, leading to a failure of watchdog feeding and a hardware watchdog reset. Have other users reported similar problems? What are the known defects of the GPU driver for i.MX6Q under the VxWorks 7.0 operating system? Is it safe to enable two tasks for dual-screen rendering? If not, how can dual-screen display be implemented for i.MX6Q under the VxWorks 7.0 operating system? Re: imx6 vxworks7.0绘图 Hello, When using VxWorks 7.0 for dual-screen GPU rendering on the i.MX6Q platform, extremely rare Data Abort exceptions occur, typically related to memory inconsistency, resource contention, or timing vulnerabilities in the Vivante GPU driver in multi-display controller (IPU) environments. The following are common causes and troubleshooting directions for this type of problem: Memory Inconsistency and Cache Coherency This is the most common cause of Data Aborts in real-time operating systems such as VxWorks:  GPU and CPU cache misalignment: The i.MX6Q's GPU is not within the ARM's Snoop Control Unit. If the application layer updates the video memory data but does not manually execute cacheFlush(), or if the CPU immediately accesses the region after the GPU finishes drawing and does not execute cacheInvalidate(), it may result in illegal address offsets or data corruption, triggering an abort Regards Re: imx6 vxworks7.0绘图 Hi, You better enter a support request to VXworks. Regards Re: imx6 vxworks7.0绘图 We tried to reproduce it, but we couldn't reproduce it. Is there any way to increase the probability of reproduction.
記事全体を表示
S32K312, C40_Ip in SRAM Hi team,  I have a problem running C40_ip code (RTD 5.0.0) from SRAM. I have places all the needed APIs in SRAM. Including Sys_GetCoreID() from OsIf_Internal.h But the sector erase still fails (imprecise bus fault) at the Sys_GetCoreID() function. I cannot figure out what could be the problem. The disassembly in SRAM is identical to the one if Flash. Any help would be appreciated. Thank you, BR, Daniel RTD Re: S32K312, C40_Ip in SRAM Hi @danielmartynek, At the moment, I'm having problems with S32K312 board and I can't debug your issue. I realized there is an issue about flash that detected on 5.0.0 version: ARTD-182651: SectorStep is wrong calculated, leading to wrong sector lock register being checked. And this issue was fixed on the 5.0.0 HF01 version. To fix this issue, the dev team modified some statements in C40_Ip_CheckLockDomainID_CheckRegiste and C40_Ip_CheckLockDomain functions, and this functions will be called by C40_Ip_ClearLock in your example. So, Could you try to re-test with using 5.0.0 HF01 instead of 5.0.0 version? Best regards, Dan  Re: S32K312, C40_Ip in SRAM Hi @DanNguyenDuy, The problem is that locked sectors will not cause a bus fault exception. The exception is caused by the core accessing something which I cannot explain. Also, it does not happen on the first sector, only if multiple sectors are erased back-to-back. BR, Daniel Re: S32K312, C40_Ip in SRAM Hi @danielmartynek, when hardfault occur, what is the value of "i" in the C40_Ip_ClearLock(i, EXAMPLE_MASTER_ID)? Did you install HSE_FW in your board? Best regards, Dan Re: S32K312, C40_Ip in SRAM Hi @DanNguyenDuy, HSE_FW has not been installed. All the C40_Ip_ClearLock() calls return C40_IP_STATUS_SUCCESS and the iteration i was 268 at the time the exception occurred. Thank you, BR, Daniel Re: S32K312, C40_Ip in SRAM Hi Dan, I'm sorry, you are right, I don't know why I wrote 268, it was 266. When I change the range to i < C40_CODE_ARRAY_0_BLOCK_1_S250, it works. Thank you for pointing this out. Best regards, Daniel Re: S32K312, C40_Ip in SRAM Hi @danielmartynek, I only see an information in S32K3RM about "Secure flash memory" for S32K312 as from 0x5F4000 (C40_CODE_ARRAY_0_BLOCK_1_S250 - sector 266)  to 0x5FFFFF (C40_CODE_ARRAY_0_BLOCK_1_S255 - sector 271). It is very strange when you got hardfault at sector 268 instead of 266. In your project, you can dump memory of sector 268 to check, if it display "?" symbol for this memory area then we can confirm that this memory area was blocked by SBAF. Best regards, Dan
記事全体を表示
SRAM中的S32K312、C40_Ip 队员们好 我在从 SRAM 运行 C40_ip 代码(RTD 5.0.0)时遇到了问题。 我在 SRAM 中放置了所有需要的应用程序接口。 包括 OsIf_Internal.h 中的 Sys_GetCoreID() 但是在 sys_getCoreID () 函数中,扇区擦除仍然失败(不精确的总线故障)。 我不知道问题出在哪里。 SRAM 中的拆卸与闪存中的拆卸相同。 如有任何帮助,我们将不胜感激。 谢谢! BR,丹尼尔 RTD Re: S32K312, C40_Ip in SRAM 你好,@DanNguyenDuy、 问题在于锁定扇区不会导致总线故障异常。 出现异常的原因是核心访问了一些我无法解释的东西。 此外,这种情况不会发生在第一个扇区,只有在连续擦除多个扇区时才会发生。 BR,丹尼尔 Re: S32K312, C40_Ip in SRAM 你好,我是@danielmartynek、 目前,我在 S32K312 板上遇到了问题,我无法调试你的问题。 我意识到在 5.0.0 版本上检测到 flash 存在问题: ARTD-182651:SectorStep 计算错误,导致检查错误的扇区锁寄存器。这一问题已在 5.0.0 版本中得到修复HF01 版本。为了解决这个问题,开发团队修改了 C40_Ip_CheckLockDomainID_CheckRegiste 和 C40_Ip_CheckLockDomain 函数中的一些语句,在您的示例中,C40_Ip_ClearLock 将调用这些函数。因此,您能否尝试使用 5.0.0 重新进行测试?HF01 而不是 5.0.0 版本? 顺祝商祺! 丹 Re: S32K312, C40_Ip in SRAM 你好,我是@danielmartynek、 发生硬故障时,C40_Ip_ClearLock(i, EXAMPLE_MASTER_ID)中"i" 的值是多少? 你在板上安装了 HSE_FW 吗? 顺祝商祺! 丹 Re: S32K312, C40_Ip in SRAM 你好,@DanNguyenDuy、 尚未安装 HSE_FW。 所有 C40_Ip_ClearLock() 调用都返回 C40_IP_STATUS_SUCCESS,并且在发生异常时,迭代 i 为 268。 谢谢! BR,丹尼尔 Re: S32K312, C40_Ip in SRAM 你好,我是@danielmartynek、 我只在 S32K3RM 中看到有关"安全闪存" 的信息,S32K312 的安全闪存从 0x5F4000 (C40_CODE_ARRAY_0_BLOCK_1_S250 - 扇区 266) 到 0x5FFFFF (C40_CODE_ARRAY_0_BLOCK_1_S255 - 扇区 271)。 在 268 扇区而不是 266 扇区出现硬故障,这非常奇怪。 在您的项目中,可以转储 268 扇区的内存进行检查,如果该内存区域显示"?" 符号,则可以确认该内存区域被 SBAF 堵塞。 顺祝商祺! 丹 Re: S32K312, C40_Ip in SRAM 嗨,丹、 对不起,你是对的,我不知道为什么要写 268,原来是 266。 当我将范围改为 i< C40_CODE_ARRAY_0_BLOCK_1_S250,它就能工作了。 感谢您指出这一点。 顺祝商祺! 丹尼尔
記事全体を表示
i.MX8MP 平台开启 CAAM + trusted keys 后 warm reboot 稳定性问题咨询 NXP社区技术人员,大家好        在 i.MX8MP 平台上做系统稳定性测试时,遇到一个与 CAAM 相关的 warm reboot 小概率卡住问题,想请教是否有相关经验或建议的配置方式。 测试环境说明 SoC:i.MX8MP 系统:Yocto Linux(init 启动方式) 内核版本:6.6.52 存储:eMMC 测试方式:系统启动后,通过脚本进行连续 reboot 压力测试 现象描述 关闭 CAAM 相关功能时 连续 reboot 测试超过 500 次 系统均可正常启动 未出现卡死或启动异常 开启 CAAM 及 trusted/encrypted keys 相关功能后 reboot 测试中 约 1/100 ~ 1/200 的概率 系统在启动阶段卡住 串口停留在早期初始化日志 异常时可观察到类似日志     3、异常时可观察到类似日志          <1>内核卡住log [ 2.159151] caam 30900000.crypto: caam pkc algorithms registered in /proc/crypto [ 2.166628] caam 30900000.crypto: rng crypto API alg registered prng-caam [ 2.173441] caam 30900000.crypto: registering rng-caam [ 2.180670] Executing RNG SELF-TEST with wait [ 2.259240] mmc2: new HS400 Enhanced strobe MMC card at address 0001 [ 2.266720] mmcblk2: mmc2:0001 DV4032 29.1 GiB [ 2.274171] mmcblk2: p1 p2 p3 [ 2.279584] mmcblk2boot0: mmc2:0001 DV4032 4.00 MiB [ 2.286069] mmcblk2boot1: mmc2:0001 DV4032 4.00 MiB [ 2.293040] mmcblk2rpmb: mmc2:0001 DV4032 16.0 MiB, chardev (234:0) [ 60.410412] imx-sdma 30bd0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2 [ 60.420874] imx-sdma 30bd0000.dma-controller: Falling back to sysfs fallback for: imx/sdma/sdma-imx7d.bin [ 121.822422] imx-sdma 30bd0000.dma-controller: external firmware not found, using ROM firmware [ 123.010384] random: crng init done      <2> 在 reboot 过程中,也偶尔能看到: caam_jr ... Device is busy      <3> 相关内核配置 CONFIG_CRYPTO=y CONFIG_CRYPTO_DEV_FSL_CAAM=y CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y CONFIG_TRUSTED_KEYS=y CONFIG_TRUSTED_KEYS_CAAM=y CONFIG_ENCRYPTED_KEYS=y CONFIG_DM_CRYPT=y 关闭 CAAM(或 trusted/encrypted keys),warm reboot 稳定性恢复正常 Re: i.MX8MP 平台开启 CAAM + trusted keys 后 warm reboot 稳定性问题咨询 你好 在 i.MX8MP 平台上,考虑到您提供的内核 6.6.52 和 CAAM RNG 自检卡住问题,这通常与残余 RNG 初始化状态、作业环权限锁定或 SDMA 固件加载超时引起的连锁反应有关。以下是针对该问题的分析建议和配置解决方案: 1。核心原因分析 CAAM 状态机未 RESET:热重启不会 RESET 所有 SoC 寄存器。如果 CAAM 在重启之前很忙(例如,caam_jr...设备在日志中处于繁忙状态),重启后 RNG 的硬件状态机可能处于不确定的中间状态。任务环权限问题:如果使用高度保证启动 (HAB) 或 OP-TEE,BootROM 或 ATF 可能会锁定某些任务环 (JR)。在热重启期间,如果未正确释放 JR 寄存器,Linux 内核将在执行 RNG 自测并等待阶段无限期等待,因为它无法获得硬件响应。 2.建议的优化和解决方案 答:内核配置和驱动程序调整禁用同步自检:尝试在 CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API 中禁用强制等待机制,或者在 U-启动 中预初始化 RNG。 集成 SDMA 固件:将 SDMA 固件编译到内核(CONFIG_EXTRA_FIRMWARE= " imx/sdma/sdma-imx7d.bin ")中,以避免在启动的早期阶段由于文件系统未安装而导致 60 秒的等待时间。这可以大大降低启动过程中的时间风险。 B. 修改 U-启动/ATF RESET 行为(解决方法)热RESET 在 i.MX8M 系列上经常会出现这种残留问题。 C 。DTS 设备树检查 caam_jr 节点的属性。在某些版本中,必须确保任务环分配与安全模式一致: &crypto { status = "okay"; }; &sec_jr0 { status = "okay"; }; 此致 Re: i.MX8MP 平台开启 CAAM + trusted keys 后 warm reboot 稳定性问题咨询 感谢回复!我将对这两个部分进行改动验证,后续反馈情况;
記事全体を表示
NETC driver code review: sync barrier 1. In the NETC driver, the “MCAL_INSTRUCTION_SYNC_BARRIER()” should NOT be a must. It will decrease the performance and can be removed. Per my understanding, if we do not dynamically change instruction sequence, we do not need to flush the instruction FIFO (isync). Might I'm wrong, please help to double check it. For example, in Netc_Eth_Ip_SendFrame(), about the code below, speculative will not execute for store instructions, why do we need this barrier?              /* When the development error is enabled we need to add a barrier first in order to avoid speculative exection before the previous else if condition is completed. */             MCAL_INSTRUCTION_SYNC_BARRIER();             MCAL_DATA_SYNC_BARRIER(); 2. Some of the “MCAL_DATA_SYNC_BARRIER()” needs to be reviewed. Parts of them seem to be not necessarily (above), parts of them need to be adjust. For example, in Netc_Eth_Ip_SendFrame(), about the code below, the “MCAL_DATA_SYNC_BARRIER()” should be moved to follow-up the cache operation and before the TBPIR register.             /* Writes in memory for BD are optimized and syncronization before starting transmission need to be done to assure that transmission BD is write correctly in memory. */             MCAL_DATA_SYNC_BARRIER();   RTD Re: NETC driver code review: sync barrier Hi, I understand that barrier commands were added before changing global variable to not impact to other. For example: in the function SendFrame with this code: Without barrier commands, speculative execution will be done before "if" condition fully resolves. If case NextProducerIndex = LastTxdata happened that indicates that queue empty or full but CPU predict wrongly and set the variable LockTxBufferDes = TRUE. After, "if" condition finished, CPU recognized that it wrong so come back but the variable LockTxBufferDes changed. The sequence for this variable is: before transmit LockTxBufferDes = LOCKED, after handling in ReportTransmission, LockTxBufferDes = UNLOCKED. This led to one buffer was ignored to use.  For this command: This relates to the note in RM: barrier was added to ensure that TxBD synced to memory before the following command started: Best regards, Nhi Re: NETC driver code review: sync barrier Regarding to "variable LockTxBufferDes changed", As I stated in the question, any speculative execution will NOT cause corrupt memory store action, which is not revoked. Please double check about the speculative concept. Re: NETC driver code review: sync barrier Hi, My answer based on that found as below: I have no more idea about this, so I created the ticket ARTDCC1-640, you can follow it to get the explanation from SW team. Best regards, Nhi Re: NETC driver code review: sync barrier where does this screenshot come from? What is the source of this and the context not shown in the screenshot? Re: NETC driver code review: sync barrier Is it correct to say that there is NO URL where that screenshot can be looked up and that it is AI generated text? if yes, which AI, if not, where does this come from? Re: NETC driver code review: sync barrier Yes, I found this by a AI tool. It is Cody. Re: NETC driver code review: sync barrier Ok, another case of AI tools providing fundamentally incorrect information in very nice wording. Re: NETC driver code review: sync barrier Hi, I just found it, not official documentation but I think it can be the reason when SW adding this command. I have no idea, maybe my thinking is wrong they have other reasons . SW team will answer in the ticket mentioned above. Best regards, Nhi
記事全体を表示
S32K396-BGA-DC1 OpenSDA only enumerates as CDC Serial Port, cannot debug with S32DS Hello community, I am experiencing an issue with a new S32K396-BGA-DC1 evaluation board when trying to debug using S32 Design Studio for S32 Platform 3.5 and the on-board OpenSDA debugger. I cannot debugger my code on the board. Problem description The board enumerates in Windows only as a CDC Serial Port: “OpenSDA – CDC Serial Port” It never enumerates as a PEMicro Multilink device, and therefore S32DS cannot establish a debug connection. Debug attempts always fail with: “PEMicro GDB Launch Failure: The GDB Server was not able to establish a connection to the target processor.” What has been verified Board is new, straight from factory S32 Design Studio 3.5 installed correctly Example projects (e.g. Dio_Example_S32K396) build successfully GNU ARM PEMicro Interface Debugging Support is installed in S32DS PEMicro Windows drivers installed Debug jumpers J16/J17/J18/J19 set correctly for OpenSDA (1-2) SWD selected, low speed, connect-under-reset enabled Windows never shows PEMicro USB Multilink, only CDC No OpenSDA boot/reset button or maintenance jumper is available on this board No documented OpenSDA recovery procedure found for S32K396-BGA-DC1 Question Is there an official procedure to recover or reflash the OpenSDA firmware on the S32K396-BGA-DC1? If not, should this be considered a defective OpenSDA unit, and is board replacement (RMA) the recommended action? Is the on-board OpenSDA officially supported for debugging on this board, or is an external debugger (PEMicro / Lauterbach / J-Link) required? Any guidance or official confirmation would be greatly appreciated. Best regards, Jesus ASCENCIO Re: S32K396-BGA-DC1 OpenSDA only enumerates as CDC Serial Port, cannot debug with S32DS Hi @Jesusear18, Is there an official procedure to recover or reflash the OpenSDA firmware on the S32K396-BGA-DC1? Here you have some information related to the K20 version. There is not much difference with the K65 version. I believe K65 doesn't support drag&drop firmware updated: https://community.nxp.com/t5/Kinetis-Microcontrollers/OpenSDAv2/ta-p/1121569. OpenSDA Serial and Debug Adapter | NXP Semiconductors Do you have a Cyclon/Multilink programmer that you can use to re-flash it? If not, then you won't be able to re-flash it and it would be better to use the FX directly on the K3. I understand you have confirmed software, jumpers and connections. I assume you have followed Getting Started With S32K396-BGA-DC1 Evaluation Board, correct? Please confirm if the board is correctly supplied with 12V, and the jumper is set correctly for this input (J3 1-2). Could you please share your installation details for S32DS? Specifically, S32K3xx development package must be installed: If not, should this be considered a defective OpenSDA unit, and is board replacement (RMA) the recommended action? Is the on-board OpenSDA officially supported for debugging on this board, or is an external debugger (PEMicro / Lauterbach / J-Link) required? Yes, the S32K396 can be debugged through the OpenSDA port. To rule out other root causes, could you try using an external debugger on the MCU?  When connecting to USB Header J15, is the LED D30 (green) ON? Is the debugger U34 (K65) physically on the board? Best regards, Julián
記事全体を表示
imx8mp using dual out, HDMI and LVDS Hi We need to use HDMI out and two LVDS out in parallel. HDMI via the normal hdmi dts instance and LVDS via two adv7393 connected to ldb lvds channel0 and channel1. With ldb lvds untouched, HDMI is working so far. Weston can start and use HDMI-A-1. Then, I enable one of the adv7393 by adding the endpoints in lvds-channel 0, port 1  and the hdmi part stops working and weston tells me, that there are no drm devices found. How are the ldb and hdmi connected to each other, that the influence each other? Any help is appreciated! Kind regards Thilo Re: imx8mp using dual out, HDMI and LVDS Hello, Could you share the BSP version that you are using? Also, are you using NXP EVK? Best regards/Saludos, Aldo. Re: imx8mp using dual out, HDMI and LVDS Hi Aldo We build our own image based on yocto scarthgap. The kernel is linux-imx-tq with our own dts as we run on our own hardware (which can be the problem of course too). meta-imx: scarthgap-6.6.52-2.2.2 meta-tq: scarthgap (latest) meta-freescale: scarthgap (latest) Our dts is based on the imx8mp-tqma8mpql-mba8mpxl.dts (as our hw uses the imx8mp SOM from TQ). So, no not NXP EVK. Could you still give me some hints? Kind regards Thilo Re: imx8mp using dual out, HDMI and LVDS Hello, Sure will try to help, could you share the device tree so I can take a look at it? Best regards/Saludos, Aldo. Re: imx8mp using dual out, HDMI and LVDS Hi Aldo here you are. Hopefully you see something. There is a hdmi_cam_mux and a hdmi_cam_video_mux (commented out) which was a try to mux the hdmi in and the camera. But this didn't work like this, as the imx8-media-dev.c:1041 expects the subdevs to be an i2c device but the video-mux isn't. If the rest would work, I don't know. Commenting this check out (easy test) did bring a kernel oops. So, not a good way. Cheers Thilo Re: imx8mp using dual out, HDMI and LVDS Hi Aldo My answer was regarding another thread which I mixed up, but the Dts is correct. Sorry for the confusion! Cheers, Thilo Re: imx8mp using dual out, HDMI and LVDS Hello, I was trying to find if the problem was a device tree issue, but couldn't find much about the bindings for the adv7393, so couldn't say for sure. I would suggest to try without the HDMI and see if the video encoder is detected by the system. Also, have you checked the dmesg? Is the encoder found and the driver working correctly? Finally regarding your initial question one could refer to the reference manual Figure 13-1. Display, Imaging, Camera I/F Diagram & Figure 13-4. MEDIAMIX Block Diagram Best regards/Saludos, Aldo. Re: imx8mp using dual out, HDMI and LVDS Hi Aldo so HDMI should not be related to the lvds out channels, when I interpret that overview correctly. Anyway, I'll try to disable hdmi related stuff and test if the lvds setup only is working. Here is a grep of ldb, adv73 and interconnect, as theses three are related as far as I understand. [root@vci ~]# dmesg | grep "ldb\|adv73\|interconnect" [ 0.069206] /ldb-display-controller/lvds-channel@0: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a30000/adv7393@2a [ 0.069265] /ldb-display-controller/lvds-channel@0: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e90000 [ 0.069342] /ldb-display-controller/lvds-channel@1: Fixed dependency cycle(s) with /soc@0/bus@30800000/i2c@30a20000/adv7393@2b [ 0.069392] /ldb-display-controller/lvds-channel@1: Fixed dependency cycle(s) with /soc@0/bus@32c00000/lcd-controller@32e90000 [ 1.522532] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with 32e90000.lcd-controller [ 1.532750] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with 32e90000.lcd-controller [ 2.009363] imx-bus-devfreq 32700000.interconnect: failed to fetch clk: -2 [ 2.016254] imx-bus-devfreq: probe of 32700000.interconnect failed with error -2 [ 2.322034] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with 0-002b [ 2.342605] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with 1-002a [ 2.384121] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with phy-lvds [ 2.393017] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with phy-lvds [ 8.633579] adv7393 0-002b: chip found @ 0x56 (30a20000.i2c) [ 8.669132] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with 0-002b [ 8.669387] adv7393 1-002a: chip found @ 0x54 (30a30000.i2c) [ 8.698574] imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with 1-002a Can the failed probe of the interconnect be the problem? I never touched the interconnect instance of the dtb, so I wonder how this can't work correctly? The "Failed to create device link" errors are obvious but I can tell what caused it. Could you tell me, what the cause can be for the "Failed to create device link" errors?  Cheers, Thilo Re: imx8mp using dual out, HDMI and LVDS Hi Aldo The "interconnect probe fail" is not the problem. I just added the opp table for it (which was a backport of a patch for a more current kernel). The final entry of interconnect node looks now something like this: https://github.com/torvalds/linux/blob/63804fed149a6750ffd28610c5c1c98cce6bd377/arch/arm64/boot/dts/freescale/imx8mp.dtsi#L1666 but the link failed 0x180 errors still occur? any idea where they originate from? Is it related to the problem, that the lcd-controller (lcdif2) can't link either? ldb-display-controller: Failed to create device link (0x180) with 32e90000.lcd-controller or the lvds phy? imx8mp-ldb ldb-display-controller: Failed to create device link (0x180) with phy-lvds But these are just enabled in my dts. Please any hint/help! Cheers Thilo Re: imx8mp using dual out, HDMI and LVDS Hi I enabled more and more debug output and getting theses messages now: > imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517 -517 is "deferred probe" lcd-controllers interrupt is from GIC_SPI. So how can't it get its irq? Can someone please shed some light here!? Cheers Thilo
記事全体を表示
IMX8MP - No audio during playback with SOF sound card Hi, I am trying to run playback using the SOF sound card on the IMX8M Plus EVK, but I am not able to hear any audio from the headphone jack. Here are the steps I am using to run the playback: Boot the device and interrupt to enter uboot Use "editenv fdtfile" and change the device tree name to "imx8mp-evk-sof-wm8960.dtb" Continue the boot Run "aplay -l" to obtain SOF sound card ID Run the following commands to initiate playback: amixer -c [sof_card_id] cset name="Left Output Mixer PCM Playback Switch" on amixer -c [sof_card_id] cset name="Right Output Mixer PCM Playback Switch" on aplay -Dhw:[sof_card_id],0 [path_to_wav_file] The wav file used in this case is 32 bit, 48Khz stereo. I see no error when running the playback command. I have also tried playing the same wav file using the default device tree and the wm8960 sound card, and I am able to hear the output. Please let me know what I can do to solve this issue. i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus Multimedia Re: IMX8MP - No audio during playback with SOF sound card Hi @aporter28  Did you refer this guide? SOF User Guide on NXP i.MX8 platforms — SOF Project 2.11.0 documentation Best Regards, Zhiming Re: IMX8MP - No audio during playback with SOF sound card That worked great, thanks! I am currently just exploring the capabilities of SOF on NXP boards. Re: IMX8MP - No audio during playback with SOF sound card Hello @aporter28 , On my setup the control you want to modify is named 'Headphone'. Assuming SOF card number is 0 please try this. amixer -c 0 sset Headphone 80% Also you can use the alsamixer TUI and modify the Headphone control Can you share with us what project are you working on with the Sound Open Firmware? 
記事全体を表示
连接 Jenkins 和 CodeWarrior 5.9.0 制作版本 你好。 我是使用 S912XET256 MCU 进行开发的开发人员。 我正在尝试连接 Jenkins 和 Codewarrior 5.9.0 IDE 来创建自动版本。 我知道在 Codewarrior 5.9.0 IDE 中按下 " make " 按钮会开始版本。 我知道生成的 *.s19 和 *.map 文件是在 bin 文件夹中创建的。 我正在创建一个 Build.bat 文件来连接 Jenkins。 我需要知道执行"make" 按钮的 *.exe 文件是什么。 期待您的回复。 谢谢! Re: Connecting Jenkins and Codewarrior 5.9.0 Make Build 我上传了一个 Jenkins 连接 bat 文件示例。请参考。 从 Codewarrior 5.9.0 开始,编译程序是 CmdIDE.exe。 S912XET256.bat @echooff setlocal enabledelayedexpansion set"CW_PATH=C:\Program Files (x86)\Freescale\CWS12v5.1\bin\CmdIDE.exe" set"PROJECT_ROOT=%~dp0..." set"MCP_FILE=%PROJECT_ROOT%\Project.mcp" echo [信息] 开始版本... echo [INFO] 使用 Force 版本 执行 cmDide... " %CW_PATH% " " %MCP_FILE% " /F /C /M /E /S 设置"BUILD_EXIT_CODE=%errorlevel%" echo [DEBUG] 搜索生成的 .s19files... dir /s"%PROJECT_ROOT% \*.s19" 如果 %BUILD_EXIT_CODE% neq 0( echo [错误] 版本失败,代码为 %BUILD_EXIT_CODE% exit /b %BUILD_EXIT_CODE% ) 退出 /b 0 谢谢。
記事全体を表示
Booting LS1046ardb From SD Card - CRC Error I've been following the read me on how to build a new image for the LS1046ardb from scratch and boot from an SD card.  The build finished without errors.  The flex-installer worked.  However, when I insert the SD card and try booting I get the following (see below).  It's the line that reads, "*** Warning - bad CRC, using default environment" that is concerning to me.  Does this imply that there is something wrong with the SD images and it has reverted to the EEPROM?  Everything boots and I can log into Linux but is it the SD Linux or the EEPROM Linux that I'm booting?  Note: If I remove the SD card there is no console output so I think I have the switches right.  NOTICE: 16 GB DDR4, 64-bit, CL=15, ECC on, CS0+CS1 NOTICE: BL2: v2.12.0(release):lf-6.12.49-2.2.0 NOTICE: BL2: Built : 10:13:07, Oct 17 2025 NOTICE: BL2: Booting BL31 NOTICE: BL31: v2.12.0(release):lf-6.12.49-2.2.0 NOTICE: BL31: Built : 10:13:07, Oct 17 2025 NOTICE: Welcome to ls1046ardb BL31 Phase U-Boot 2025.04-g4ddbad60eff3 (Nov 19 2025 - 07:56:58 +0000) SoC: LS1046AE Rev1.0 (0x87070010) Clock Configuration: CPU0(A72):1800 MHz CPU1(A72):1800 MHz CPU2(A72):1800 MHz CPU3(A72):1800 MHz Bus: 600 MHz DDR: 2100 MT/s FMAN: 700 MHz Reset Configuration Word (RCW): 00000000: 0c150012 0e000000 00000000 00000000 00000010: 11335559 40005012 60040000 c1000000 00000020: 00000000 00000000 00000000 00238800 00000030: 20124000 00003101 00000096 00000001 Model: LS1046A RDB Board Board: LS1046ARDB, boot from SD CPLD: V2.3 PCBA: V3.0 SERDES Reference Clocks: SD1_CLK1 = 156.25MHZ, SD1_CLK2 = 100.00MHZ DRAM: 15.9 GiB (DDR4, 64-bit, CL=15, ECC on) DDR Chip-Select Interleaving Mode: CS0+CS1 Using SERDES1 Protocol: 4403 (0x1133) Using SERDES2 Protocol: 21849 (0x5559) PCIe1: pcie@3400000 Root Complex: no link PCIe2: pcie@3500000 Root Complex: no link PCIe3: pcie@3600000 Root Complex: no link Core: 61 devices, 20 uclasses, devicetree: separate NAND: 512 MiB MMC: FSL_SDHC: 0 Loading Environment from MMC... Reading from MMC(0)... *** Warning - bad CRC, using default environment EEPROM: NXID v1 In: serial@21c0500 Out: serial@21c0500 Err: serial@21c0500 SEC0: RNG instantiated Net: MMC read: dev # 0, block # 18432, count 128 ... Fman1: Uploading microcode version 106.4.18 eth0: fm1-mac3, eth1: fm1-mac4, eth2: fm1-mac5, eth3: fm1-mac6, eth4: fm1-mac9, eth5: fm1-mac10 Hit any key to stop autoboot: 0 scanning bus for devices... SATA link 0 timeout. AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl SATA mode flags: 64bit ncq pm clo only pmp fbss pio slum part ccc apst Device 0: unknown device switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /ls1046ardb_boot.scr 965 bytes read in 1 ms (942.4 KiB/s) ## Executing script at 80000000 45853184 bytes read in 1905 ms (23 MiB/s) 31857 bytes read in 3 ms (10.1 MiB/s) ## Flattened Device Tree blob at 90000000 Booting using the fdt blob at 0x90000000 Working FDT set to 90000000 Loading Device Tree to 000000008ffe5000, end 000000008ffffc70 ... OK Working FDT set to 8ffe5000 WARNING failed to get smmu node: FDT_ERR_NOTFOUND WARNING failed to get smmu node: FDT_ERR_NOTFOUND ... Re: Booting LS1046ardb From SD Card - CRC Error Hello,  The switch configurations is correct, you can see this in your log file: Board: LS1046ARDB, boot from SD Please share the process you did follow to flash the image on the sd card. what images did you use, BSP version and the process to flash them.  Regards.  Re: Booting LS1046ardb From SD Card - CRC Error Here is a list of the commands that I used based on the readme: repo init -u https://github.com/nxp-qoriq/yocto-sdk -b walnascar repo sync --force-sync . ./setup-env -m ls1046ardb bitbake fsl-image-networking bitbake qoriq-composite-firmware bitbake generate-boottgz Then for the flex-installer: flex-installer -i pf -d /dev/mmcblk0 flex-installer -f firmware_ls1046ardb_uboot_sdboot.img -b boot_ls1046ardb_lts_6.12.tgz -r fsl-image-networking-ls1046ardb.rootfs.tar.gz -d /dev/mmcblk0 Re: Booting LS1046ardb From SD Card - CRC Error The latest one officially supported is mickledore, please try it by following the readme. https://github.com/nxp-imx/meta-nxp-desktop/blob/lf-6.1.55-2.2.0-mickledore/README.md 
記事全体を表示
使用 GPIO 引脚进行以太网物理 RESET 我正在尝试使用外部以太网,但我无法配置物理 RESET。作为一种解决方法,我已经实现了一个外壳脚本来切换phy-reset并重新启动imx93,在这种情况下,以太网可以正常工作。当我尝试在设备树中配置与物理RESET相同的 gpio(GPIO2_IO27)时,它不起作用。用示波器测量时,我没有看到引脚切换。我做错了什么?这是我的设备树的一部分 fecgrp { fsl、引脚 =<0xf8 0x2a8 0x00 0x00 0x00 0x57e 0xfc 0x2ac 0x00 0x00 0x00 0x57e 0x100 0x2b0 0x00 0x00 0x00 0x57e 0x104 0x2b4 0x00 0x00 0x00 0x57e 0xf4 0x2a4 0x00 0x00 0x00 0x58e 0xf0 0x2a0 0x00 0x00 0x00 0x57e 0xe4 0x294 0x00 0x00 0x00 0x57e 0xe0 0x290 0x00 0x00 0x00 0x57e 0xdc 0x28c 0x00 0x00 0x00 0x57e 0xd8 0x288 0x00 0x00 0x00 0x57e 0xec 0x29c 0x00 0x00 0x00 0x58e 0xe8 0x298 0x00 0x00 0x00 0x57e 0x7c 0x22c 0x00 0x00 0x00 0x91e> ; phandle =<0x3f> ; }; ethernet@42890000 { 兼容 ="fsl,imx93-fec","fsl,imx8mq-fec" ; reg =<0x42890000 0x10000> ; 中断 =<0x00 0xb3 0x04>,<0x00 0xb4 0x04>,<0x00 0xb5 0x04>,<0x00 0xb6 0x04> ; clocks =<0x07 0xb6>,<0x07 0xb6>,<0x07 0x5d>,<0x07 0x5f>,<0x07 0x60> ; clock-names ="ipg","ahb","ptp","enet_clk_ref","enet_out" ; status ="okay" ; pinctrl-names ="默认" ; pinctrl-0 =<0x3f> ; phy-mode ="rgmii-id" ; phy-handle =<0x40> ; };   ethernet@428a0000 { compatible ="nxp,imx93-dwmac-eqos\0snps,dwmac-5.10a" ; reg =<0x428a0000 0x10000> ; 中断 =<0x00 0xb8 0x04 0x00 0xb7 0x04> ; 中断名 ="macirq\0eth_wake_irq" ; 时钟 =<0x07 0xb7 0x07 0xb7 0x07 0x5e 0x07 0x5c 0x07 0xb7> ; clock-names ="stmmaceth\0pclk\0ptp_ref\0tx\0mem" ; 分配的时钟 =<0x07 0x5e 0x07 0x5c> ; assigned-clock-parents =<0x07 0x06 0x07 0x04> ; 分配的时钟频率 =<0x5f5e100 0xee6b280> ; intf_mode =<0x27 0x28> ; snps,clk-csr =<0x05> ; nvmem-cells =<0x42> ; nvmem-cell-names ="mac-address" ; status ="okay" ; pinctrl-names ="默认" ; pinctrl-0 =<0x43> ; phy-mode ="rgmii" ; phy-handle =<0x44> ; phandle =<0xb3> ;   mdio { compatible ="snps,dwmac-mdio" ; #address-cells =<0x01> ; #size-cells =<0x00> ; 时钟频率 =<0xf4240> ;   ethernet-phy@0 { 兼容 ="ethernet-phy-ieee802.3-c22" ; reg =<0x00> ; eee-broken-1000t; reset-gpios = <0x13 0x07 0x01>; reset-assert-us = <0x2710>; reset-deassert-us = <0x186a0>; mxl-8611x,led0_cfg =<0x2600> ; mxl-8611x,led1_cfg =<0x70> ; phandle =<0x44> ; };   ethernet-phy@5 { 兼容 ="ethernet-phy-ieee802.3-c22" ; reg =<0x05> ; reset-gpios = <0x15 0x1b 0x01>; reset-assert-us = <0x2710>; reset-deassert-us = <0x13880>; phandle =<0x40> ; }; }; };   Re: ethernet phy-reset using GPIO pin 你好,@Chavira、 我使用的是 Variscite 的 VAR-SOM-MX93。我不知道到底运行的是什么版本的电路板支持包。 我正在附上设备树;它是从 Variscite 原始设备树中自定义的。 Re: ethernet phy-reset using GPIO pin 你好,@Eduardo-S-Oliveira、 感谢您联系恩智浦支持中心! 能否请您提供以下信息,以便我们更好地分析问题? 你正在使用哪个电路板支持包 版本? 你能分享你的设备树文件吗? 这些信息将帮助我们重现设置并更有效地调查问题。 致以最崇高的敬意, Chavira Re: ethernet phy-reset using GPIO pin 你好,@Eduardo-S-Oliveira、 查看设备树后,配置本身看起来正确;但是,PHY RESET GPIO 当前配置为高电平有效。 在节点 ethernet-phy@5 中,您有 reset-gpios = <0x15 0x1b 0x00>; 第三个值 (0x00) 表示 GPIO_ACTIVE_HIGH,这意味着当 GPIO 被驱动到高电平时,RESET信号会被钳位。 如果您的硬件预计 PHY RESET 处于低电平状态,则应将此行更改为: reset-gpios = <0x15 0x1b 0x01>; 这会将复位 GPIO 设置为 GPIO_ACTIVE_LOW,因此当信号处于低电平时,将钳位 RESET。 你期望在 PHY 方面出现什么 RESET 行为? 最诚挚的问候, 查维拉
記事全体を表示
s32k312 int sram' 溢出了 8 字节 亲爱的恩智浦工程师 在我使用 S32K312 期间,当我尝试增加全局变量时,S32DS 在编译后报告了一个 " int SRAM 溢出 8 字节 " 错误。我已经上传了地图和链接文件。能否请您帮忙分析一下这个问题?谢谢。 Re: s32k312 int sram' overflowed by 8 bytes 你好,@fengba_360、 这仅仅意味着您使用的 sram 超过了链接器文件中声明的 64KB。你可以尝试缩小堆,将全局变量、不可缓存变量和可共享变量移出 sram,或者改用闪存。 请检查项目编译的地图文件,并根据程序的大小调整链接文件。有关定义和建议,您可以参考社区的一些旧帖子: 无法增加 s32 中的堆大小 - NXP Community 调整 S32K312 的 int_sram 内存分配 致以最诚挚的问候, Julián
記事全体を表示
MM9z1J638D PTBxによる時間指定ウェイクアップは1回のみ機能します こんにちは、 PTB1 で時間指定ウェイクアップ機能を動作させることができました。しかし、PTB1 から起動するのは 1 回だけです。最初のウェイクアップ後はすべて正常に動作しているようで、LIN とアプリケーション コードは問題なく実行されています。 2回目にスリープモードに入ると、MCUは理解できない別の状態になるようです 電流消費は、電流が基本的にゼロになる最初のスリープ時とは異なり、通常動作時よりわずかに減少します。 デバッガーが接続を失い、再接続できない MCU が保護されます。 この状態から抜け出す唯一の方法は、電源を入れ直すことです。 もう 1 つの観察結果は、ウェイクアップが LIN によってトリガーされる場合、複数回ウェイクアップしても問題はないと思われることです。ウェイクアップが時間指定ウェイクアップ PTB1 によってトリガーされた場合にのみ、問題が発生します。 これが私のスリープモードの設定です #define Wakeup_counter (unsigned int) 10*1000 // counter value in terms of ALFCLK (1ms by default) char Wakeup_counter_hi = (char) ((Wakeup_counter & 0xFF00U) >> 8); // get the high byte char Wakeup_counter_lo = (char) ((Wakeup_counter & 0x00FFU) >> 0); // get the low byte void Handle_SleepRequest() { ....... // save parameters to EEPROM RTIDisable(); ADCDisable(); TsenseDisable(); B_GPIO_VSENSE = 0; l_sys_irq_disable(BSC2_Node1); // only SCI!!! B_TIE_C3I = 0; // LIN timer interrupt disabled IrqDisable(); B_GPIO_IN1_TCAP1 = 0; // PTB1 input buffer disconnected from Timer channel 1 - input capture B_GPIO_OUT1_TCOMP1 = 1; // Timer channel 1 - output compare connected to PTB1 output buffer OR gate (needs to be configured to allow OC to generate a system wakeup) B_GPIO_CTL |= B_GPIO_CTL_DIR1_MASK | B_GPIO_CTL_DIR1M_MASK; // set PTB1 to output B_GPIO_CTL |= 0|B_GPIO_CTL_PE1M_MASK; // PTB1 I/O to high impedance mode so that it's not connected to outside of MCU // force internal PTB1 to low B_TSCR1_TEN = 1; B_TCTL1 = B_TCTL1_OM1_MASK; // clear on OC B_CFORC_FOC1 = 1; // force OC to clear because TCTL1 set to clear on OC B_TSCR1_TEN = 0; // disable the timer to setup timer B_TCNT = 0x0000U; // reset counter B_TIOS_IOS1 = 1; // Timer channel 1 acts as an output compare to allow TC1 write /*Timer clock selection to be Timerclk/1 see table 647*/ B_TSCR2_PR0 = 0; B_TSCR2_PR1 = 0; B_TSCR2_PR2 = 0; B_TSCR2_TCRE = 0; //Inhibits timer counter reset and couter continuews to run // setup a rising edge on hitting the OC B_TCTL1 = B_TCTL1_OM1_MASK | B_TCTL1_OL1_MASK; // configure to be set on OC B_TC1Hi = Wakeup_counter_hi; // compare register needs to write the high byte before low byte B_TC1Lo = Wakeup_counter_lo; B_TFLG1_C1F = 1; // enable Timer channel 1 to cause a hardware interrupt ADCLpEnable(); B_PCR_WUEH_WUPTB1 = 1; // enable PTB1 as the internal timed wake up source PCREnterSleepMode(); while(1) DO_NOTHING; // should not reach here } 私のウェイクアップ処理関数 void Wakeup_Process(void){ if (B_PCR_CTL_OPM & 2) { // Check if Wake Up from Sleep mode (see page RM3.0 110 Intermediate Mode) B_PCR_CTL = OPM_SET_NORMAL; // set normal mode while (!(B_PCR_SRH_WLPMF )) DO_NOTHING; // Wait for Clock Domain Change } else{ if(!B_PCR_SR_HWRF) { PCRReset(); } } } メイン関数 void main () { SYS_Init(); CPMUInit(&ClockConf); D2DInit((TYPE_D2DCLKDIV) ClockConf.D2dDiv); XirqEnable(); // enable XIRQ -> isrD2DErr() "write-once" Wakeup_Process(); // Process wakeup event to bring CPU to normal if it is waken up B_WD_CTL = WD_OFF; PCRInit(ClockConf.PCRprescaler); SYSStartupTrimming(); ADCInit(); GPIOInit(); RTIInit(); RTIEnable(); IrqEnable(); EEPROM_Init(0x05);// 6.25MHz busclk ReadEEPROM(); for EVER { ...... // main application loop if (SleepRequested){Handle_SleepRequest();} } } ご協力に感謝します。 Re: MM9z1J638D Timed wakeup by PTBx only works for once これらはPCREnterSleepMode()関数ですでにクリアされています。 void PCREnterSleepMode_SMP(void){ IrqDisable(); B_INT_MSK = 0xFF3F; // Mask Analog Interrupts B_ACQ_SRH = 0xFF; // Clear pending Flags B_INT_MSK = 0xFF00; // Enable Analog Int B_PCR_SR = 0xFFFF; // Clear Flags B_TFLG1 = 0xFF; // Clear timer interrupt flag1 B_PCR_CTL = OPM_SET_SLEEP; // Goto Sleep Mode StopEnable(); StopEnter(); } しかし、問題点は分かったと思います。ウェイクアップが発生するたびに実行されるデコンディショニング関数があり、カウンター OC をリセットしたり、GPIO 構成を逆にするなど、ウェイクアップ ソースの PTB1 を構成するのとは逆に PTB1 構成を逆にします。しかし、問題は、レジスタが更新されたかどうかを確認するための while ループを配置しない限り、リセットが登録されないということのようです。たとえば、while ループを配置しないと、デコンディショニング関数で TC1 を 0x0000 に設定しているにもかかわらず、TC1 カウンターはスリープ状態になる前に設定した期間を保持し続けます。 レジスタがリセットされていることを確認するための while ループ チェックを追加したので、ウェイクアップは正常に機能し、毎回成功します。 void PTB1_WU_Decondition(allow_Continue){ /* Configure port before enable it*/ B_GPIO_IN1_TCAP1 = 0; // PTB1 input buffer disconnected from Timer channel 1 - input capture // B_GPIO_IN1_TCAP1 = 1; // PTB1 input buffer disconnected from Timer channel 1 - input capture B_GPIO_OUT1_TCOMP1 = 0; // Timer channel 1 - output compare connected to PTB1 output buffer OR gate (needs to be configured to allow OC to generate a system wakeup) B_GPIO_CTL |= 0 | B_GPIO_CTL_DIR1M_MASK; // set PTB1 to output // B_GPIO_CTL |= 0 | B_GPIO_CTL_DIR1M_MASK; // set PTB1 to input // B_GPIO_CTL |= B_GPIO_CTL_PE1_MASK|B_GPIO_CTL_PE1M_MASK; // PTB1 I/O enable mask enabled PTB1 enabled (not seem necessary due to figure 33.) B_GPIO_CTL |= 0|B_GPIO_CTL_PE1M_MASK; // PTB1 I/O to high impedance mode so that it's not connected to outside of MCU B_TIOS_IOS1 = 0; // Timer channel 1 disabled /* Timer clock selection to be Timerclk/1 see table 647*/ B_TSCR2_PR0 = 0; B_TSCR2_PR1 = 0; B_TSCR2_PR2 = 0; B_TSCR2_TCRE = 0; //Inhibits timer counter reset and couter continuews to run // setup a rising edge on hitting the OC B_TSCR1_TEN = 1; // enable the timer to reset TC1 B_TC1Hi = 0x00U; // compare register needs to write the high byte before low byte B_TC1Lo = 0x00U; B_TSCR1_TEN = 0; // disable the timer B_TFLG1_C1F = 1; // clear timer 1 flag while(B_TFLG1_C1F != 0 && B_TC1 != 0x0000U || allow_Continue){}; // MUST WAIT otherwise, the settings don't register B_PCR_WUEH_WUPTB1 = 0; // disable PTB1 as the internal timed wake up source } Re: MM9z1J638D Timed wakeup by PTBx only works for once こんにちは@WWsmp 、 書き込み後の読み取りシーケンスは良い方法です。 関数を再配置すれば、待機ループなしでも成功するでしょうか? B_GPIO_OUT1_TCOMP1 = 0;// Detach OC from PTB1 B_GPIO_IN1_TCAP1= 0;// No capture routing B_GPIO_CTL|= B_GPIO_CTL_DIR1M_MASK;// Internal buffer direction benign B_GPIO_CTL|= B_GPIO_CTL_PE1M_MASK;// High impedance to outside B_TSCR1_TEN= 0;// Stop counter B_TIOS_IOS1= 1;// Channel 1 acts as Output Compare B_TCTL1&= ~(B_TCTL1_OM1_MASK | B_TCTL1_OL1_MASK);// No OC action B_TSCR2_PR0 = 0; B_TSCR2_PR1 = 0; B_TSCR2_PR2 = 0; B_TFLG1_C1F= 1;// write-1-to-clear B_TCNT= 0x0000U;// ensure counter starts from 0 B_TC1Hi= 0x00U;// high byte first B_TC1Lo= 0x00U; B_TSCR1_TEN= 1; B_PCR_WUEH_WUPTB1 = 0; Re: MM9z1J638D Timed wakeup by PTBx only works for once こんにちは@danielmartynek 、 修正したと思いましたが、実際には 100% 機能していません。問題はまだ解決していませんが、while ループを追加したため、状況が変わりました。MCU を一貫してスリープ状態にして起動することができているように見えましたが、PCRReset() は何らかの理由でトリガーされましたが、それはアプリケーションからではありませんでした。PCRReset() は isrD2DErr() によってトリガーされます。 /*! \brief Interrupt Service Routine for D2D error interrupts. * * Interrupts are caused by errors detected by the D2D Initiator (uC side) * during D2D transferes. This error is critical NMI and you need to have the * CCR X-bit cleared */ interrupt VectorNumber_Vd2di_err void isrD2DErr(void) { while(1) { if(D2DSTAT0_ERRIF) { D2DSTAT0_ERRIF = 1; // clear flag }else{ PCRReset(); // issue an analog die reset } } } 私がそれをどのように実現したかというと、ウェイクアップ理由とリセット理由を保存する変数があるということです。通常、PTB1 から起動すると、B_PCR_SRL_WUPTB1F が 1 に設定され、B_PCR_SRH_HVRF が 1 に設定されます。しかし、「修正」後、B_PCR_SRH_HVRF、B_PCR_SRH_WDRF、および B_PCR_SRH_HWRF がすべて 1 に設定され、WU ビットが設定されていないことに気付きました。これは PCRReset() と呼ぶ動作に似ています。そして、D2D エラーまで追跡しました。 このエラーを引き起こす可能性がある具体的な理由はありますか? Re: MM9z1J638D Timed wakeup by PTBx only works for once こんにちは@WWsmp 、 開発チームとの議論を開始させてください。 少し時間がかかるかもしれません。 ありがとうございました。 ダニエル Re: MM9z1J638D Timed wakeup by PTBx only works for once こんにちは@WWsmp 、 投稿したコードには問題は見つかりませんでした。 以下は、isrD2Derr エラーの考えられる原因です。isrD2Derr は、アナログ ダイと MCU (S12Z) ダイ間のダイ間 (D2D) インターフェースでエラーが検出されたことを示します。エラーは、電気、タイミング、電源、モード制御、またはソフトウェアの問題によって発生する可能性があります。 電源関連の問題 VDDH / VDDD2D(2.5 V D2D電源)の不安定性 電圧低下、リップル、または不十分なデカップリングにより、D2D 信号が破損する可能性があります。 多くの場合、パリティ エラーまたは確認応答エラーが発生します。 供給順序の問題 一方のダイがもう一方のダイよりも早く動作可能になります。 D2D アクセスは、ターゲット ダイがまだリセットまたはブラウンアウト状態の間に発生します。 クランキングまたはVSUP低電圧 オートモーティブ クランキング中、一方のダイがリセットまたは保持状態になり、もう一方のダイが動作を継続する場合があります。 タイムアウト エラーが発生します。 時計とタイミングの問題 D2Dクロックの不安定性 PLL ロック解除、IRC ドリフト、またはクロック モニター イベントにより、D2D タイミングが壊れる可能性があります。 過剰なD2Dクロック周波数マージン 最大 D2D 周波数に近い値で実行すると、ノイズ マージンが減少します。 EMC と温度に対してより敏感です。 クロックドメインの不一致 一方のダイのクロックがゲートまたは遅くなる一方で、もう一方は D2D トランザクションの発行を継続します。 リセットおよび電源モード同期エラー ダイ間の非同期リセット アナログダイがアクティブな間、MCU はリセットされます (またはその逆)。 このウィンドウ中に D2D アクセスが発生すると、タイムアウトまたは ACK エラーが発生します。 停止/スリープモードの不一致 アナログ ダイが NORMAL モードのままである間、MCU は STOP/SLEEP に入ります。 ターゲット ダイ クロックがゲートされている間に D2D アクセスが試行されました。 不適切なウェイクアップシーケンス ターゲットダイが低電力モードを完全に終了する前に発行された D2D トランザクション。 D2Dプロトコル/トランザクションタイミングの問題 サービスの遅延によるタイムアウト 長い割り込みマスクまたはクリティカルセクションは D2D サービスをブロックします。 ISR 負荷が高い、またはプリエンプティブでないコード パスが長い。 過剰なバーストアクセス 間隔を空けずに、D2D レジスタの読み取り/書き込みを大規模または高速に実行するシーケンス。 内部サービスのレイテンシを超える可能性があります。 無効または不正なD2Dアクセス マップされていない、または制限されている D2D レジスタ ウィンドウへのアクセス。 トランザクションのサイズまたはシーケンスが正しくありません。 ソフトウェアの初期化と構成エラー スタートアップトリミングが正しく実行されません 起動時に IFR 値がコピーされません。 クロック/リファレンス ドリフトが発生し、ビット エラーの確率が高くなります。 不適切なD2D初期化順序 クロック、電源ドメイン、またはエラー フラグが完全にクリアされる前に使用される D2D。 競合する構成モード 自動温度ゲイン補正 (ATGCE) は、キャリブレーション要求割り込みとともに有効になります。 過剰な D2D トラフィックと競合が発生します。 EMC、ノイズ、環境ストレス EMI / ESD障害 高速過渡現象により D2D データ ビットが反転し、パリティ エラーが発生する可能性があります。 ISO 7637‑2 パルス テスト中によく使用されます。 グランドバウンスまたは接地不良 高電流の共有リターンパス (シャント、LIN、CAN)。 D2D 信号の整合性に影響します。 高温または温度勾配 クロックのドリフトとレギュレータのディレーティングにより、タイミング マージン違反が増加します。 レイアウトとハードウェア実装の問題 VDDH/VDDD2Dピン付近のデカップリングが不十分 アナログ、デジタル、高電流パス間の分離が不十分 リファレンス・デザインの逸脱 NXP リファレンス デザインと比較して、フィルタリング コンポーネントが欠落しているか変更されています。 BR、ダニエル
記事全体を表示