Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
SDK示例闪存和LWIP硬故障 你好, 当我将两个 SDK 示例“frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33”和“frdmimxrt1186_flexspi_nor_polling_transfer_cm33”组合在一起时,执行函数“FLEXSPI_SoftwareReset(base);”后最终导致硬故障。我还注意到“基址”0x445E0000 发生了变化。我使用的是 FRDM-RT1186 EVA 套件。造成这种情况的原因可能是什么? 我使用的是 MCUXpressoIDE_25.6.136。 感谢您的反馈。 Re: SDK example flash and LWIP hard-fault 嗨,Pablo, 感谢您与我联系。 我使用的是 SDK 26.03.00 (928 2026-03 , 清单版本 3.15.0 )。 我以“frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33”开始。 这种情况经常发生,没有特定条件。 我从示例“frdmimxrt1186_flexspi_nor_polling_transfer_cm33”中导入文件; board/hardware_init_Flash.c drivers/fsl_flexspi.c drivers/fsl_flexspi.h source/appFlash/flexspi_nor_flash_ops.c source/appFlash/flexspi_nor_polling_transfer.c board/app.h// 这包含 app.h source/lwip_ipv4_ipv6_echo_freertos.c // 这包含两个函数调用: int main(void) { BOARD_InitHardware(); BOARD_InitHardware_Flash(); main_Flash(); void BOARD_InitHardware_Flash(void) { BOARD_CommonSetting(); // BOARD_ConfigMPU(); // bord.c= identisch mit Lwip prj // BOARD_InitBootPins(); // pin_mux.c"" BOARD_InitFLASHPins(); // BOARD_InitBootClocks(); // clock_config.c"" // BOARD_InitDebugConsole(); // board.c"" } int main_Flash(void) { uint32_t i = 0; status_t status; uint8_t vendorID = 0; // BOARD_InitHardware_Flash(); ... 返回 1; /* 当(1) { } */ } 我想就是这样了。 提前谢谢您。 格尔德 Re: SDK example flash and LWIP hard-fault 嗨@GerdMartin , 请问您能否详细说明一下您是如何将这两个 SDK 示例结合起来的? 做了哪些改动? 你以哪个例子作为出发点? 您目前使用的是哪个SDK版本? 另外,您提到在执行 FLEXSPI_SoftwareReset(base) 后最终会发生硬故障。每次调用该函数时都会发生这种情况,还是只在特定条件下才会发生? 此致, 巴勃罗
記事全体を表示
i.MX6ULL REFTOP_VBGADJが内部PLLおよびクロック出力に与える影響 皆さん、こんにちは、/ 親愛なるコミュニティの皆さん、 私たちは製品でi.MX6ULLを使用しており、REFTOP_VBGADJの挙動について明確にしたいと思います。 問題と解決策: 以前、弊社基板上でUSBデバイスの認識エラーが発生したことがありました。CCM_ANALOG_MISC0nレジスタのREFTOP_VBGADJをデフォルト値(0b000)から0b110に変更することで、問題は正常に解決しました。 質問: お客様は、REFTOP_VBGADJを改造することでi.MX6ULLの内部PLLやクロック出力に副作用があるかどうか尋ねました。 この設定がPLL/クロック回路に影響を与えるのか、どなたか説明してもらえますか?もしそうなら、アナログの挙動にどのような具体的な影響や変化が期待できるのでしょうか? 何か洞察やドキュメントの参考資料があれば大変ありがたいです。 前もって感謝します、 Re: Impact of i.MX6ULL REFTOP_VBGADJ on Internal PLL and Clock Output こんにちは、 @Ichitaro_K さん。 i.MX6ULLでは、LDOの1.2Vバンドギャップ電圧が30mV高くなっています。したがって、調整するには REFTOP_VBGADJ (CCM_ANALOG_MISC0n レジスタ) ビットを 2b'110 に設定する必要があります。そして、PLLには影響を与えません。 B.R
記事全体を表示
NXP S32M276CHABMKHSR Structure question Hi NXP technician, This is Ted from Melecs Wuxi, nice to contact you. I have one question about the structure of S32M276 IC. ( pls. refer to the attached file: Schematic- S32M276). I did the design as datasheet recommendation, connect the 9pin-VDD_AE10, 12pin,25pin,37pin-VDD_HV_A together with beads. from my understanding, 9pin-VDD_AE10 P5V output voltage is generated by internal regulator, then supply the MCU-die on VDD_HV_A pin. But I removed L300, and after that, the PCBA could still working as normal. So my question is that the VDD_AE10 pin and VDD_HV_A pin are internally connected together?  Otherwise, after removing L300 system still work, which does not make sense.. Re: NXP S32M276CHABMKHSR Structure question Hi Ted, When L300 is removed, what voltage do you measure on VDD_HV_A? The MCU-side power supply domain VDD_HV_A is likely powered through the GPIOs that are shared between the MCU and the AE side, because all GPIOs are clamped to VDD_HV_A. In other words, VDD_HV_A can be powered through any pin if the voltage on that pin is greater than VDD_HV_A. You should therefore measure approximately VDD_HV_A = VDD_AE10 - Vf, not VDD_HV_A = VDD_AE10. Thank you, BR, Daniel Re: NXP S32M276CHABMKHSR Structure question Hi Daniel, Thanks for your reply. 1, So it means that the VDD_AE10 and VDD_HV_A are internally connected? And I could not understand the meaning of this sentence [And you should measure VDD_AE10 - Vf on VDD_HV_A - this can damage the device.] If you could give me some more explanation. Re: NXP S32M276CHABMKHSR Structure question Hi Ted, The AE die generates VDD_AE10. On the AE side, VDD_AE10 is the power supply of the AE ports, all the ports are clamped to VDD_AE10. On the MCU side, VDD_HV_A is the power supply of the MCU ports, all the ports are clamped to VDD_HV_A. These two dies are interconnected. If the input voltage on any MCU port is higher than VDD_HV_A + Vf of the clamp, the VDD_HV_A domain is going to be powered by the injected current. And you should measure VDD_AE10 - Vf on VDD_HV_A - this can damage the device. Regards, Daniel Re: NXP S32M276CHABMKHSR Structure question Hi Daniel, Thanks for your reply. When L300 is removed, I measured 4.98V on VDD_HV_A, while VDD_AE10 = 5.02V; So could I say like that VDD_HV_A and VDD_AE10 are internally connected. And should connect them together to make low impedance. 
記事全体を表示
SDK example flash and LWIP hard-fault Hi,  When I combine the two SDK examples “frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33” and “frdmimxrt1186_flexspi_nor_polling_transfer_cm33,” I eventually get a hard fault after executing the function “ FLEXSPI_SoftwareReset(base);” eventually results in a hard fault. I also notice that the “base” address 0x445E0000 changes. I'm using the FRDM-RT1186 EVA kit. What could be causing this? I'm using MCUXpressoIDE_25.6.136. Thank´s for feedback. Re: SDK example flash and LWIP hard-fault Hi Pablo, thank´s to go in contact with me. I use SDK 26.03.00 (928 2026-03 , Manifest Version 3.15.0 I start with "frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33". This happens consistensly, no specific conditions. I import the files from the example "frdmimxrt1186_flexspi_nor_polling_transfer_cm33" board/hardware_init_Flash.c drivers/fsl_flexspi.c drivers/fsl_flexspi.h source/appFlash/flexspi_nor_flash_ops.c source/appFlash/flexspi_nor_polling_transfer.c board/app.h  // this containes both app.h source/lwip_ipv4_ipv6_echo_freertos.c  // this includes two function-calls: int main(void) { BOARD_InitHardware(); BOARD_InitHardware_Flash(); main_Flash(); void BOARD_InitHardware_Flash(void) { BOARD_CommonSetting(); // BOARD_ConfigMPU(); // bord.c = identisch mit Lwip prj // BOARD_InitBootPins(); // pin_mux.c "" BOARD_InitFLASHPins(); // BOARD_InitBootClocks(); // clock_config.c "" // BOARD_InitDebugConsole(); // board.c "" } int main_Flash(void) { uint32_t i = 0; status_t status; uint8_t vendorID = 0; // BOARD_InitHardware_Flash(); ... return 1; /* while (1) { } */ } I think that's it. Thank you in advance. Gerd Re: SDK example flash and LWIP hard-fault Hi @GerdMartin, Could you please provide more details about how you combined the two SDK examples? What changes were made? Which example did you use as the starting point? Which SDK version are you currently using? Also, you mentioned that a hard fault eventually occurs after executing FLEXSPI_SoftwareReset(base);. Does this happen consistently every time the function is called, or only under specific conditions? Best Regards, Pablo
記事全体を表示
LPC55S69:尽管 CPBOOT/CPUCTRL/CPUCFG 序列已完全验证,但核心 1 始终无法启动。 LPC55S69:尽管启动序列已完全验证,但核心 1 始终无法开始执行(MCMGR 和手动写入寄存器均失败,结果相同)。 环境 电路板:LPC55S69-EVK (LPCXpresso55S69)、LPC55S69JBD100 IDE :MCUXpresso IDE v25.6 [版本 136] [2025-06-27] 操作系统:Linux(openSUSE) 工具链:GNU ARM Embedded(捆绑式),GCC 14.2.1 调试探针:板载 LPC-Link2,LinkServer 后端 使用的SDK元器件:driver.flexcomm司机邮箱,中间件.多核.mcmgr_lpc55s69,freertos_kernel + cm33_non_trustzone_port(仅限主节点) 摘要 核心 0(主节点,cm33_core0)运行正常。尽管在两个独立的洁净室项目版本中(一个是手写的寄存器序列,一个是使用 NXP 自己的 MCMGR 中间件),启动序列的每个元素在寄存器和内存级别上都经过独立验证,但核心 1(从机,cm33_core1,角色 M33SLAVE)似乎从未执行过它自己的 main() 函数的第一条指令。两次尝试都以同样的死胡同告终。 经独立核实属实 尝试 1 — 手写启动序列 SYSCON>CPBOOT 设置为嵌入式从映像的真实、链接器确认的地址(通过 objdump -h 部分 VMA 验证,并与 nm 符号地址交叉检查——不是解析为 0x0 的符号,而是实际的非零嵌入位置) SYSCON->CPUCTRL 在释放写入后立即读取为 0x08(CPU1CLKEN 位 3 置位,CPU1RSTEN 位 5 置位),以带内方式捕获(由执行写入的同一函数写入共享内存,而不是稍后通过可能过时的调试器会话读取)。 SYSCON>CPUCFG 位 2(CPU1ENABLE)已确认设置(0x04) 已确认启动地址处的向量表经独立验证有效:初始堆栈指针计算正确(位于 Core 1 重定位的 SRAM 区域的顶部),复位向量地址与 nm 中的实际 ResetISR 符号匹配(通过反汇编目标地址并找到真正的、合理的 Cortex-M 启动代码来确认:cpsid i → SystemInit() → data_init/bss_init 循环 → cpsie i → __main → _initio → 应用程序 main()) 已确认共享内存结构在两个核心独立编译的 .map 文件中解析到相同的物理地址。文件 已确认 Core 1 的私有 SRAM/堆栈区域与 Core 0 的私有 SRAM/堆栈区域不重叠(已迁移到单独的物理 SRAM 存储体)。 已确认嵌入式从镜像的 .data 文件。部分(非零初始化的全局变量)不会进入核心 0 的活动内存(需要使用 INSERT BEFORE .data 的自定义链接器脚本片段)。由于默认链接器脚本没有针对 objcopy 重命名的多核段的放置规则,否则它会作为“孤立段”落入核心 0 的 SRAM 中。 尽管如此,Core 1 的 main() 函数第一行写入的诊断值(已确认内存共享且寻址正确)始终与其初始值保持原样。 第二次尝试——使用 NXP 的 mcmgr_lpc55s69 中间件的新项目 为了排除我们自己的寄存器序列出现错误的可能性,我们使用 MCMGR_Init() / MCMGR_StartCore() / MCMGR_TriggerEvent() 从头开始重建,而不是手动写入寄存器。 直接阅读 mcmgr_internal_core_api_lpc55s69.c:确认 mcmgr_start_core_internal() 执行相同的 CPUCFG → CPBOOT → CPUCTRL 序列,使用正确的 SDK 宏(SYSCON_CPUCTRL_CPU1RSTEN_MASK 等)。 发现 MCMGR_Init()(从 main() 调用)不会调用 MCMGR_EarlyInit() / mcmgr_early_init_internal()。后者是一个单独的公共函数,其源代码注释表明它“旨在尽可能靠近 RESET 入口调用(在 SystemInitHook 的启动序列中)” ——但生成的项目中没有任何东西会自动将其连接起来。SystemInitHook() 在通用设备启动文件中为 __attribute__((弱)),默认为空存根。 在两个核心上添加了我们自己的 SystemInitHook() 重写,调用 mcmgr_early_init_internal(MCMGR_GetCurrentCore())。已通过 .map 确认此覆盖文件在两个项目中都真正链接到真正的函数(而不是短截线)。 重新应用并重新确认了第一次尝试中的所有修复(迭代重建中的嵌入地址稳定性、.data)。(通过相同的链接器片段技术进行段重定向,核心 1 SRAM 重定位,CPUCFG/CPBOOT/CPUCTRL 寄存器值均与第一次尝试的结果相同) 默认情况下,MCMGR_BUSY_POLL_COUNT 未定义,因此 mcmgr.c 中的 MCMGR_StartCore(..., kMCMGR_Start_Synchronous) 会阻塞,且没有任何超时设置。内部等待循环(当(s_mcmgrCoresContext[coreNum].state)!= kMCMGR_RunningCoreState)),已通过直接阅读 mcmgr.h 中宏的条件编译来确认。 结果:结果相同。核心 0 永远阻塞在 MCMGR_StartCore() 中。诊断共享内存值(已确认两个核心的 .map 文件中地址相同)文件位于真正共享的 SRAM 库中,.noinit因此不受 C 运行时初始化的影响)实际上写成 Core 1 的 main() 的第一个可执行行,永远不会离开其初始值 0。 问题 给定 CPUCFG、CPBOOT 和 CPUCTRL 都完全按照参考实现 (mcmgr_internal_core_api_lpc55s69.c) 读取。意图是,并且独立确认启动地址处的嵌入式映像是一个有效的、正确链接的 Cortex-M 二进制文件——是否还需要额外的步骤才能真正开始 Core 1 在此部分上的指令获取,而这三个寄存器写入操作本身无法捕获该步骤? 具体来说: LPC55S69(任何版本)是否存在已知的影响基于 CPBOOT/CPUCTRL 的辅助核心启动的硅缺陷? 除了应用程序级寄存器序列之外,启动 Core 1 是否真的需要调试探测级别的操作(例如,专门针对该部件上枚举的第二个 SWD 设备的 SWD 连接/恢复)?NXP 自己的多核 SDK 示例(例如,当通过 IDE 的正常单项目“调试”流程进行调试时,freertos_message_buffers_secondary_core) 似乎可以成功启动 Core 1,而无需单独的启动组配置——这意味着 MCUXpresso 的调试启动本身可能执行了应用程序代码本身无法触发的额外步骤。 这三个写入操作之间是否存在参考文件 mcmgr_internal_core_api_lpc55s69.c 中未反映的最小延迟、顺序约束或额外寄存器(例如,电源/时钟域中的寄存器)要求?执行? 乐意提供完整的项目文件,.map 文件。文件,或根据要求提供最小复现项目。 LPC55xx Re: LPC55S69: Core 1 never starts despite fully verified CPBOOT/CPUCTRL/CPUCFG sequence 问题已解决——根本原因是我的诊断出现误报,而非 Core 1 启动失败。 把解决方法贴出来,以防以后有人遇到类似症状并找到这个帖子。 真正的根本原因 在本项目的每个版本中,核心 1 都始终能够正常启动和运行。问题从来不在于 CPUCFG/CPBOOT/CPUCTRL、向量表、内存放置或启动序列中的任何其他内容——而是我自己的诊断工具中的一个错误,导致看起来Core 1 从未执行任何操作。 我使用了一个小型共享内存结构体(通过 __attribute__((section(".noinit.$SRAM4")))) 放置)由核心 1 写入,由核心 0 读取,用于观察启动过程。只有当项目生成的链接器脚本实际定义了一个名为 SRAM4 的区域时,这种技术才能真正应用于共享内存。我从零开始创建的向导项目确实定义了该区域,因此该技术在结构上是有效的——但当我后来基于 NXP 自己的 hello_world 示例项目(该项目使用不同名称的区域,Ram1/rpmsg_sh_mem,而不是 SRAM4)构建版本时,相同的属性却悄无声息地传递到了每个内核各自的私有.noinit 文件中。内存占用而不是抛出错误。核心 0 和核心 1 各自读取/写入“共享”结构体的不同副本,编译器或链接器均未发出任何错误警告。 最终结果:我的诊断报告显示,在两个独立的启动实现(手写的 CPUCFG/CPBOOT/CPUCTRL 寄存器和 NXP 自己的 MCMGR 中间件)和多个项目配置中,每次测试的结果均为 0(没有进展),因为这两个核心从一开始就从未真正查看过同一个内存地址——无论核心 1 是否真的在运行。 它是如何被发现的 通过原封不动地复制 NXP 的 hello_world 示例,并且仅在现有的、未经修改的、经过验证可正常运行的 main.c 文件中添加诊断写入,即可完成此操作。(而不是更换它),我可以通过板载 LED 直观地确认 Core 1 确实在执行完整的序列——然而共享内存计数器仍然显示为 0。这种矛盾(执行的物理证明与诊断结果相反)暴露了是诊断本身出了问题,而不是 Core 1 出了问题。将节名称修正为与该项目的实际区域匹配(.noinit.$rpmsg_sh_mem 而不是 .noinit.$SRAM4)后,立即产生了正确的递增值。 给其他在 LPC55xx 上调试多核启动的人一个教训 如果您使用 .noinit.$ 节属性来管理核心间共享内存,请根据该特定项目自身生成的 _Debug_memory.ld 来验证区域名称,而不是假设一个在其他项目中有效的名称(例如 SRAM4)。此处的不匹配会导致完全静默失败——没有版本警告,没有链接错误,没有运行时故障——并且产生的症状看起来与真正的启动失败完全一样(寄存器/向量表级别的调试都将检查正常,因为实际问题完全在诊断层)。 感谢所有阅读过之前帖子的人——CPUCFG/CPBOOT/CPUCTRL/向量表验证工作没有白费;确认所有这些是正确的最终迫使我们将调查转向诊断机制本身,因为这是剩下的未验证部分。 Re: LPC55S69: Core 1 never starts despite fully verified CPBOOT/CPUCTRL/CPUCFG sequence 更新:问题已定位到项目/链接器配置,而非应用程序代码。 自发帖以来,我进行了一项决定性的测试,大大缩小了范围。 测试:NXP 自家未经修改的多核示例能否在此硬件上运行? 为 LPCXpresso55S69 全新导入 multicore_examples/hello_world(主程序 + 辅助程序),完全未修改,并按原样进行了调试。 结果:有效。板载 RGB LED 以干净、规律的 500ms 开/500ms 关的频率闪烁——通过与我自己刷入同一块板的项目直接比较得到证实(我的项目使 LED 熄灭,未修改的示例使 LED 闪烁,当我重新刷入我自己的项目时,LED 再次熄灭)。结论是:在这款主板、探针和 IDE 安装下,双核执行是可行的。 测试:示例中的应用程序代码在我的项目配置中是否能正常运行? 为了确定问题是出在我的应用程序代码还是项目的版本/链接配置中,我复制了正常运行的示例的 secondary-core main.c 文件。app.h 和 hardware_init.c原封不动地(逐字节、未修改地)移植到我自己的从属项目中,完全替换了我自己的应用程序代码。 结果:LED灯不闪烁。在原始示例项目中可以正常运行的相同、未修改的 NXP 代码,在我自己的项目配置中版本时无法启动 Core 1。 这证明了什么? 问题不在于应用程序级别的代码(已经确认过两次——分别在手写的寄存器实现和基于 MCMGR 的实现中独立确认过,现在又用示例自己的源文件进行了第三次确认)。尽管我已尽最大努力逐点匹配,但我的项目的多核链接器设置/内存区域配置与工作示例存在差异,这确实是个具体问题: MCMGR_StartCore() 之后,CPUCFG、CPBOOT 和 CPUCTRL 都按预期读取。 嵌入图像的向量表经过独立验证有效(正确的堆栈指针,正确的复位处理程序地址与真正的 ResetISR 符号匹配)。 主存储区域设置为 RAM 区域(而非 PROGRAM_FLASH),这与工作示例中将 Core 1 的映像嵌入 RAM 而非闪存的方法一致。 核心 1 的私有内存与核心 0 的私有内存不重叠。 我发现一个结构上的差异,但尚未解决:工作示例的辅助核心项目在其 .cproject 文件中完全没有 PROGRAM_FLASH 内存区域的覆盖。(仅两个自定义 RAM 派生区域)。我从零开始创建的从属项目有三个区域,其中包括重新定位的 PROGRAM_FLASH。尝试完全删除该区域(以与工作示例完全匹配)会导致 MCUXpresso 的 MCU 设置页面崩溃(NullPointerException: this.mcuPage 为空),这表明 IDE 的工具无法很好地支持未定义 flash 区域的项目——这本身可能与手动匹配工作示例的确切配置很困难的原因有关。 问题 是否有特定的、有文档记录的多核项目配置(除了向导的“M33SLAVE”角色 + 多核链接器设置之外),才能使一个从头开始的项目达到与 SDK 自身的 hello_world 示例相同的工作状态?或者MCUXpresso IDE v25.6.136是否存在已知的限制/错误?针对多核 LPC55S69 项目,项目向导能否解决示例项目文件中存在的问题,而向导却无法复现这些问题? 很高兴分享这两个项目的完整 .cproject 文件。如果需要,可生成用于直接比较的文件。
記事全体を表示
MVR5510 OTPプログラミング 現在、MVR5510AMDA0ESのOTPプログラミングのテストを実施しています。テストモードに入りました。MAIN_TM_STATUS=0X42、FS_STATE_REG=0XA001です。現在、エミュレーションは正常に動作しており、読み取られたOTP値も正しいです。しかし、チップの電源を切ってからOTPの値を再度読み取ると、OTPが完全に空になっていることがわかりました。エミュレーションが正常なときにOTPに書き込んでプログラムを完了するにはどうすればいいですか?現在、VSUP1/2=12V、VDDOTP=8.5V、POWERON1=5V、POWERON2=3.3V なお、OTPのプログラミングには、純正の工場出荷時ツールではなく、I2Cプロトコルを使用しています。OTPに実際に書き込むために実行すべき追加コマンドを教えていただけますか? Re: MVR5510 OTP programming よろしいです。アメリカの同僚にはNXPに連絡するようお願いします。彼らはNXPとのNDAを担当しています。必要であれば、最新情報をお伝えします。 Re: MVR5510 OTP programming 御社はプログラミング会社様のようですね。もしそうであれば、弊社のプログラミングパートナーを希望される第三者企業は、認証を受ける必要があります。ビジネス交渉についてはNXPの現地代理店にご連絡ください。そのため、プログラミングプログラムを直接お渡しすることはできません。 Re: MVR5510 OTP programming 既にお伝えした通り、OTPは多くの機密ルールが含まれており、一般には公開されていないため、独自のボードでのプログラミングはサポートしていません。独自のOTPシステムを作成したい場合は、まず弊社指定のボードを使用する必要があります。通常の状態では、OTPレジスタの値を正しく読み取ることはできません。ご理解いただけましたでしょうか? Re: MVR5510 OTP programming ご返信ありがとうございます。しかし、私にとっては何の役にも立ちません。技術的な問題を解決する必要があるのに、あなたは私に営業提案書を渡しました。上司と相談してみます。 Re: MVR5510 OTP programming 弊社では、お客様ご自身で作成されたボードを使用したOTPテストはサポートしておりません。大量注文の場合は、OTPテストを第三者に委託することも可能です。少量注文の場合、またはお客様ご自身でOTPテストを実施される場合は、以下のボードをご購入いただくことをお勧めします。 SBCおよびPMIC製品向けOTPプログラミングボード|NXPセミコンダクターズ guoweisun_0-1787018585422.pngguoweisun_0-1787018585422.png guoweisun_1-1787018601483.pngguoweisun_1-1787018601483.png この2つの組み合わせは、コストパフォーマンスに優れています。
記事全体を表示
如何在定制的 i.MX95 PCIe 平台上对全新的 Ara240 模块进行编程? 您好,NXP团队, 我们使用定制的基于 i.MX95 的板(不是 FRDM-i.MX95 EVK),并通过 PCIe M-Key 接口连接了Ara240 M.2 模块。 在查阅了 Ara240 Runtime SDK 文档后,我们了解了正常的运行时流程,即在系统启动期间,通过 PCIe 枚举 Ara240 设备,并由 Runtime SDK 进行初始化。 我们希望了解与制造和生产支持相关的首次模块配置/编程要求。 请您澄清以下问题: Ara240 M.2 模块出厂时是否已预先编程,还是首次使用前需要进行初始固件刷新? 如果模块是全新的、空白的,或者板载闪存损坏,建议的恢复或编程步骤是什么? 是否存在任何固件或软件组件,只需在生产过程中进行一次编程? Ara240 运行时 SDK 在每次启动时会自动加载或初始化哪些元器件? 是否有针对使用定制 i.MX95 硬件平台的客户的生产、配置或恢复指南? 与 FRDM-i.MX95 参考平台相比,在定制板上使用 Ara240 是否需要任何额外的步骤? 任何与首次配置、固件恢复或生产部署相关的指导或文档都将不胜感激。 Re: How to Program a Fresh Ara240 Module on a Custom i.MX95 PCIe Platform? Ara240 M.2 模块通常出厂时已预先编程,运行时 SDK 会在启动时处理初始化,但如果板载闪存为空或已损坏,则恢复需要使用 SDK 工具和 NXP 制造指南中概述的配置步骤重新刷写固件。通常情况下,生产过程中只会对基础固件进行一次编程,而运行时组件会在每次启动时自动加载。对于定制的 i.MX95 板,配置流程与 FRDM-i.MX95 相同,但您可能需要调整板特定的 PCIe 和电源时序。NXP 官方提供的配置和恢复文档是生产支持的推荐参考资料。
記事全体を表示
NXP 代码签名工具 (CST) 符合 FIPS 140-3 3 级标准 NXP团队您好, 我们目前使用 NXP 代码签名工具 (CST) 来实现安全启动,并生成/管理用于映像签名的密钥和证书。 作为产品网络安全要求的一部分,我们需要了解基于 CST 的代码签名过程是否符合 FIPS 140-3 3 级标准。 请您澄清以下问题: 1.NXP 代码签名工具 (CST) 本身是否符合 FIPS 140-3 标准或经过验证,特别是符合 FIPS 140-3 3 级要求? 如果符合要求,能否请您提供相关的认证、验证详情或NXP官方文件以证明其合规性? 谢谢 Re: FIPS 140-3 Level 3 Compliance of NXP Code Signing Tool (CST) CST 被记录为 NXP 代码签名工具,而不是 FIPS 140-3 3 级验证的加密模块。
記事全体を表示
FRDM-A-S32K358 引脚图详情 大家好, 我昨天刚购买了 FRDM-A-S32K358 开发套件。正在查找引脚定义详情。 我正在寻找类似文件 S32K144_pinout.png。感谢您的快速回复。 谢谢并致以诚挚的问候 斯里拉姆 Re: FRDM-A-S32K358 Pinout Details 你好VaneB 谢谢你提供的链接,这很有帮助。 Re: FRDM-A-S32K358 Pinout Details 你好@SriramEmbd FRDM-A-S32K358 没有对应的图像。但是,电路板原理图包含一个专门的页面,显示了 Arduino 接头的引脚分配。 原理图可在FRDM-A-S32K358 Design Files.zip软件包中找到。 BR,VaneB
記事全体を表示
Wi-FiチップセットMCU制御 こんにちは、みんな、 AP+STA機能を備えたWi-Fiモジュールを探していました。例えば、NXP、Microchip、Infineonなどのモジュールを見つけました。しかし、ほとんどのモジュールはPCIe経由でWiFiインターフェースを使えず、高度なOSでしか対応していません。 しかし、InfineonのAIROC CYW55X(シリーズ)というMCU+WiFiモジュールのセットを見つけました。 こういったタイプのモジュールの統合や制御に関する経験はありますか?もしそうなら、これまでに使っていて外部MCUとうまく統合できた他のモジュールを教えてもらえますか?私の意図は、データをマイクロコントローラにオフロードするのではなく、例えばメッシュやAPの機能を制御することです。 Wi-Fiモジュールを制御しながら基本的なAIモデルに対して推論を行うために、MCU(例えばSTM)を使っています。 ありがとう、みんな Re: Wi-Fi Chipset MCU Control こんにちは、 ホストMCUとしてSTM32を使う予定なら、Wi-Fiデバイスとして IW612 か IW416 を使うことをおすすめします。その場合、製品ウェブページのソフトウェアセクションにあるSTM32 CMSIS-Packドライバを使用できます。 これらのデバイスは、Wi-FiにはSDIOを、BluetoothにはUARTを使用します。IW612の場合、もし802.15.4を使う予定なら、ホストインターフェースはSPIです。 もう一つの選択肢としては 、RW612 をネットワークコプロセッサ(NCP)として使用することです。RW612はワイヤレスMCUであるため、外部MCUがアプリケーションに集中する間、無線接続スタックを処理できます。 よろしくお願いいたします。 ダニエル Re: Wi-Fi Chipset MCU Control ダニエルが述べたように、RW612は良い解決策となるでしょう。 3-ラジオ対応で、ネットワーク対応アプリケーションの作成に理想的なイーサネットMACも内蔵しています。 RW612はAP+STA対応が可能です。つまり、そのMCUはネットワーク制御とAI機能の両方に使えます。 Web UIと組み込みOTAを備えたすぐに構築できるプロジェクトをお探しなら、 https://mongoose.ws/wizard/をご覧ください。 プロジェクトを開始し、空のディレクトリを選択し、ボードターゲットとしてFRDM-RW612を選択し、WiFiオプションを設定し、「生成」をクリックし、Xpressoでプロジェクトを開き、ビルドとフラッシュを実行し、シリアルコンソールを接続すれば、すぐに動作させることができます。 具体的に何を作っているのか、もう少し詳しく教えてもらえますか?
記事全体を表示
FRDM-A-S32K358 Pinout Details Hello Community,  I just purchased the FRDM-A-S32K358 Development kit yesterday. looking for the Pin out details. I am looking for similar file S32K144_pinout.png. Appreciate your quick response Thanks and Regards Sriram Re: FRDM-A-S32K358 Pinout Details Hello VaneB Thank you for the link, this helps a lot. Re: FRDM-A-S32K358 Pinout Details Hi @SriramEmbd  There is no equivalent image available for the FRDM-A-S32K358. However, the board schematic includes a dedicated page that shows the pin assignments for the Arduino headers. The schematic is available in the FRDM-A-S32K358 Design Files.zip package. BR, VaneB
記事全体を表示
FIPS 140-3 Level 3 Compliance of NXP Code Signing Tool (CST) Hi NXP Team, We are currently using the NXP Code Signing Tool (CST) for secure boot implementation and for generating/managing the keys and certificates used for image signing. As part of our product security requirements, we need to understand the FIPS 140-3 Level 3 compliance of the CST-based code-signing process. Could you please clarify the following: 1. Is the NXP Code Signing Tool (CST) itself FIPS 140-3 compliant or validated, specifically for FIPS 140-3 Level 3 requirements? If yes, could you please share the relevant certification, validation details, or official NXP documentation confirming the compliance? Thanks Re: FIPS 140-3 Level 3 Compliance of NXP Code Signing Tool (CST) CST is documented as an NXP code-signing tool, not as a FIPS 140-3 Level 3 validated cryptographic module.
記事全体を表示
FRDM-A-S32K358のピン配置の詳細 コミュニティの皆様、こんにちは。 昨日、FRDM-A-S32K358開発キットを購入しました。ピン配置の詳細を探しています。 S32K144_pinout.png という類似ファイルを探しています。迅速なご対応に感謝いたします。 よろしくお願いいたします。 スリラム Re: FRDM-A-S32K358 Pinout Details こんにちは、 VaneBさん リンクをありがとうございます。大変参考になりました。 Re: FRDM-A-S32K358 Pinout Details こんにちは、 @SriramEmbdさん FRDM-A-S32K358に対応する画像は存在しません。ただし、基板回路図にはArduinoヘッダーのピン割り当てを示す専用ページが含まれています。 回路図は FRDM-A-S32K358設計Files.zip パッケージで入手可能です。 BR、VaneB
記事全体を表示
Wi-Fi Chipset MCU Control Hello everyone, I was browsing for some wifi modules with AP+STA functionalities. I found some modules from NXP, Microchip, and Infineon for example. However, most of the modules are only enabling wifi interface through PCIe and with advanced OS. However, I found a set of MCU+Wifi module from infineon called AIROC CYW55X (series). Do you have any experience integrating and controlling these type of modules? If so, can you share different modules that you have used before and were able successful to integrate with an external MCU? My intention is not to offload data to the microcontroller, only to control for example the mesh and AP capabilities. I want to use a MCU (STM for example) to perform some inference on some basic AI models while controlling the wifi module. Thanks guys Re: Wi-Fi Chipset MCU Control Hi, If you are planning to use an STM32 as the host MCU, I would recommend using an IW612 or IW416 as the Wi-Fi device. In that case, you can use the STM32 CMSIS-Pack drivers available in the Software section of the product webpage. These devices use SDIO for Wi‑Fi and UART for Bluetooth. For the IW612, if you also plan to use 802.15.4, the host interface is SPI. Another option is to use an RW612 as a Network Co-Processor (NCP). Since the RW612 is a wireless MCU, it can handle the wireless connectivity stack while the external MCU focuses on the application. Regards, Daniel Re: Wi-Fi Chipset MCU Control As Daniel mentioned, RW612 would be a good solition. It is  3-radio, and also has a built-in Ethernet MAC - ideal for making network enabled applications. RW612 can do AP+STA. So you can use that MCU for both network-control and your AI functionality. If you're looking for a ready-to-build project with Web UI and built-in OTA, take a look at https://mongoose.ws/wizard/ Start a project, choose empty directory, choose FRDM-RW612 as a board target,  set WiFi options, click "generate" , open project  in Xpresso, build & flash, attach your serial console, and you'll have it running in a minute. Could you elaborate more on what exactly you're building?
記事全体を表示
Wi-Fi芯片组MCU控制 大家好, 我正在寻找一些具有 AP+STA 功能的 Wi-Fi 模块。例如,我找到了一些来自恩智浦半导体(NXP)、微芯科技(Microchip)和英飞凌科技(Infineon)的模块。然而,大多数模块仅通过 PCIe 和高级操作系统启用 wifi 接口。 不过,我找到了一套来自英飞凌的名为 AIROC CYW55X(系列)的 MCU+Wifi 模块。 您在集成和控制这类模块方面有经验吗?如果可以的话,您能否分享一下您之前使用过并成功与外部MCU集成的不同模块?我的目的不是将数据卸载到微控制器,而只是为了控制例如网状网络和接入点功能。 我想使用 MCU(例如 STM)对一些基本的 AI 模型进行一些推理,同时控制 wifi 模块。 谢谢大家 Re: Wi-Fi Chipset MCU Control 您好, 如果您计划使用 STM32 作为主机 MCU,我建议使用IW612或IW416作为 Wi-Fi 设备。在这种情况下,您可以使用产品网页软件部分提供的 STM32 CMSIS-Pack 驱动程序。 这些设备使用 SDIO 进行 Wi-Fi 通信,使用 UART 进行蓝牙通信。对于 IW612,如果您还计划使用 802.15.4,则主机接口为 SPI。 另一种选择是将RW612用作网络协处理器 (NCP)。由于 RW612 是一款无线 MCU,它可以处理无线连接协议栈,而外部 MCU 则专注于应用程序。 问候, 丹尼尔 Re: Wi-Fi Chipset MCU Control 正如丹尼尔提到的,RW612 会是一个不错的解决方案。 它有 3 个无线电模块,并且内置以太网 MAC——非常适合用于开发网络应用。 RW612 可以实现 AP+STA 功能。因此,您可以将该 MCU 用于网络控制和 AI 功能。 如果您正在寻找一个带有 Web UI 和内置 OTA 功能的现成项目,请查看https://mongoose.ws/wizard/ 启动一个项目,选择空目录,选择 FRDM-RW612 作为开发板目标,设置 WiFi 选项,点击“生成”,在 Xpresso 中打开项目,构建并烧录,连接串口控制台,一分钟内即可运行。 您能否详细说明一下您具体在建造什么?
記事全体を表示
S32K344 FlexIO I2C DMA Hello, I have some questions regarding the FlexIO I2C DMA  on S32K344, and I would appreciate your insights. 1. When using FlexIO to emulate I2C, the Tx length is set to Size + 1. Is this because "The transmit shifter loads one additional word on the last falling edge of the SCL pin"? 1.png1.png1.png1.png 2.png2.png2.png2.png 2. When using DMA for sending data, the MAJORLOOP_COUNT is also set to Size + 1. Is this for the same reason? When using DMA, all transmitted data comes from Master->TxData. When calling Flexio_I2c_Ip_MasterSendData, should the TxBuff length be Size + 1, and should the last byte be 0xFF or 0x00? 3.png3.png3.png3.png 3. For receiving data, the MAJORLOOP_COUNT is set to Size – 1. Why is this? 4. I tested this on the S32K344 and found that when using DMA for FlexIO I2C receiving data, the received data is one byte less than expected. Observing with an oscilloscope, the clock signal for the last byte shows only about five or six bits of waveform. The same test on the S32K312 works fine. S32K344 S32DS3.6.4 RTD700   BR, Jason Re: S32K344 FlexIO I2C DMA Hi @Jason07  As FlexIO is not a dedicated I2C peripheral, its implementation requires additional internal steps to complete the I2C bus sequence correctly. The Size + 1U in the transmission is related to the final shifter load required by FlexIO to complete the I2C frame sequence. This additional transfer does not represent an extra payload byte. Instead, it is used internally by the FlexIO hardware to generate the final clock pulses and correctly transition the bus to the end-of-transfer state. The Size - 1U in the reception is necessary because the last received byte is handled separately. This allows the driver to generate the required NACK and STOP conditions at the correct time. Also, take into consideration that when using DMA transfer mode, data transfers may be affected by cache coherency issues. To avoid potential problems when D-Cache is enabled, ensure that the buffers used as the source and destination of the DMA TCD are allocated in a non-cacheable memory region. There is no need to increase the TRANSFER_SIZE parameter when calling the Flexio_I2c_Ip_MasterReceiveData() function. The driver already handles the required internal adjustments for the receive sequence. By last, while reviewing your configuration, I noticed that the same DMA interrupt callback has been assigned to both DMA channels. According to the descriptions provided in Flexio_I2c_Ip.c, different callbacks should be used for the transmit and receive: FlexIO_I2c_Ip_DmaTransferCompleteNotificationShifter0() for the FlexIO Channel 0/1 TX FlexIO_I2c_Ip_DmaTransferCompleteNotificationShifter1() for the FlexIO Channel 0/1 RX BR,VaneB Re: S32K344 FlexIO I2C DMA Hi@VaneB I found the code where “the last received byte is handled separately”. However, I still have a question regarding sending. When using interrupt‑driven sending, the length is set to Size + 1. During sending, the code checks whether it is the last byte; if so, it sends 0xFF or 0x00. The actual sent data length is still Size. But when using DMA for sending, the DMA copies Size + 1 bytes from the send buffer, and in the Flexio_I2c_Ip_MasterEndDmaTransfer function, it also fills 0xFF or 0x00 into the ShiftBuffer. This means the actual sent data length is Size + 1, not Size. Why? 1.png1.png1.png 2.png2.png2.png I modified all occurrences of TRANSFER_SIZE + 1 in the attached project to TRANSFER_SIZE (8), and also modified the DMA interrupt callback as described. I also disabled the D‑Cache. When using DMA for FlexIO I2C sending, I observed with an oscilloscope that at -Os optimization level, the clock signal is normal with only 8 bytes. However, at -O0 optimization level, the clock for the first 8 bytes is normal, but after the ACK is sent, the stop signal is not generated as expected; instead, an extra 1‑bit clock pulse appears. 3.jpg3.jpg3.jpg For FlexIO I2C receiving via DMA, LPI2C0 is used as a slave to send 8 bytes (0x10–0x17). At -O0 optimization level, the clock signal becomes abnormal during the transmission of the 7th byte, and the FlexIO receive buffer contains only 6 bytes (0x10–0x15). 4.jpg4.jpg4.jpg At -Os optimization level, the clock signal becomes abnormal during the transmission of the 8th byte, and the FlexIO receive buffer contains only 7 bytes (0x10–0x16). 5.jpg5.jpg5.jpg All of the above issues are reliably reproducible. Re: S32K344 FlexIO I2C DMA Hi @Jason07  I think the key point is that I2C uses open-drain signaling: Logical 0 actively pulls SDA low. Logical 1 releases SDA, allowing the pull-up resistor to drive the line high. Since FlexIO is a programmable peripheral rather than a dedicated I2C controller, the driver must generate I2C protocol events by controlling the bit patterns loaded into the shifters. Because of this, the final 0x00 and 0xFF values should not necessarily be considered additional payload bytes. Instead, they are used to place SDA in the correct state to complete the rotine. When Master->SendStop == TRUE, the driver loads 0x00, forcing SDA low. Once the shifter finishes and FlexIO releases the line, the pull-up brings SDA high while SCL is already high, creating the required STOP condition (SDA: LOW → HIGH while SCL is HIGH). When Master->SendStop == FALSE, the driver loads 0xFF, which keeps SDA released. The pull-up keeps SDA high, preventing a STOP condition and leaving the bus ready for a Repeated START (SDA: HIGH → LOW while SCL is HIGH). Also, I recommend enabling the DMA Optimize mode. An example is available in the thread: Example S32K344 FlexIO I2C with DMA Optimize option S32DS 3.6.0 RTD 6.0.0. By last, Are working with a custom board or an EVB/FRDM?
記事全体を表示
Duplicate variable declarations I am working on a new project using the LPC824 board and the downloaded lpcxpresso824max_new_project. It built, downloaded and debugged without problems. Initially I am trying to implement a 3-digit 7-segment LED display. I added declarations in peripherals.h and an update routine in main.c. When I build I get two errors - duplicated variable declarations. If I comment them out I get a message "undeclared variable". If I change the name of the variable I get the same duplication error. I have searched every source file in the project and cannot find any duplicates. One of the error messages is: - /Applications/MCUXpressoIDE_25.6.136/ide/plugins/com.nxp.mcuxpresso.tools.macosx_25.6.0.202501151204/tools/bin/../lib/gcc/arm-none-eabi/14.2.1/../../../../arm-none-eabi/bin/ld: ./source/peripherals.o:/Users/julian/Documents/MCUXpressoIDE_25.6.136/workspace/lpcxpresso824max_new_project/Debug/../source/peripherals.h:57: multiple definition of `CA_LUT'; ./source/main.o:/Users/julian/Documents/MCUXpressoIDE_25.6.136/workspace/lpcxpresso824max_new_project/Debug/../source/peripherals.h:57: first defined here Re: Duplicate variable declarations Hello, Could you please share your peripherals.h file and peripherals.c? Or describe how did you add the declaration for CA_LUT? Could you please share how did you use CA_LUT in main.c? Kindly share all the files names in which do you have [#include "peripherals.h"], are those files headers included in main.c? Best Regards, Luis Re: Duplicate variable declarations Hi, It could be that, as you define CA_LUT in peripherals.h both the main and peripherals.c call that file giving the duplicate error "multiple definition". Could you help us try to add the declaration of CA_LUT only in peripherals.c instead of peripherals.h, and retry; Do you have more declarations as this in peripherals.h? and they have the same error? If you have them please also move them to peripherals.c Consider your 7 segments as an external peripheral device. Let me know your findings Best Regards Re: Duplicate variable declarations This is the entry in peripherals.h for both errors // Lookup table for digits 0-9 (0 = ON, 1 = OFF) const uint32_t CA_LUT[10] = { //0: A, B, C, D, E, F are ON; G, DP are OFF ~((1< // 1: B, C are ON ~((1< // 2: A, B, D, E, G are ON ~((1< // 3: A, B, C, D, G are ON ~((1< // 4: B, C, F, G are ON ~((1< // 5: A, C, D, F, G are ON ~((1< // 6: A, C, D, E, F, G are ON ~((1< // 7: A, B, C are ON ~((1< // 8: All segments ON (A-G) ~((1< // 9: A, B, C, D, F, G are ON ~((1< }; // Global variables holding the current numbers to be printed on Digits 1, 2, and 3 volatile uint8_t display_buffer[3] = {1, 2, 3}; // E.g., displays "123" Both errors are used in main.c :- uint8_t numeric_value = display_buffer[current_digit]; uint32_t segment_pattern = CA_LUT[numeric_value]; #include "peripherals.h" appears only in the following files: - main.c, peripherals.c,  AS I mentioned I am coming over from CodeWarrior, so my knowledge of MCUX is probably dangerous (?????). I'm not sure whether a 7-segment display is a peripheral device (peripherals.h and c) or a declaration for a number of pins (pin_mux.h and c), but that can be sorted out later.
記事全体を表示
重复的变量声明 我正在使用 LPC824 板和下载的 lpcxpresso824max_new_project 开发一个新项目。编译、下载和调试过程均未出现问题。我最初尝试实现一个3位数的7段LED显示屏。我在 peripherals.h 中添加了声明。以及 main.c 中的更新例程。编译时出现两个错误——重复的变量声明。如果我把它们注释掉,就会收到“未声明的变量”消息。如果我更改变量名称,也会出现同样的重复错误。我已经搜索了项目中的每个源文件,没有找到任何重复项。其中一条错误信息是:- /Applications/MCUXpressoIDE_25.6.136/ide/plugins/com.nxp.mcuxpresso.tools.macosx_25.6.0.202501151204/tools/bin/../lib/gcc/arm-none-eabi/14.2.1/../../../../arm-none-eabi/bin/ld: ./source/peripherals.o:/Users/julian/Documents/MCUXpressoIDE_25.6.136/workspace/lpcxpresso824max_new_project/Debug/../source/peripherals.h:57: 多个定义“CA_LUT”; ./source/main.o:/Users/julian/Documents/MCUXpressoIDE_25.6.136/workspace/lpcxpresso824max_new_project/Debug/../source/peripherals.h:57: 首次在此处定义 Re: Duplicate variable declarations 你好, 请问您能否分享一下您的 peripherals.h 文件?文件和外设.c?或者描述一下你是如何添加 CA_LUT 声明的? 请问您能否分享一下在 main.c 文件中是如何使用 CA_LUT 的? 请分享所有包含 [#include "peripherals.h"] 的文件名称,这些头文件是否包含在 main.c 中? 此致敬礼,路易斯 Re: Duplicate variable declarations 这是 peripherals.h 中的条目两种错误 // 数字 0-9 的查找表(0 = 开,1 = 关) const uint32_t CA_LUT[10] = { //0:A、B、C、D、E、F 开启;G、DP 关闭 ~((1< // 1:B、C 均开启 ~((1< // 2:A、B、D、E、G 均开启 ~((1< // 3:A、B、C、D、G 均开启 ~((1< // 4:B、C、F、G 均开启 ~((1< // 5:A、C、D、F、G 开启 ~((1< // 6:A、C、D、E、F、G 开启 ~((1< // 7:A、B、C 均开启 ~((1< // 8:所有段开启(AG) ~((1< // 9:A、B、C、D、F、G 均开启 ~((1< }; // 全局变量,用于保存要打印在第 1、2 和 3 位数字上的当前数字。 volatile uint8_t display_buffer[3] = {1, 2, 3}; // 例如,显示“123” 这两个错误都在 main.c 中使用。:- uint8_t numeric_value = display_buffer[current_digit]; uint32_t segment_pattern = CA_LUT[numeric_value]; #include "peripherals.h"仅出现在以下文件中:- main.c、peripherals.c、 正如我之前提到的,我来自 CodeWarrior,所以我对MCUX 的了解可能很危险(????)。我不确定七段数码管是否属于外围设备(peripherals.h)。c) 或引脚数量的声明(pin_mux.h)c),但这个问题以后可以解决。 Re: Duplicate variable declarations 您好, 可能是因为你在 peripherals.h 中定义了 CA_LUT。主程序和外围程序。c调用该文件时出现重复错误“多重定义”。 能否请您帮忙尝试在 peripherals.c 文件中添加 CA_LUT 的声明?而不是 peripherals.h,然后重试; 你的 peripherals.h 文件中还有其他类似的声明吗?它们也会出现同样的错误吗?如果您有这些文件,请将它们也移动到 peripherals.c 文件中。 把你的7个段想象成一个外部外围设备。 请告诉我你的发现 顺祝商祺!
記事全体を表示
Unexpected BSP changes when upgrading RTD MCU: S32K148 144 pin package IDE: S32DS 3.6.6 on Windows 11 RTOS: Bare metal Driver model: Non-MCAL When I upgraded an existing project from RTD v 3.0.0 to QPL06, I got the following changes auto-inserted into the .mex file (among others, but the others seem mundane) true I am wondering what does the 'enable_parallel_routing' does? And I am puzzled by the 'serdes' tag: does it stand for Serializer-Deserializer? The K148 chip does not have this capability. Why is this needed? Re: Unexpected BSP changes when upgrading RTD Thank you very much for the update. Re: Unexpected BSP changes when upgrading RTD Hello @durga_choudhury, S32DS Config Tools share functionality between other families (such as S32Z, S32N, S32G, etc.). You can see that when selecting a S32K MCU, SERDES Serializer/Deserializer tool (along with DCD, IVT, QuadSPI, DDR, among others) are disabled, since it is not supported: Julin_AragnM_0-1787152919605.pngJulin_AragnM_0-1787152919605.png Same reason for enable_parallel_routing configuration. You can enable/disable this from "Project > Properties > S32 Configuration Tools > Enable Parallel Routing", and it is shared between families using Pins tool. Julin_AragnM_1-1787156448892.pngJulin_AragnM_1-1787156448892.png Even though I was not able to find within the documentation a description for this, when enabled, the Pins tool will prompt the user during signal routing if another signal shares the same physical pin and writes to the same PORT register with the same configuration values. The tool will ask whether to automatically co-route all such signals simultaneously. I can reproduce this by configuring WKPU signal sharing configuration values with ADC in S32K3: Julin_AragnM_2-1787157425075.pngJulin_AragnM_2-1787157425075.png If disabled, this prompt is not present. Best regards, Julián
記事全体を表示
升级 RTD 时出现意外的 BSP 变化 MCU:S32K148 144引脚封装 IDE:Windows 11 上的 S32DS 3.6.6 实时操作系统:裸金属 驱动型号:非MCAL 当我将现有项目从 RTD v 3.0.0 升级到 QPL06 时,以下更改自动插入到 .mex 文件中。文件(以及其他文件,但其他文件似乎很普通) true 我想知道“enable_parallel_routing”参数的作用是什么? 我对“serdes”标签感到困惑:它是否代表串行器-反串行器(Serializer-Deserializer)?K148芯片并不具备这种功能。为什么需要这样做? Re: Unexpected BSP changes when upgrading RTD 你好@durga_choudhury , S32DS 配置工具与其他系列(如 S32Z、S32N、S32G 等)共享功能。您可以看到,在选择 S32K MCU 时,SERDES 串行器/解串器工具(以及 DCD、IVT、QuadSPI、DDR 等工具)被禁用,因为它不受支持: Julin_AragnM_0-1787152919605.pngJulin_AragnM_0-1787152919605.pngJulin_AragnM_0-1787152919605.png 启用并行布线配置的原因相同。您可以在“项目 > 属性 > S32 配置工具 > 启用并行布线”中启用/禁用此功能,并且该配置在使用引脚工具的族之间共享。 Julin_AragnM_1-1787156448892.pngJulin_AragnM_1-1787156448892.pngJulin_AragnM_1-1787156448892.png 尽管我在文档中没有找到对此的描述,但启用此功能后,如果另一个信号与该信号共享同一个物理引脚,并且使用相同的配置值写入同一个端口寄存器,则引脚工具会在信号路由期间提示用户。 该工具会询问是否要自动同时路由所有此类信号。我可以通过在 S32K3 中配置 WKPU 信号共享配置值与 ADC 来重现此问题: Julin_AragnM_2-1787157425075.pngJulin_AragnM_2-1787157425075.pngJulin_AragnM_2-1787157425075.png 如果禁用此功能,则不会显示此提示。 此致, 朱利安 Re: Unexpected BSP changes when upgrading RTD 非常感谢您提供的最新信息。
記事全体を表示