Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
エラー: デバイスは安全です。消去して保護を解除 こんにちは、チームの皆さん 私は、A12323 ドキュメントを使用して、S32K144 で A/B パーティショニングをテストしていました。 まず、S32K144_Memory_Partition プロジェクトを RAM にフラッシュしました。 次に、S32K144_FOTA_Gateway_example を Flash にフラッシュしました。 同じボード上で、CAN アプリケーションのフラッシュを試みました。初めて成功しました。 しかし、同じアプリケーションをもう一度フラッシュしようとしたところ、 「デバイスはセキュリティで保護されています。消去するとセキュリティが解除されます。」というエラーが表示され、失敗しました。 Navina_0-1764133345139.png 今は何もフラッシュできません。 ありがとうございます。 Re: error: Device is secure. Erase to unsecure こんにちは@Navina 前のThreadに書いたように: MDM-AP を読み取るための Segger J-Link プローブまたは Lauterbach デバッガーをお持ちですか?残念ながら、Pemicro ではそれが不可能です。 デバイスがロックされる可能性があるまれなシナリオがあります。このThreadを確認してください: https://community.nxp.com/t5/S32K/Unbricking-S32K146/mp/937227 確認するにはMDM-APを読み取る必要があります。
記事全体を表示
i.mxrt1010 有时会挂在启动 ROM 代码上 大家好, 客户遇到了一个问题,即i.MXRT1010有时会挂在启动ROM代码中,无法跳转到用户应用程序。 但是,使用 MCUXpresso 安全配置工具/闪存编程器读取或非闪存似乎可以解决问题。 造成这一问题的原因是什么,如何才能避免再次发生? 谢谢。 i.MX RT101x Re: The i.MXRT1010 sometimes hangs on the boot ROM code Hello 映像可能版本不正确,请验证该映像是否包含 FCB 和 IVT。 此外,确保 Boot_mode 和 Boot_cfg 是闪存的正确配置。 BR, Omar
記事全体を表示
S32K3 的 gPTP 协议栈是否支持 HSE 模块? 在我将 s32k3 的 gPTP 演示下载到芯片上后,我无法再使用 JLink 的 jflash 连接到芯片。日志显示"HSE 固件检测到","无法读取 CPUID 寄存器" 。如何重新连接芯片并禁用演示程序中的 HSE 功能? 当我使用 JTAG 接口连接时,jflash 有时会要求我像这样输入 ID 代码NXP S32K3xx - 世纪佳缘知识库 我的运行环境是 • S32 Design studio 3.6.0(更新至 3.6.2)搭载恩智浦 GCC 10.2.0;版本 1728;版本 ID:202307190908 • S32K3xx 开发代码包 3.6.2(设计工作室 3.6.2 的一部分) • S32K3xx RTD 6.0.0(SW32K3_S32M27x_RTD_R21-11_6.0.0_D2506) • 可选的用于 FreeRTOS 示例应用程序 S32K3 FreeRTOS 5.0.0 (SW32K3_FreeRTOS_11.1.0_5.0.0_CD1_D2409) -SW32K3xx_M7_gPTP_1 .0.0_D2507 jflash 的正常连接日志为 正在连接... -通过 USB 连接到探头/编程器设备 0 -探测器/编程器固件:J-Link V11 已编译 2041 年 4 月 27 日 16:36:21 -探测器/编程器 S/N:*******-设备 " S32K344 " 已选择。 -目标接口速度:500 kHz(固定) -vTarget = 3.185V-configTargetSettings () 启动 -configTargetSettings () 结束 -花了 12us-initTarget () 启动 -检测到 SDA_AP-必要时解锁设备... -设备未锁定。不执行解锁程序。 - 检查是否已启用调试访问... - 调试访问尚未启用。执行启用调试访问序列... - 启用调试访问 - 检查是否安装了 HSE 固件... - 未安装 HSE 固件 - 检查 Cortex-M7_0 和 Cortex-M7_1 是否以锁步模式运行 - 启用锁步模式 - InitTarget() 结束 - 耗时 16.0ms - 找到 ID 为 0x6BA02477 的 SW-DP - DPIDR: 0x6BA02477 - CoreSight SoC-400 或更早版本 - 跳过 AP 映射检测。找到手动配置的 AP 映射。 - AP[0]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[1]:APB-AP (IDR:未设置,ADDR:0x00000000) - AP[2]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[3]:AHB-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[5]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[6]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[7]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:跳过 ROMBASE 读取。CoreBaseAddr 由用户手动设置 - AP[4]:找到核心 - CPUID 寄存器:0x411FC272。实现者代码:0x41 (Arm) -缓存:L1 I/数据缓存 存在 -找到了 Cortex-M7 r1p2,小端节序。 - FPUnit:8 个代码 (BP) 插槽和 0 个字面插槽 - 跳过 ROM 表扫描。CorebaseAddr 由用户手动设置:0x40250400 -I-Cache L1:8 KB,128 个集,32 字节/行,2-Way-D-Cache L1:8 KB,64 个集,32 字节/行,4-Way -setupTarget () 启动-初始化 ECC RAM... -ramcodeAddr:0x20000000-raminitAddr:0x20000010 -raminitSize:0x00007FF0-initPattern:0xDeadBeef-ECC RAM 成功初始化 -正在初始化 ECC 内存... -ramcodeAddr:0x20000000-raminitAddr:0x20400000 -raminitSize:0x00004000-initPattern:0xDeadBeef-ECC RAM 成功初始化 -setupTarget () 结束-花了 53.8 毫秒 -正在执行初始序列... -成功初始化 -目标接口速度:1000 kHz(固定) -找到 1 个 JTAG 设备。核心 ID:0x6BA02477(无) - 连接成功 异常连接 Jflash 日志为 正在连接... -通过 USB 连接到探头/编程器设备 0 -探测器/编程器固件:J-Link V11 已编译 2041 年 4 月 27 日 16:36:21 -探测器/编程器 S/N:*******-设备 " S32K344 " 已选择。 -目标接口速度:500 kHz(固定)-vTarget = 3.225V -configTargetSettings () 启动 -configTargetSettings () 结束-花了 9us-initTarget () 启动 -检测到未知 SDA AP:0x00000000-initTarget() 结束 -花了 3.05 毫秒-configTargetSettings () 结束 -花了 18us-initTarget () 启动-SDATargetSettings () 启动 -花了 18us-initTarget() 启动-SDATargetsettings () 启动 -花了 18us 已检测到_AP -必要时解锁设备... -设备未锁定。不执行解锁程序。 - 检查是否已启用调试访问... - 调试访问尚未启用。执行启用调试访问序列... - 启用调试访问 - 检查是否安装了 HSE 固件... -检测到 HSE 固件(启用 SWAP) - 检查 Cortex-M7_0 和 Cortex-M7_1 是否在锁步模式下运行 - 启用锁步模式 - InitTarget() 结束 - 耗时 19.8ms - 找到 ID 为 0x6BA02477 的 SW-DP - DPIDR: 0x6BA02477 - CoreSight SoC-400 或更早版本 - 跳过 AP 映射检测。找到手动配置的 AP 映射。 - AP[0]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[1]:APB-AP (IDR:未设置,ADDR:0x00000000) - AP[2]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[3]:AHB-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[5]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[6]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[7]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:跳过 ROMBASE 读取。CoreBaseAddr 由用户手动设置 - AP[4]:跳过。无法读取 CPUID 寄存器 - 连接 CPU 失败。在RESET下执行连接。 - DPIDR: 0x6BA02477 - CoreSight SoC-400 或更早版本 - 跳过 AP 映射检测。找到手动配置的 AP 映射。 - AP[0]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[1]:APB-AP (IDR:未设置,ADDR:0x00000000) - AP[2]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[3]:AHB-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[5]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[6]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[7]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:跳过 ROMBASE 读取。CoreBaseAddr 由用户手动设置 - AP[4]:跳过。无法读取 CPUID 寄存器 - 无法在 Coresight 设置中找到内核 - ERROR:连接失败。 无法建立与目标的连接。 - ERROR:连接失败 Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 是,正确 davidtosenovjan_0-1755158415261.png Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 你好,大卫 你说的正是我面临的问题。 我试过你建议的方法,但没用。先别管它了。我的另一个问题是,是否有可能禁用 S32K3 的这一功能?这种操作是否正确? 基于 gPTP 演示,我禁用了 Func_Threshold_Reset 并将 MCU_PRECOMPILE_SUPPORT 从 STD_ON 更改为 STD_OFF,然后代码就可以运行了。我目前还不知道是什么原因导致了 RESET。 close reset.png Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? S32K3 具有 RESET 升级功能,这意味着在一定数量的功能 RESET 之后,会发出破坏性 RESET,并且在一定数量的破坏性 RESET 之后,MCU 将保持 RESET 状态到下一个 POR。因此,如果出于任何原因(例如监视程序或某些时钟配置错误或类似原因)定期发出功能RESET,则可能导致MCU RESET,因为在POR之后从内部闪存中执行代码。 解决方案可以在POR之后立即停止设备并擦除代码闪存内容。 这里有一个 J-link 的解决方案(我个人没有经验): https://community.nxp.com/t5/S32-SDK/failed-to-power-up-dap-after-program-s32k312-with-pll0-equal/m-p/1612025 希望对您有所帮助 Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 我已经使用示波器捕获了 RESET 引脚的波形。该芯片确实在定期RESET。当我禁用 SXOSC 时,周期为 8 毫秒。当我启用 SXOSC 时,周期为 5 毫秒。 second.png Snipaste_2025-08-13_17-13-58.png Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 在这种情况下,我建议用示波器测量 RESET 信号,以了解设备是否处于 RESET 状态。 Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 我不明白你的意思。我的板是我自己开发的。在这个板上,我运行了其他普通程序。板上没有 RESET 指示灯。我根据 gpTP 演示修改了时钟和 EMAC 引脚。下载后,通过观察当前,我发现程序没有RESET。 Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 你看见 RESET LED 照明了吗? Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 谢谢您的答复。我从未在这个板中使用过 HSE。这是一个新董事会。我下载了照明演示版,运行正常。我能够重新连接 JTAG 并清除程序。然后,我下载了 gPTP 演示版 1.0。之后,我就再也无法连接芯片或清除程序了。我对 gPTP 不熟悉。演示中对 JTAG 有限制吗?或许是 Segger 的 jflash 软件出了问题? Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 我不认为 gPTP 演示与 HSE 有任何关系。 您的日志信息显示: - 检查是否安装了 HSE 固件... - 检测到 HSE 固件(已启用 SWAP)。 实际上,这可能仅仅意味着安装了 HSE FW 并应用了用于 A/B 交换的 HSE 内存布局。这个板使用了 HSE 吗? Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 如何获取调试身份验证 ID 代码? 我急需知道如何消除 JTAG 上的这一限制。亲爱的恩智浦员工,请帮帮我好吗? @VaneB
記事全体を表示
在 imx93 A55 内核中使用 Flexio 仿真 PWM 你好,恩智浦技术支持 如何在 linux 系统中使用 i.MX93 上的 FlexIO 端口模拟 PWM 信号? 数据表中提到 FlexIO 具有此功能,但我在恩智浦论坛上找不到任何相关代码。 IRENE_U_0-1763517817753.png 我只找到了使用 TPM 或 M33 处理器模拟 PWM 信号的代码,但我们使用的是 GPIO_IO28 引脚。 谢谢! Re: Emulating PWM using Flexio in imx93 A55 core 你好@IRENE_U 在 linux 中没有可用的驱动程序来用 Flexio 仿真 PWM,你可以参考下面的链接。 https://www.nxp.com/docs/en/application-note/AN12713.pdf https://www.nxp.com/docs/en/application-note/AN5209.pdf https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/pwm/pwm_nxp_flexio.c https://github.com/nxp-mcuxpresso/mcux-sdk-examples/tree/MCUX_2.16.100/mcimx93evk/driver_examples/flexio/pwm 致敬, Zhiming
記事全体を表示
mc33772c assign CIDs Hi,     I am currently connecting the mc33664 and then the mc33772c through the mcu, I am currently in the mode of connecting mc33664 and then mc33772c through the mcu. Now, I can get the correct response by sending the instruction to read the init register, but after I tried to write the cid and read it, I failed to get the correct response.    Is it normal that I keep sending without changing the read instruction (without modifying the message counter) and still get a response. kevinyuee_0-1752547683334.png     The following is a situation where I attempted to write the cid but received no response, while reading the init register also got a response. Moreover, other instructions sent thereafter can also receive the same response, unless an instruction to read the init register is sent here again, in which case the response data will be updated. kevinyuee_1-1752547826969.png     SPI Re: mc33772c assign CIDs Hi Kevin, I have checked your schematic, it seems to be correct. However I don't see how the individual BCC grounds are connected. Please make sure, that the BCC grounds are connected to the negative pole of the lowest Cell in the 6 Cell battery. Please refer to the schematic attached.  JozefKozon_0-1753077984635.png JozefKozon_1-1753077999631.png If the EEPROM is not present, the I2C ERR FLT should be ignored. For start, please disconnect the higher BCCs and try to write only to the first BCC, with the 6 Cell battery connected to only the first BCC. Something as below. JozefKozon_2-1753078569430.png With Best Regards, Jozef Re: mc33772c assign CIDs Hi Kevin, thank you for the schematic. Yes, I have received it. I will check it and I will come back. With Best Regards, Jozef Re: mc33772c assign CIDs Hi,    I have sent the schematic diagram as an attachment to your private message last Friday.Have you received it? Are there any questions? Best wish Kevin Re: mc33772c assign CIDs Hi Kevin, are you using our Evaluation boards? If yes, please state the full product numbers. If you are using your own design, please share your schematic with voltage levels and part values to check. With Best Regards, Jozef Re: mc33772c assign CIDs Hi,     I have connected the battery now, but still can't write the cid successfully. And by reading the FAULT1 STATUS$24 register, I observe that there is also fault detection after I execute the write instruction. I don't have an external EEPROM, so setting I2C ERR FLT to 1 should be normal.     My waveform is also normal. I really don't know why it can't be written correctly. image.png kevinyuee_0-1752751832970.png     Re: mc33772c assign CIDs Hi Kevin, yes, this might be the reason. Please refer to the section 5.2 in the MC33772C datasheet. Depending which MC33772C version you are using, there is a minimum number of Cells which must be connected to the BCC (Battery Cell Controller). Usually minimum number of Cells is 3. However even for the MC33772CTC0AE version, the CT and CB pins cannot be left floating. JozefKozon_0-1752653968155.png Please also refer to the AN12536.  JozefKozon_1-1752654057536.png With Best Regards, Jozef Re: mc33772c assign CIDs Hi,   I power the mc33772c through wiring. Will this method affect my reading and writing of the mc33772c chip, assign CIDs. kevinyuee_0-1752649773184.png     Re: mc33772c assign CIDs Hi Kevinyuee, INIT Register Read Works This suggests that the default CID (usually 0x00) is still active. The message counter and CRC are likely correct for this command. Writing the CID requires: A valid message counter (incremented from the last successful message). A correct CRC. The correct frame format for the CID assignment command. Please refer to the sections 9.3.2 and 9.3.3 in the full MC33772C full datasheet, for description of the Idle and Init modes.  With Best Regards, Jozef
記事全体を表示
为什么无法接收诊断帧(0x3C,0x3D)? 我正在使用 S32K118,并导入了 ldf 来连接 lin 模块。它能正确接收 fames,但无法接收诊断帧,为什么? clip_20250710142605.png 1.png 2.png Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? SW32K1_SW32M24_LIN_STACK_2.0.0_D2503 位于 S32K1xx 参考软件中: https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-REFSW-D BR,丹尼尔 Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? 能否提供 LIN STACK 2.0.0 的软件? Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? 你好@jx111、 我测试了这个例子: Lin_Slave_S32K144_Example_DS lin stack 2.0.0 您应该可以发送此 MasterReq danielmartynek_0-1752850568152.png 一旦钳位了这个标志,就开始对其进行处理。 danielmartynek_1-1752850600619.png 此致, 丹尼尔 恩智浦提供的任何支持、信息和技术("材料")均按原样提供,没有任何明示或暗示的保证,恩智浦在适用法律允许的最大范围内拒绝承担与材料有关的所有直接和间接责任及损害赔偿。恩智浦不承担任何应用或产品设计方面的协助责任。材料只能用于恩智浦产品。恩智浦可以不受限制地使用向恩智浦提供的有关材料的任何反馈。 Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? 我使用的是 S32DS 3.4。我无法打开程序,但可以看到 C 代码。 1.请解释一下如何获取诊断框? 2.另一个问题: 我使用" LIN_NODE_STATE_SLEEP_MODE == lin_lld_get_state(...)" 来获取 lin 的睡眠状态,当 lin 超时时,它可以进入睡眠状态,但它无法获取睡眠帧(0x00,0xFF,0xFF,...),为什么? 是否丢失了某些配置? Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? 你好@jx111、 请参阅此处的示例: https://community.nxp.com/t5/S32K/S32K-SDK-LIN-Stack-not-working-properly-with-UDS/m-p/1313360 I 类(正常信令)不支持诊断响应 (0x3D)。 LIN 规格代码包修订版 2.1 https://www.lin-cia.org/fileadmin/microsites/lin-cia.org/resources/documents/LIN-Spec_Pac2_1.pdf 此致, 丹尼尔
記事全体を表示
嵌入式产品的安全应用案例,可提升产品和企业价值(日文博客) 随着欧洲的《网络安全法案》 、日本的JC-STAR系统以及美国的“网络信任标志”计划等各个国家建立网络安全体系,人们对安全的兴趣正在迅速增长,即使在以前没有重视安全功能的领域也是如此。   本文以用例为例,清晰简洁地解释了嵌入式产品安全的重要性,并阐述了威胁、影响和应对措施。   用例示例   1. 设备识别和访问权限管理   威胁与影响   将物联网设备(例如智能电表、监控摄像头、安全网关等)连接到网络(例如云端、内部网络、楼宇内网络等)或其他设备时,存在未经授权的设备通过“欺骗”连接的风险。这可能导致客户信息泄露、服务暂停或被滥用。此外,还存在外部未经授权的用户访问物联网设备并滥用其功能的风险。例如,他们可能窥探摄像头录像或控制物联网设备,并将其用作网络攻击的跳板。 对策   设备的“识别(认证)”和“防欺骗”至关重要。通过利用安全功能,可以保证设备的真实性(即设备是正品;在这种情况下,设备使用的识别名称是设备本身的名称,而不是冒充其他设备的人使用的识别名称),并创建安全的连接环境。 此外,通过利用安全功能,可以防止未经授权的用户从外部访问和使用物联网设备。   Keita_Nagashima_2-1761209125678.png 2. 假冒商品的鉴定   威胁与影响   假冒商品(包括名牌包、名酒和打印机墨粉)的流通不仅会导致正品销量下降,还会对用户造成伤害,损害品牌价值,并影响依赖正品的系统。   对策   安全功能可以“区分”真品和假冒产品(即确定其真伪) ,从而有助于消除假冒产品。   Keita_Nagashima_0-1761209017704.png     3. 知识产权保护   威胁与影响   如果产品中安装的软件和数据被分析和泄露,则存在侵犯知识产权的风险。事实上,软件已被复制,假冒产品也已销往海外。技术泄露还会导致竞争力下降。   对策   通过使用安全加密和识别(认证)功能,可以防止此类信息被读取和篡改,从而防止假冒产品的生产。即使发生篡改,也可以通过检测和处理问题来防止损失。 Keita_Nagashima_4-1761209246781.png 4. 安全的产品软件更新(OTA)   威胁与影响   产品交付后提供软件更新不仅是解决网络安全标准(例如CRA)中漏洞的必要措施,还能通过提升产品功能来增加产品价值。然而,如果更新系统存在漏洞,则可能导致产品和服务被滥用(例如通过安装未经授权的软件),或者知识产权被泄露(例如通过分析更新镜像)。   对策   通过使用安全加密和识别(认证)功能,可以“防止读取要安装在产品上的更新映像的内容”和“防止安装未经授权的软件”。 shinjihontanib_0-1762408102565.png   5. 用户机密信息的保护   威胁与影响   如果产品中存储的机密用户信息(例如个人姓名、位置信息和使用历史记录)泄露,可能会引发隐私侵犯和法律问题。   对策   对机密信息进行“加密”和“加强访问控制”等安全措施可以降低机密信息泄露的风险。 Keita_Nagashima_3-1761209186906.png 6. 安全日志的收集和分析   威胁与影响   忽视攻击迹象或异常行为可能会造成更大的损害。如果不做好记录,就很难确定原因并防止再次发生。   对策   为防止攻击痕迹被掩盖,收集和维护安全日志至关重要。此外,还需要根据收集到的数据采取措施,例如实施异常检测算法。   Keita_Nagashima_5-1761209482239.png   概括   引入安全措施不仅仅是遵守法规,更是提升竞争力的基石。它直接有助于提高产品可靠性、维护品牌价值并增强公司竞争力。展望未来,安全有望成为产品开发的“基本要求”。我认为,首先要提高安全意识,为下一步做好准备,并为公司的可持续发展奠定基础。   除了技术要求外,实施安全措施和遵守法律法规还需要满足非技术要求(组织和运营要求)。在下一篇文章中,我们将讨论软件或硬件安全,这是用户经常咨询的技术问题。     相关信息 应用案例:智能安全的医疗设备 应用案例:智能安全的能源管理(日语) 应用案例:符合FIPS和Matter标准的安全IP摄像机 应用案例:智能安全的电动汽车充电(日语) 使用案例:安全云端入职(日语)   =========================== 我们目前无法 回复 此帖子“ 评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问, 请 参考“ 如何就 技术问题 联系 NXP ( 日语 博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有业务往来 ,您可以直接联系负责人。 ) 随着欧洲的《网络安全法案》、日本的JC-STAR系统以及美国的“网络信任标志”计划等各个国家建立网络安全体系,人们对安全的兴趣正在迅速增长,即使在以前没有重视安全功能的领域也是如此。   本文根据安全功能的目的,介绍了实现安全功能的示例用例。 (阅读时间:5分钟) 安全 日本博客
記事全体を表示
【入门指南】i.MX 95:LLM_RAG 实现实战 - eIQ Gen AI 流程 - (日语博客) 目前,智能手机和PC上广泛使用的大型语言模型(LLM)在云端运行,利用丰富的资源(处理性能、内存大小),但它们也被部署在嵌入式设备(边缘设备)上。为了在嵌入式设备有限的资源下实现准确性,可以通过在特定领域添加数据库来实现,这种领域被称为RAG(检索增强生成) 。 在本文中,我们将以实践操作的形式介绍 NXP 的LLM+RAG 解决方案“eIQ GenAI Flow” 。 [议程] 1. 关于 eIQ GenAI 流程 2. 运行环境 3. 设置 4. 法学硕士演示 5. RAG 演示 6. RAG数据库更新 7. 音频输入/输出演示 8. 总结 ================================ 1. eIQ Gen AI Flow是什么? eIQ GenAI Flow 是 NXP 推出的大规模语言模型 (LLM) 解决方案,它以切实可行的方式将生成式 AI 和 LLM 的优势带入边缘用例。 简介页 面向嵌入式应用的生成式人工智能 | 恩智浦半导体 介绍视频 - RAG 使用与不使用 RAG 的对比(视频时长:2 分 10 秒) (在“我的视频”中查看) eIQ Gen AI流程由五个模块组成: YuseiUegama_0-1749459775958.png 唤醒词引擎(WWE) (唤醒词检测) VIT(语音智能技术)*1: →唤醒词激活ASR(自动语音识别) *1:恩智浦的语音用户界面技术 自动语音识别(ASR) (语音转文字) 将语音输入转换为文本 大型语言模型(LLM) 根据捕获的上下文生成响应 检索增强生成(RAG) 利用相关的外部知识增强大规模语言模型(LLM) 文本转语音(TTS) 将响应转换为音频输出   2. 运行环境 *由于这是预生产产品,请联系您的 NXP 分销商或直接联系 NXP 购买电路板或获取软件和手册。 硬件 i.MX 95 EVK(本文中所用) 或者 ADLINK 的小型评估板“SMARC LEC-IMX95” 要使用“SMARC LEC-IMX95”操作 LLM,请参阅以下文章。 [NXP 处理器测试指南 7] 在 ADLINK SMARC LEC-IMX95 上使用 i.MX95 进行 LLM 演示的 Yocto 镜像构建和测试流程 – Macnica NXP 支持   软件 Yocto Linux 镜像:L6.12.3_1.0.0(注意:L6.12.20 仅支持 B0 芯片,如果您使用的是 A1 芯片,请使用 L6.12.3) eIQ GenAI Flow: GitHub - nxp-appcodehub/dm-eiq-genai-flow-demonstrator:eIQ GenAI Flow Demonstrator 是一个专为 NXP i.MX95 设备设计的对话式 AI 管道应用程序。 3. 设置 3.1.在主机上进行设置 3.1.1.为 i.MX 构建 Yocto 镜像 Linux L6.12.3_1.0.0 或更高版本需要BSP镜像文件。 根据您使用的板卡配置MACHINE (如果是 NXP EVK ,则使用imx95evk ) ,并构建imx-image-full环境。 有关构建 Yocto 环境的信息,请参阅本文。 3.1.2.自定义 Yocto 环境 将以下元层添加到 3.1 中创建的 Yocto Linux 环境中,然后运行 bitbake。 dm-eiq-genai-flow-demonstrator/meta-eiq-genai-flow 位于 main · nxp-appcodehub/dm-eiq-genai-flow-demonstrator · GitHub 详细说明请参见下面的自述文件。 dm-eiq-genai-flow-demonstrator/meta-eiq-genai-flow/README at main · nxp-appcodehub/dm-eiq-genai-flow-demonstrator · GitHub meta-eiq-genai-flow 包括: Linux 内核: matmul Neutron C-API 设备树:专用于 Neutron 的连续内存分配 (CMA) 区域 Onnxruntime:添加 Neutron 执行提供程序 Neutron 资产:用于处理 matmul 运算的驱动程序和固件。 3.1.3.eIQ Gen AI Flow 软件包设置 在主机 PC 上,运行以下命令克隆 eIQ Gen AI Flow。 $ git clone https://github.com/nxp-appcodehub/dm-eiq-genai-flow-demonstrator.git 此仓库使用Git 大型文件存储 (LFS) ,因此请按照以下步骤拉取: $ sudo apt install git-lfs $ cd dm-eiq-genai-流演示器 $ git lfs pull 使用 SD 镜像写入器或 FTP 将创建的 eiq-genai-flow 文件夹传输到目标根文件系统中的 /root/ 目录(为了清晰起见,我们指定了 /root/ 目录,但传输目标可以是任何目录)。 3.2.i.MX 95 EVK 的设置 本章中的命令在 i.MX 95 EVK 上执行。 3.2.1.网络设置 创建一个类似下面的 shell 并连接到网络 #!/bin/bash export SSID=" " export PASSWORD=" " modprobe moal mod_para=nxp/wifi_mod_para.conf wpa_passphrase ${SSID} ${PASSWORD} > imxrouter.conf wpa_supplicant -d -B -i mlan0 -c ./imxrouter.conf sleep 5 udhcpc -i mlan0 3.2.2.下载所需软件包 $ cd eiq_genai_flow $ ./install.sh 至此,演示环境的设置完成。 4. 法学硕士演示 将 EVK 的 J31 USB DBG 端口连接到 PC 并开机。 以 root 用户身份登录 Teraterm 等控制台。 移动到上一章中存储的 eiq_genai_flow 目录。 4.1.演示帮助检查 $ cd eiq_genai_flow $ ./eiq_genai_flow- 帮助 你会看到类似这样的日志: 剧透 (选中阅读) 用法:eiq_genai_flow [选项] lq 选项 x --input-mode -i [keyb|kasr|vasr] 输入模式:'keyb',适用于 x x 键盘输入,'kasr' 代表 x x 键盘触发 + ASR,'vasr' x x 用于 VIT 唤醒词 + ASR。x x [默认值:keyb] x x --system-prompt -p TEXT LLM 系统提示符。x x [默认值:你很乐于助人 x x 助理。x x --output-mode -o [text|tts] 输出模式:'text' x 文本回复或“tts”代表 x x音频响应。x x [默认值:tts] x x --use-rag -r 激活检索增强功能 x x 代定制 LLM x x 输出。x x --use-neutron -n 使用 Neutron ONNX 执行 x x 提供商。x x --continuous -c 连续模式,其中 ASR 为 x x 一直在倾听。x x --benchmark -b 基准测试模式 - 获取 x 的列表 提出 x 个问题并存储结果。x x --verbose -v 显示信息(例如 x x 次推理)。x x --help -h 显示此消息并退出。x QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 用法:eiq_genai_flow [选项] lq 选项 x --input-mode -i [keyb|kasr|vasr] 输入模式:'keyb',适用于 x x 键盘输入,'kasr' 代表 x x 键盘触发 + ASR,'vasr' x x 用于 VIT 唤醒词 + ASR。x x [默认值:keyb] x x --system-prompt -p TEXT LLM 系统提示符。x x [默认值:你很乐于助人 x x 助理。x x --output-mode -o [text|tts] 输出模式:'text' x 文本回复或“tts”代表 x x音频响应。x x [默认值:tts] x x --use-rag -r 激活检索增强功能 x x 代定制 LLM x x 输出。x x --use-neutron -n 使用 Neutron ONNX 执行 x x 提供商。x x --continuous -c 连续模式,其中 ASR 为 x x 一直在倾听。x x --benchmark -b 基准测试模式 - 获取 x 的列表 提出 x 个问题并存储结果。x x --verbose -v 显示信息(例如 x x 次推理)。x x --help -h 显示此消息并退出。x QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 您可以看到,在运行演示二进制文件时,您可以指定诸如“启用/禁用 NPU”、“输入/输出格式”和“启用/禁用 RAG”之类的参数。 4.2.演示运行 首先,尝试使用键盘输入模式。 如果运行演示程序时启用 NPU 选项,它将等待输入,如下所示。 $ ./eiq_genai_flow--使用中子 剧透 (选中阅读) root@imx95-19x19-lpddr5-evk:~/eiq_genai_flow# ./eiq_genai_flow--使用中子 目标设备:i.MX95 [NeutronEP:分配器] CMA 用户空间内存 1536 MB Neutron:内核缓冲区虚拟地址 0xfffe50e00000,填充地址 0x100000000,对齐地址 0x100000000,大小 0x80000000,对齐方式 0x0 高位 0x1,低位 0x0,偏移量 0x0 [NeutronEP:分配器] 0 0xfffe50e00000 512 MB [NeutronEP:分配器] 1 0xfffe70e00000 512 MB [NeutronEP:分配器] 2 0xfffe90e00000 512 MB 2025-05-20 21:21:54.180329391 [W:onnxruntime:, session_state.cc:1168VerifyEachNodeIsAssignedToAnEp] 某些节点未分配给首选执行提供程序,这可能会对性能产生负面影响,也可能不会。例如ORT 明确地将与形状相关的操作分配给 CPU 以提高性能。 2025-05-20 21:21:54.180415808 [W:onnxruntime:, session_state.cc:1170VerifyEachNodeIsAssignedToAnEp] 在非最小构建版本上以详细输出重新运行将显示节点分配。 使用的LLM:danube-onnx TTS模型采用16kHz量化 请输入您的问题: root@imx95-19x19-lpddr5-evk:~/eiq_genai_flow# ./eiq_genai_flow--使用中子 目标设备:i.MX95 [NeutronEP:分配器] CMA 用户空间内存 1536 MB Neutron:内核缓冲区虚拟地址 0xfffe50e00000,填充地址 0x100000000,对齐地址 0x100000000,大小 0x80000000,对齐方式 0x0 高位 0x1,低位 0x0,偏移量 0x0 [NeutronEP:分配器] 0 0xfffe50e00000 512 MB [NeutronEP:分配器] 1 0xfffe70e00000 512 MB [NeutronEP:分配器] 2 0xfffe90e00000 512 MB 2025-05-20 21:21:54.180329391 [W:onnxruntime:, session_state.cc:1168VerifyEachNodeIsAssignedToAnEp] 某些节点未分配给首选执行提供程序,这可能会对性能产生负面影响,也可能不会。例如ORT 明确地将与形状相关的操作分配给 CPU 以提高性能。2025-05-20 21:21:54.180415808 [W:onnxruntime:, session_state.cc:1170VerifyEachNodeIsAssignedToAnEp] 在非最小构建版本上以详细输出重新运行将显示节点分配。使用的LLM:danube-onnx TTS模型采用16kHz量化 请输入您的问题: 当我询问关于I2C(一种由NXP(前身为飞利浦)开发的通信标准)时,我得到了以下答复。(有关I2C总线的文章,请参见此处。) YuseiUegama_0-1749459986192.png 本演示中使用的 LLM 为 Danube(5 亿参数),量化级别为 int8。以下是基准测试信息。 平台 加速器 首次令牌到达时间 (TTFT) 托克/秒 命令 i.MX 95 CPU(6线程) 0.94秒 9.38 ./eiq_genai_flow -b i.MX 95 NPU(中子) 0.59秒 9.72 ./eiq_genai_flow -b --use_neutron 注意:此演示将在 2 小时后超时。 5. RAG 演示 5.1.什么是 RAG? RAG(搜索增强与生成)通过基于知识库中的事实信息来解释输入,从而增强 LLM 的响应。这显著提高了响应与提示的相关性,并减少了 LLM 的幻觉。此演示使用 all-MiniLM-L6-v2(2200 万个参数)和 int8 量化。 5.2.RAG 使用示例 该应用程序可用于各种产品,包括工业设备、汽车设备和医疗设备,但作为用例,我们将考虑胰岛素注射器。 首先,如果您询问在只有 LLM 而没有 RAG的环境中应该在哪里注射胰岛素,LLM 将使用其通用知识库生成以下答案: $ ./eiq_genai_flow--使用中子 YuseiUegama_1-1749460020221.png 生成的答案是“上臂”,但如果指定产品注射到不同的部位,这将出现问题,如下图所示。 YuseiUegama_2-1749460106966.png 在本演示中,上述说明已转换为 RAG 数据库,因此可以纠正答案。 使用 --use-rag 选项运行演示程序,并提出同样的问题。 $ ./eiq_genai_flow--use-neutron --use-rag YuseiUegama_3-1749460170890.png 我们确认所获得的答案符合数据库指令的规范。 6. RAG数据库更新 NXP 在以下链接提供了一个 RAG 数据库生成器: dm-eiq-genai-flow-demonstrator/retrieval-database-generator at main · nxp-appcodehub/dm-eiq-genai-flow-demonstrator · GitHub YuseiUegama_2-1749459852554.png 6.1.在主机上进行设置 在默认环境下,胰岛素注射器手册已经编译到 RAG 数据库中,但本章我们将从 PDF 文件更新数据库。 移动到 edm-eiq-genai-flow-demonstrator 下的 retrieval-database-generator 目录,该目录是您在第 3 章中克隆的。 $ cd retrieval-database-generator 安装所需软件包 $ ./install.sh 要在此生成器的解析过程中使用对接功能,请运行以下命令: $ pip install docling==2.14.0 检索数据库生成器目录具有以下结构: 将要转换为 RAG 数据库的 PDF 文件放在 input_files 目录下。 . ├── assets ├── install.sh ├── LICENSE.txt ├── pyproject.toml ├── README.md └── src ├── data │ ├── chunked_files │ ├── input_files │ │ └── <<< PUT PDF FILES HERE >>> │ ├── parsed_files │ └── rag_database.pkl ├── document_parsing └── rag 这次,我们将使用i.MX 机器学习用户指南作为验证文件,该指南总结了 i.MX 的 AI/ML 相关信息。 $ cd src/data.input_files $ wget https://www.nxp.com/docs/en/user-guide/IMX-MACHINE-LEARNING-UG.pdf 现在设置已经完成,我们将开始将 PDF 文件转换为数据库的过程。 6.2 解析 PDF 使用以下命令将 input_files 中的 pdf 文件转换为 md(Markdown)格式。 $ python -m document_parsing 解析成功完成后,您可以看到 PDF 已转换为 MD,如下所示。 PDF YuseiUegama_4-1749460249764.png md(Markdown) YuseiUegama_5-1749460272708.png 6.3.生成块(Markdown -> 块) 使用以下命令将 md 文件转换为块。 $ python -m rag.preprocessing.generate_chunks 分块成功完成后,将在 chunked_filesd 目录中生成一个 json 文件。 也可以通过手动编辑此文件来手动修改数据库。 请参阅Medical_hand_made_chunks.json 。 { "id": { <--- A unique identifier (mandatory) "chunks": [], <--- A list of text chunks (mandatory) "metadata": "...", <--- Additional metadata (optional) ... <--- Other optional metadata fields }, ... <--- Other dict of chunks and metadata } 6.4.生成 RAG 数据库(块->pkl) 使用以下命令将数据块转换为数据库(pkl)。 $ python -m rag.preprocessing.generate_embeddings 6.5.RAG数据库操作检查 您可以使用以下命令检查您创建的数据库的运行情况。 $ python -m rag -v 作为测试,我们来查询一下“tensorflow-lite demo”的路径,该路径在i.MX 机器学习用户指南中描述如下: PDF摘录 YuseiUegama_6-1749460330359.png RAG验证结果 YuseiUegama_7-1749460340073.png 得到了我想要的答案! 使用FTP、SD 卡写入器等方式,将上述过程中创建的pkl文件传输到i.MX 95EVK上的“eiq_genai_flow/rag/src/data/”文件夹,从而更新RAG数据库。 6.6.使用 EVK 进行验证 首先,我想问一下不使用 RAG 的TensorFlow lite 演示。 $ ./eiq_genai_flow--使用中子 YuseiUegama_0-1749461872635.png LLM 生成了一个通用答案。 接下来,启用 RAG并提出相同的问题。 $ ./eiq_genai_flow--use-neutron --use-rag YuseiUegama_1-1749461892853.png 我们已确认我们的自定义数据库在 EVK 上运行正常! 7. 音频输入/输出演示 eIQ Gen AI Flow 还支持语音输入和输出。 7.1.设置 如图所示,将扬声器和麦克风连接到 EVK 上的音频插孔。 YuseiUegama_1-1749459822093.png 7.2.演示运行 在 EVK 上运行演示程序,并使用选项“--input-mode vasr”。 $ ./eiq_genai_flow--use-neutron --输入模式 vasr 将显示以下等待窗口,说出唤醒词“Hey NXP”后即可开始语音输入。 剧透 (选中阅读) root@imx95-19x19-lpddr5-evk:~/eiq_genai_flow# ./eiq_genai_flow--use-neutron --i 输入模式 vasr 目标设备:i.MX95 [VITapp] 支持的唤醒词: [VITapp] '嘿,恩智浦!' 使用的ASR模型:whisper-small.en [NeutronEP:分配器] CMA 用户空间内存 1536 MB Neutron:内核缓冲区虚拟地址 0xfffdca200000,填充地址 0x100000000,对齐地址 0x100000000,大小 0x80000000,对齐方式 0x0 高位 0x1,低位 0x0,偏移量 0x0 [NeutronEP:分配器] 0 0xfffdca200000 512 MB [NeutronEP:分配器] 1 0xfffdea200000 512 MB [NeutronEP:分配器] 2 0xfffe0a200000 512 MB 2025-05-20 22:01:40.086599445 [W:onnxruntime:, session_state.cc:1168VerifyEachNodeIsAssignedToAnEp] 某些节点未分配给首选执行提供程序,这可能会对性能产生负面影响,也可能不会。例如ORT 明确地将与形状相关的操作分配给 CPU 以提高性能。 2025-05-20 22:01:40.086685028 [W:onnxruntime:, session_state.cc:1170VerifyEachNodeIsAssignedToAnEp] 在非最小构建版本上以详细输出重新运行将显示节点分配。 使用的LLM:danube-onnx TTS模型采用16kHz量化 ### ## Speak the wakeword to start ## ### root@imx95-19x19-lpddr5-evk:~/eiq_genai_flow# ./eiq_genai_flow--use-neutron --i 输入模式 vasr 目标设备:i.MX95 [VITapp] 支持的唤醒词: [VITapp] '嘿,恩智浦!' 使用的ASR模型:whisper-small.en [NeutronEP:分配器] CMA 用户空间内存 1536 MB Neutron:内核缓冲区虚拟地址 0xfffdca200000,填充地址 0x100000000,对齐地址 0x100000000,大小 0x80000000,对齐方式 0x0 高位 0x1,低位 0x0,偏移量 0x0 [NeutronEP:分配器] 0 0xfffdca200000 512 MB [NeutronEP:分配器] 1 0xfffdea200000 512 MB [NeutronEP:分配器] 2 0xfffe0a200000 512 MB 2025-05-20 22:01:40.086599445 [W:onnxruntime:, session_state.cc:1168VerifyEachNodeIsAssignedToAnEp] 某些节点未分配给首选执行提供程序,这可能会对性能产生负面影响,也可能不会。例如ORT 明确地将与形状相关的操作分配给 CPU 以提高性能。2025-05-20 22:01:40.086685028 [W:onnxruntime:, session_state.cc:1170VerifyEachNodeIsAssignedToAnEp] 在非最小构建版本上以详细输出重新运行将显示节点分配。使用的LLM:danube-onnx TTS模型采用16kHz量化 ### ## Speak the wakeword to start ## ### 您可以在下面的视频中看到音频输入和输出。 (在“我的视频”中查看) 8. 总结 使用eIQ Gen AI Flow和SoC i.MX 95 ,可以评估 LLM+RAG,这对于嵌入式设备来说是理想的选择。 我们拥有端到端的解决方案环境,其中不仅包括 LLM 和 RAG,还包括音频输入/输出环境。 通过使用RAG 生成器,即使是 LLM 和 RAG 初学者也可以轻松自定义他们的 RAG 数据库。 ========================= 我们目前无法回复此帖子“评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问,请参阅“ NXP技术问题-如何联系我们(日语博客) ”。 (如果您已经是恩智浦的分销商或与恩智浦有合作关系,您可以直接询问负责人。) 要在嵌入式设备的有限资源内使用 LLM,需要RAG 。 在本文中,我们将以实践操作的形式介绍 NXP 的 LLM + RAG 解决方案“eIQ GenAI Flow” 。 i.MX处理器 MCUXpresso SDK SW | 下载 技术聚焦 日本博客
記事全体を表示
下一代非易失性存储器MRAM:其特性(日文博客) 下一代非易失性存储器, MRAM 随着制程技术的不断进步,将传统闪存集成到28纳米及以下世代的微控制器中变得越来越困难。因此,许多公司正在考虑用非易失性存储器(NVM)来替代闪存,用于其下一代微控制器。其中一种替代方案是磁阻随机存取存储器( MRAM ),这是一种利用磁性来存储数据的下一代非易失性存储器。 恩智浦半导体和台积电将携手推出业界首款采用16nm FinFET工艺的汽车嵌入式MRAM 。 https://www.nxp.jp/company/about-nxp/newsroom/NW-NXP-AND-TSMC-DELIVER-FIRST16NM-FINFET-MRAM 恩智浦半导体将在其最近发布的S32K5系列汽车微控制器中采用MRAM。 https://www.nxp.jp/products/S32K5 Keita_Nagashima_0-1753852859023.png 以下是MRAM与现有闪存相比的一些一般特性: 特征 MRAM 闪存​ 重写速度 高速 晚的 重写电阻 非常高 有限的 数据保留期限 几十年 几年到十年 即时的 高(接近DRAM) 低(带写入延迟) ・MRAM极快的写入速度不仅在产品开发过程中非常便捷,还能显著缩短大规模生产线上的程序写入时间,从而降低生产成本。我们相信,这也有助于实现高速处理,并在执行FOTA时降低功耗。 ・与闪存不同,MRAM 无需先擦除数据即可覆盖写入,这使得软件开发成为可能。 此外,MRAM 的重写次数远高于闪存,因此无需区分程序和数据记录用途,使用起来更加灵活。在某些情况下,它还可以用作速度稍慢的 SRAM。 概括 -虽然下一代主流汽车系统非易失性存储器的发展在一定程度上取决于未来的市场趋势,但我们相信,由于工艺小型化而实用性提高的 MRAM 无疑是下一代产品的领先候选者。 ========================= 我们目前无法回复此帖子“评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问,请参阅“ NXP技术问题-如何联系我们(日语博客) ”。 (如果您已经是恩智浦的分销商或与恩智浦有合作关系,您可以直接询问负责人。) ​ 随着制程技术的不断缩小,将传统闪存集成到28纳米及以下世代的微控制器中变得越来越困难,因此许多公司正在考虑用非易失性存储器(NVM)来替代闪存,用于其下一代微控制器。MRAM 就是这样一种非易失性存储器。 本文介绍了MRAM的特性。 (阅读时间:5分钟) 通用微控制器 技术聚焦 日本博客
記事全体を表示
S32DSの証明書 サードパーティ認証要件を満たした S32DS の証明書を提供できますか? Re: Certificate of S32DS S32DSまたはRTDのリリースノートとMCUのエラッタシート Re: Certificate of S32DS はい、分かりました。まだいくつか質問があります。MCU (S32K144) の S32DS の既知の脆弱性と欠陥の対応する表はありますか?ソフトウェア開発におけるこれらの脆弱性や欠陥を回避するにはどうすればよいでしょうか? Re: Certificate of S32DS S32DS は、無料のコンパイラである GCC をネイティブで使用するため、ASIL 開発には使用できません。 CASE アプリケーションが ISO26262 に準拠する必要がある場合、認定コンパイラが必要です。IAR、GHS、Diab は認定されていますが、無料ではないことはわかっています。S32DS IDEs で使用される外部コンパイラ用のプラグインがあります。 Re: Certificate of S32DS プロジェクトのセーフティ認証に関して問題があります。機能安全評価の 1 つにツール信頼性評価があり、ソフトウェア開発プロセス中の関連ツールが ASIL レベルの要件を満たすことができるかどうかを評価する必要があります。無料のデフォルトツールとして、S32DS はソフトウェア開発の機能安全レベルを満たすことをCAN保証できますか?対応する証明書または認定資格をお持ちですか? Re: Certificate of S32DS もっと具体的に教えていただけますか?
記事全体を表示
S32K(ST05 板)上未收到 CAN FD 远程帧响应 说明: 你好、 我正在研究 CAN FD 设置,我使用 ST05 板作为一个节点,将 PeakCan 用作另一个节点。 我从 ST05 发送一个远程帧。 在 PeakCAN 上,我可以在 PeakView 中看到这个远程帧。 然后,我从 PeakCAN 手动发送一个数据帧(具有相同的 ID)作为响应。 问题: ST05 板未收到数据帧响应。 注意: 我使用的是一个信息缓冲器。缓冲区首先用于传输远程帧,然后在发送后自动切换到RX 模式。 远程帧传输正常,但接收不到响应数据帧。 问题 在发送远程帧和接收相应数据帧时使用同一个信息缓冲区是否有任何限制? 我是否需要配置单独的 RX 报文缓冲区,以便在发送远程帧后接收数据帧? 还是我遗漏了 FlexCAN 中的某些配置? 提前感谢! Re: CAN FD Remote Frame Response Not Received on S32K (ST05 board) 您好, 在 CAN FD 中,完全不支持远程帧 - 远程请求替换 (RRS) 始终占主导地位 (0)。当配置 TX MB 发送 CAN FD 帧时,RTR 必须为 0,因此不会切换到 RX MB。 对于经典 CAN 帧,RTR 是有效的,切换到 RX MB 将对 FlexCAN 起作用。 BR, Petr
記事全体を表示
eMIOSによるDMAを定期的にトリガーする こんにちは、 私は S32K344 を使用しており、以前はPIT を使用して DMA 転送を定期的にトリガーしていました(具体的には、あるバッファーから別のバッファーにデータを移動していました)。この設定はうまく機能しました。 現在、 PIT を eMIOS に置き換えてDMAMUXを定期的にトリガーしようとしていますが、問題が発生しています。私は、OPWMB モードで eMIOS を使用してこれを実装し、周期的な信号を生成して、PIT と同様に DMAMUX をトリガーすることを期待しました。ただし、DMA 転送は行われていないようです。 デザインを明確にし、サポートを得るために、セットアップを再現する最小限のサンプル プロジェクトを作成しました。含まれるもの: 定期的な出力用に設定されたeMIOS トリガー時にデータを転送するためのDMAMUXとDMAのセットアップ 単純なバッファ間転送 どなたか調べていただき、何が問題なのかを特定したり、eMIOS が DMAMUX を確実にトリガーするための正しい構成を提案していただければ幸いです。 Re: Trigger the DMA by eMIOS periodically こんにちは、 はい、フラグが設定されると DMA 要求が生成されます。フラグ設定時間は使用するモードによって異なるCAN。 OPWMB モードでは、これは BS1 一致 (後縁) または AS1/BS1 両方一致 (前縁/後縁) のいずれかになります。 OPWMT モードでは、フラグは AS2 マッチ時にのみ設定されます。AS1、BS1、または BS2 の一致はフラグに影響しません。SO、フラグ生成はエッジの配置に依存せず、PWM 期間にわたって自由に設定できます。 BR、ペトル Re: Trigger the DMA by eMIOS periodically こんにちは、 今は動作しています。情報ありがとうございます! eMIOS PWMを使用して DMA を定期的にトリガーする必要があります。現在の設定では、 25 µs 周期のOPWMB モードを使用しています。私の理解では、DMA 要求はフラグが設定されたときに生成され、これはPWM 期間の終了時に発生します。 ご確認いただけますでしょうか: OPWMB モードでは、DMA 要求は後縁、つまり期間の終わりにタイムベース カウンタがリロードされるときにトリガーされますか? また、定期的な DMA トリガーの場合、 OPWMT モードの方がOPWMBよりも正確かどうかも検討しています。 たとえば、タイムベースを25 µs (つまり、1000 ティック)に設定し、 TRIGGR を1000 ティックでアクティブにするように設定した場合、 OPWMT はより優れた制御またはタイミング精度を提供しますか? 定期的な DMA トリガーに最適なモードについて、詳細な洞察や推奨事項を共有していただければ幸いです。 よろしくお願いいたします! Re: Trigger the DMA by eMIOS periodically こんにちは、 eMIOS チャネルで DMA トリガーが完全に有効化されていませんでした。以下のコードを追加 PetrS_0-1760514820816.png BR、ペトル
記事全体を表示
在 i.MX 8MP 上拉动 RTSP 数据流失败 嗨,社区 # iMX 800 万像素 @ Harvey021 我在拉取 rtsp 数据流时遗漏了一个问题。 "RTSP_URL" 已通过 VLC 验证。 视频编码H264 命令:gst-用上市-1.0 rtspsrc location=$rtsp_URL 队列!rtph264depay !V4L2H264DEC !自动视频水槽 目标图像版本: linux6.6.36 full 目标机: i.MX 8mp noway_1-1762140306278.png Re: Pull RTSP stream failed on i.MX 8MP 你好, 是否有更多信息? 致敬, Zhiming Re: Pull RTSP stream failed on i.MX 8MP 视频的帧频为 10。详细信息如下。 noway_0-1762829616720.png Re: Pull RTSP stream failed on i.MX 8MP 你好@noway 如果你想解码 60FPS 的视频,最大分辨率是 1080p,而 gstreamer 的最大分辨率是有限的。 随着 VPU 分辨率的提高,性能也会下降。 对于 opencv,您可以尝试以下配置。 gst = f"rtspsrc location={RTSP_URL} protocols=tcp latency=50 ! " \ f"rtph265depay ! h265parse config-interval=-1 ! " \ f"decodebin ! videoconvert ! video/x-raw,format=BGR ! " \ f"queue max-size-buffers=1 leaky=downstream ! " \ f"appsink drop=true max-buffers=1 sync=false" cap = cv2.VideoCapture(gst, cv2.CAP_GSTREAMER) 致敬, Zhiming Re: Pull RTSP stream failed on i.MX 8MP 感谢您的回复,解码现已正常。不过,我仍然有两个问题: 当我将视频分辨率从 1080p 改为 2K 时,它无法解码 有关日志请参阅附件"pull.log" 。 2.使用 Python 解码时,我发现获取一帧数据需要 0.4 秒--为什么这么慢? 代码请参阅附件"rtsp.py" 。 noway_0-1762767557119.png Re: Pull RTSP stream failed on i.MX 8MP 您好, 请尝试使用以下命令分割音频和视频配置。 gst-launch-1.0 -v rtspsrc location=xxxxx name=src protocols=tcp latency=100 \ src. ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! v4l2h264dec! videoconvert ! autovideosink \ src. ! queue ! application/x-rtp,media=audio,encoding-name=MPEG4-GENERIC,payload=97 ! rtpmp4gdepay ! aacparse ! avdec_aac ! audioconvert ! audioresample ! autoaudiosink 致敬, Zhiming Re: Pull RTSP stream failed on i.MX 8MP 他表示没有找到 avdec_h264。 noway_0-1762331427583.png 然后我尝试了 v4l2h264dec,或非成功。错误日志请参阅附件。 正在尝试命令:gst-用上市,不用发布-1.0-v rtspsrc location=$RTSP_URL protocols=tcp latency=100 !rtph264depay !V4L2H264DEC !autovideosink> pull.log 2>& 1 Re: Pull RTSP stream failed on i.MX 8MP 你好, ,请尝试使用以下命令。 gst-launch-1.0 -v rtspsrc location=$RTSP_URL protocols=tcp latency=100 ! rtph264depay ! avdec_h264 ! autovideosink 致敬, Zhiming
記事全体を表示
是否有关于调整 PN7150 上的 RF 配置参数的指南? 我正在尝试提高围绕 PN7150 构建的定制板的读取可靠性。我怀疑一个主要组件是正在写入控制器的 RF 配置参数,因为我们目前正在使用来自示例的值,根据注释,这些值已调整到演示板。 我发现 AN13218 描述了如何调整 PN7160 的这些参数。我认为 PN7150 的过程类似,但我在任何地方都找不到它的记录。我希望能够只使用 PN7160 文档,但根据我在 PN7150 示例中看到的值,转换 ID 似乎有所不同。 回复:是否有关于调整 PN7150 上的 RF 配置参数的指南? 谢谢@KaiLi , UM10936 不包含转换 ID,而是指向 AN11755 [PN7150 天线设计和匹配指南]。我之前曾找到过这份文件,但没有完整阅读,错误地认为它只包含有关调整天线和外部匹配网络的信息。该文档的后半部分似乎描述了调整 RF 配置的过程,该过程几乎与 PN7160 可用的单独文档相同。
記事全体を表示
i.MX7DのPLL出力周波数を変更するにはどうすればよいですか こんにちは。 i.MX7DのPLL出力周波数を変更するにはどうすればよいですか。 リファレンスマニュアルのPLLセクションに見つかりませんでした。 ありがとうございます。 Re: i.MX7D の PLL 出力周波数を変更するにはどうすればよいですか IMX7Dを使用しているため、DTSファイルには7d.dtsiが含まれているはずです、7D CPU周波数設定の場合は7d.dtsiを参照でき、Mコアの場合はSDKをダウンロードできます MCUXpresso SDK Builder Re: i.MX7D の PLL 出力周波数を変更するにはどうすればよいですか Linuxを使用していますか?はいの場合は、DTSIファイルでこれを設定でき、opp-tableを見つけます https://github.com/nxp-imx/linux-imx/blob/lf-6.6.y/arch/arm/boot/dts/nxp/imx/imx7d.dtsi Re: i.MX7D の PLL 出力周波数を変更するにはどうすればよいですか どのPLLを変更する必要がありますか?
記事全体を表示
为安装 HSE 闪烁十六进制后,代码不跳转到主系统 您好, 我为 s32K312 移植了 HSE 固件安装示例代码。 我可以在刷新 mcu 之后安装 HSE 固件并在调试模式下运行它,但是当我直接刷新项目的十六进制文件时我遇到了问题,然后它无法安装固件,因为它在 RESET mcu 后它没有跳到主服务器。 我正在安装 IVT。请查看链接器文件和 boot_header.c文件供您参考。 并提供相应的解决方案。 Re: code not jumping to main after flashing hex for hse installation 为了帮助您调试为什么 S32K312 在闪存十六进制文件后不能跳转到主菜单(但在调试模式下可以工作),我们需要关注几个关键方面: IVT 和启动头配置 链接脚本与 IVT/bootloader 对齐 RESET 向量和启动条目行为 可能的监视器RESET或早期故障 既然你已经使用 IVT 移植了 HSE 固件安装,并提到了独立组网 (SA) 十六进制刷新的问题,请分享你的链接脚本。看到这些信息后,我就可以帮助确定是否存在配置错误或缺少设置步骤。 mymilestonecard.com 激活 Re: code not jumping to main after flashing hex for hse installation 如果问题是应用程序在RESET后无法启动,而是在调试模式下运行,则几乎总是由于: IVT 指向错误的 RESET 向量 HSE 固件地址不匹配 链接器未将 IVT/boot_header 放在正确位置 RESET 矢量部分映射不正确 publixsurvey.com Re: code not jumping to main after flashing hex for hse installation 您好, 我移植了为 s32k344 提供的示例代码,检查后发现链接文件与 s32k344 相同。 我在邮件中附上了文件。请检查并告诉我哪里做错了。 Re: code not jumping to main after flashing hex for hse installation 您好, 对于 S32K312,请确保在链接器文件和 boot_header.c 中正确设置了 IVT 和启动配置。检查 HSE GPR 状态寄存器,确认固件是否存在。如果问题仍然存在,请使您的IVT更新流程与恩智浦示例项目保持一致,因为不正确的IVT更新可能会导致启动失败。 Re: code not jumping to main after flashing hex for hse installation 请提供解决方案
記事全体を表示
S32V234 的完整详细信息 嗨,团队、 我想购买一台 S32V234-EVB2,它可以在演示中显示,同时实时部署,确定它与索尼相机等子部件工作的完整性级别。 S32V234-EVB2 评估板 12 V 电源适配器 2x10 针至 2x5 针 适配器 ,适用于 JTAG 我与你们的一位代表 LINA 交谈过。我很高兴她帮了我,也帮了 Veronika。 我要的是原样,或者可以是多个部件,这样我就可以组装它,并在我向你们下单购买时为我的工作分配一个支持。 这是我的项目用途,我是真正的买家,一旦我得到完整的细节,我就会得到它,我对它的满意程度会让我完全愿意从贵公司购买它。我在该产品中提供了完整的详细信息,包括演示中定义的所有部件。 Re: Complete details of S32V234 你好@SY1602、 感谢您联系我们。我知道你的要求是购买 S32V234 开发板,因为这个社区是为了获得技术支持,我无法帮助你完成购买流程,请联系 S32V234 产品页面查看可用部件,并查看你所在地区的可用代理商: alejandro_e_0-1753407486015.png 如果您在查找某些信息时遇到困难,请告诉我、 如果我对您的要求理解有误,请告诉我。 谢谢!
記事全体を表示
KW45 - 带有 DMA 的 LPSPI 大家好, 我正在尝试使用 KW45B41Z-EVK 评估板实现单工 SPI 传输。我的目标是使用 DMA 执行快速 SPI 传输。最终目标是通过 LPSPI1 外设驱动 ILI9341 LCD 显示器。 我遇到的问题是 SPI 交易长度比软件指定的要长。当我尝试传输 4 字节时,总线上有 12 个字节。当我尝试传输 64 字节时,总线上有 72 字节。我发现传输的字节总是比我打算传输的字节多 8 个。这似乎与 "每帧比特 "字段有关,我之前将其设置为 8。将其更改为 16,我发现总线上传输的字节总是比应有的多 16 个字节。这当然会导致缓冲区溢出。 使用 LPSPI_MasterTransferEDMALite() 和 LPSPI_MasterTransferEDMA() 函数都能重现这些症状。调试器显示 bytesPerFrame 值为 1,因此我满足了 文档 中规定的条件 。 我需要帮助解决缓冲区溢出问题。我附上了项目目录Bringup_LPSPI_eDMA.zip 谢谢! 阿鲁什 Re: KW45 - LPSPI with DMA 你好 您能否帮助我们确认您所指的外设工具是否是 MCUXpresso 配置工具中的工具? 有关该工具和 MCUXpresso 工作流程的更多信息,请参阅[MCUXIDECTUG]第 5 章和第 5.3 章。 在本指南中,您可以看到外设配置 请注意,我们不建议在无线示例中使用配置工具,因为它可能会覆盖无线部分所需的先前配置。 希望能帮到你! 顺祝商祺! 路易斯 Re: KW45 - LPSPI with DMA 你好 我指的是下面的示例:[kw45b41zevk_lpspi_edma_b2b_transfer_master]。示例和我自己的项目都使用SDK 版本 25.06.00(890 2025-06-27) 我没有第二个 EVK。我一直在用示波器进行测试。这些测试对于阻止该板上的SPI交易以及过去使用不同MCU的经验均有效。 该示例项目确实可以正常运行,它传输的正好是 TRANSF ER_SIZE 宏所指定的 64 字节。在我的项目中,我通过外围设备配置工具进行所有外围设备配置。初始化代码由该工具自动生成,运行时代码遵循示例的逻辑。我怀疑漏洞在这里,但我无法完全找到。 顺便说一句;外围设备工具的工作流程是我在 S32 平台 " 的 " S32DS 和适用于 ARM " IDE 的 " S32DS 时所遵循的。但我所看到的 MCUXpresso 示例中没有一个使用了外设工具。在哪里可以找到使用外设工具的 KW45 示例? 谢谢! 阿鲁什 Re: KW45 - LPSPI with DMA 你好,阿鲁什、 您能否帮助我们确认您是否使用了 SDK 示例作为基础?在最新版本[25.06]中提供了 SDK 示例、可以满足您对 SPI DMA 传输的要求,例如 [kw45b41evk_lpspi_edma_b2b_transfer_master] ? 你有没有 2 块 KW4B4I-EVK 板? 顺祝商祺! 路易斯
記事全体を表示
Lin_Slave_S32K118_Example_DS 编译错误 您好, 我安装了 S32DS V3.6.2250529(更新 2)、SW32K1_S32M24x_RTD_R21-11_3.0.0_D2503_DesignStudio_updatesite.zip 和 SW32K1_S32M24X_LIN_STACK_2.0.0_D2503_DesignStudio_updatesite.zip。 然后我导入 Lin_Slave_S32K118_Example_DS,可以看到缺少一些头部文件,详情请参见附件"compiler error.txt" 。 我尝试在"C:\NXP\S32DS.3.6.2" 中搜索这些文件,并在编译路径中添加: LJX_0-1758943732075.png 但仍会报告 mcu.h -> Mcu_Cfg.h编译器"[!" 错误: LJX_2-1758943975919.png Q1: 请帮助检查环境是否有问题? 问题 2:我试图在 S32DS 中设置 LIN 栈配置,然后将 LIN 代码移植到我的 keil 编译环境中,您能给我一些建议吗? 此致, Re: Lin_Slave_S32K118_Example_DS compile error Hi@LJX 从截图中的错误来看,您没有正确安装 RTD 和 LIN STACK。请仔细检查您的安装。 例如,您可以尝试打开 RTD 提供的一些示例。 Re: Lin_Slave_S32K118_Example_DS compile error 我尝试更新源代码,但会出现错误: LJX_1-1759131347768.png LIN Stack 文档显示支持 S32DS V3.6,但我现在使用的是 S32DS V3.6.2,所以这是 S32DS 版本问题? LJX_2-1759131373868.png Re: Lin_Slave_S32K118_Example_DS compile error Hi@LJX 您尝试过在编译项目前点击更新代码吗? Senlent_0-1759114685727.png
記事全体を表示
如何使 i.MX93 上的 U-启动 SPL 和 ATF/BL31 输出静音? 你好,恩智浦社区、 我正在使用一台基于i.MX93的设备,它具有双重用途的控制台端口:它既用于编程/调试设备,又用作与网络设备(思科、Fortigate等)的出站控制台连接。 问题:在启动期间将控制台电缆连接到外部网络设备时,U-Boot SPL 和 ATF/BL31 启动信息会回显到外部设备的控制台。如果外部设备也在启动,它可以将这些字符解释为输入命令,这可能会损坏其引导加载程序或配置。 我成功静音的内容:我已经在我的defconfig中使用以下配置成功地对U-启动进行了静音: CONFIG_SILENT_CONSOLE=y CONFIG_SILENT_CONSOLE_UPDATE_ON_SET=y CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC=y CONFIG_SILENT_U_BOOT_ONLY=y CONFIG_SYS_DEVICE_NULLDEV=y CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_STOP_STR="\x03" CONFIG_AUTOBOOT_DELAY_STR="" 我还尝试在 common/spl/spl.c 中添加以下内容,使 SPL 保持沉默: void board_init_r(gd_t *dummy1, ulong dummy2) { /* 在 SPL 中强制静音控制台 */ gd->flags |= GD_FLG_SILENT; /* ... 其余代码...*/ } ```` 仍然输出的内容: 尽管做了这些更改,我仍然在控制台上看到 SPL 和 ATF 输出: U-启动 SPL 2023.04+gf8a2983ec83+p0(2024 年 3 月 4 日-07:25:04 +0000) SOC:0xa1009300 LC:0x2040010 PMIC:低驱动电压模式 DDR:3733MTS M33 准备就绪通知:BL31:v2.8(版本):lf-6.3-1.0.0-0-g8dbe28631 通知:BL31:版本:2024 年 1 月 22 日 17:57:56 问题 -对于 U-启动 SPL:i.MX93 的 U-Boot 2023.04 中是否存在 CONFIG_SPL_SILENT_CONSOLE?如果是这样,除了设置 gd->flags |= GD_FLG_SILENT 之外,还需要哪些其他配置? - 对于 ATF/BL31:建议采用什么方法来静音 ATF NOTICE 消息?我是否应该在 LOG_LEVEL=0 的情况下重建 imx-atf?有任何 i.MX93 特定的注意事项吗? -替代方法:是否有更好的方法可以防止早期启动阶段的输出影响联网设备?我考虑过在硬件寄存器级别禁用 UART TX,但不确定这是否是推荐的方法。 环境: -SoC:i.mx93 -U-Boot 启动版本:2023.04+gf8a2983ec83+p0-ATF 版本:v2.8 (lf-6.6.3-1.0.0-0-0-g8dbe28631 )-编译系统:基于 Yocto 如能提供任何有关关闭这些早期启动阶段的指导,我将不胜感激! 谢谢! 尼特什 Linux Yocto Project Re: How to silence U-Boot SPL and ATF/BL31 output on i.MX93? 大家好 感谢您的反馈和支持。只要稍作调整,我就能使用上述方法正确静音 u-boot-spl、ATF 和 u-boot。 谢谢、 尼特什 Re: How to silence U-Boot SPL and ATF/BL31 output on i.MX93? Sprunki Retak e 是的,我之前在恩智浦系统上处理过这个确切的问题 —— 当你的启动日志让思科交换机感到困惑时,这很烦人!对于 SPL 来说,CONFIG_SPL_SILENT_CONSOLE 确实存在于最近的 U-启动 版本(包括 2023.04)中,但是你还需要确保在 SPL 主机初始化路径的早期就尊重它——有些板稍后会重新启用主机。对于 ATF/BL31,你说对了:在 ATF make 命令中使用 LOG_LEVEL=0 进行重建(例如,make plat=imx93 LOG_LEVEL=0)——那里没有 i.MX93 特定的捕获量,只要确保 Yocto 配方通过该标志即可。 Re: How to silence U-Boot SPL and ATF/BL31 output on i.MX93? 你好 Jorge, 我在 Arm-trusted-启动 中添加了几个补丁,你可以更改宏注意事项 (...),比如你可以将 UART TX 引脚混到 GPIO 模式... [Wizard @Oz 解码器] $ cat br-extrn/patches/Arm-trusted-firmware/单行版本-time.patch --- a/bl31/bl31_main.c +++ b/bl31/bl31_main.c @@ -124,8 +124,8 @@ void bl31_main(void) /* Init per-world context registers for non-secure world */ manage_extensions_nonsecure_per_world(); - NOTICE("BL31:%s\n", version_string); - NOTICE("BL31:%s\n", build_message); + NOTICE("BL31:%s", version_string); + /* NOTICE("BL31:%s\n", build_message); */ #if FEATURE_DETECTION /* Detect if features enabled during compilation are supported by PE.*/ --- a/make_helpers/build_macros.mk +++ b/make_helpers/build_macros.mk @@ -436,7 +436,7 @@ endef # 允许 覆盖时间戳,例如用于可重现的 版本,或者 # 同步多个项目的时间戳。 # 必须设置为 C 字符串(包括引号(如适用))。 -BUILD_MESSAGE_TIMESTAMP?=__TIME__ ", "__DATE__ +BUILD_MESSAGE_TIMESTAMP? = $ (shell LC_ALL=C 日期-u +' (%Y-% m-%D %T) ') .PHONY:图书馆 @@ -560,8 +560,8 @@ $ (elf):$ (OBJS) $(默认链接器脚本)IFDEF make_build_strings $( 调用 make_build_strings,$ (build_DIR) /BUILD_MESSAGE.O)else-@echo 'con_sage.O st char build_message [] = " build: " $ (build_message_Timestamp);\-const ChaR 版本_字符串 [] = "${VERSION_STRING} ";\ + @echo 'const char build_message [] = " 构建时间:$ (BUILD_MESSAGE_TIMESTAMP) ";\ + const char version_string [] = "${VERSION_STRING}${BUILD_MESSAGE_TIMESTAMP} ";\ c onst char 版本 [] = "${VERSION} "; '|\ $$ (CC) $$ (TF_CFLAGS) $$ (CFLAGS)-xc-c--o $ (BUILD_DIR) /build_message.o endif Re: How to silence U-Boot SPL and ATF/BL31 output on i.MX93? 你好 在 U-启动 中没有添加 CONFIG_SPL_SILENT_CONSOLE 的选项。 我的其他建议是添加变量: "silent=1\0" \ 并赋予它一个不同于"0" 的值: 您可以在此检查配置: 使用静音控制台构建 uboot 映像。 关于在硬件层面禁用 UART TX,这可能是可行的。 在 ATF 或 SPL 中配置键盘设置,在 U-Boot/Linux 启动之前保持 TX 处于非活动状态。 顺祝商祺!
記事全体を表示