Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
使用 usbdm 对 68HC912B32 编程 我正在尝试对一块装有这种芯片的旧板进行编程,但是对这个微控制器系列来说是全新的,所以不胜感激。 我下载并安装了 USBDM_4_12_1_340_Win.msi Windows 软件,并运行了"USBDM Memory Dump" 应用程序,转储了 68HC912B32 芯片上的闪存(地址范围 0x8000-0xFFFF)。 我还查看了"HCS12 Programmer" 或"Flash programmer" 应用程序,但其下拉菜单列表中没有 MC912B32 芯片。我还用 " Detect Chip " 按钮尝试了 " 设备选择 " 但它无法检测到我的芯片。 我不需要完整的开发环境/集成开发环境,只需要能够转储闪存、更换损坏的微控制器并用转储的程序对新微控制器进行编程。 这个 4 岁的https://community.nxp.com/t5/OSBDM-and-TBDML/program-the-HC12-B-Family-of-MCU/td-p/1324102这个问题很有趣,但并没有提供解决方案。 我的首选操作系统是 Linux 而不是 Windows,因此我非常乐意尝试基于 Linux 的解决方案。 对如何安装一个有效的编程环境有什么想法吗? 非常感谢 汤姆-克兰 Re: Programming a 68HC912B32 with usbdm 嗨,@pgo、 感谢您的跟进。我取得了一些进展。 Code Warrior 5.2 不支持 68HC912B32 的解决方案是安装 Code Warrior 5.1。这里建议https://community.nxp.com/t5/CodeWarrior-for-MCU/CodeWarrior-Development-Studio-for-HCS12-X-Microcontrollers/m-p/603056。 在 5.1 版中(见所附屏幕截图 Code-warrior2-run-as-administrator-MC68HC912B32+USBDM.jpg),MC68HC912B32 芯片已出现并可以选择。 但是,"连接 "下拉菜单中没有列出 USBDM 或 TBDML 选项。 在重新安装 Code Warrior 5.1 后,我重新安装了 USBDM 及其驱动程序,并将 USBDM 插入电脑。 为了检查 USBDM 未出现在 "代码勇士连接 "菜单中是否是因为 USBDM 不支持 68HC912B32,我尝试选择了 USBDM 支持的其他芯片。 我选择了 MC9S12A128B。 现在 “连接” 菜单增加了 3 个条目:" TBDML ", " HCS 串行监测 " & " USBDM "。请参阅所附屏幕截图 Code-warrior2-MC68HC9S12A128B+USBDM.jpg。 除了尝试修改 USBDM Tcl 代码以支持 68HC912B32 外,是否还有任何其他软件/硬件应用程序或其他选项可与 USBDM pod 一起使用以对该芯片进行编程? 如果没有,是否有其他支持 S/W 的硬件/软件选项可以让我对 68HC912B32 的闪存进行编程? 我的板只有用于调试/编程的 6 针 BDM 插槽 —— 所以必须假设制造商最初就是这样编程的,除非它是在焊接之前断路完成的,这似乎不太可能... 谢谢! 汤姆 Re: Programming a 68HC912B32 with usbdm 嗨,汤姆 很抱歉,我已经无法访问 Codewarrior(或 Windows!),因此无法亲自检查。 当我在恩智浦网站(https://www.nxp.com/products/68HC912B32)上搜索 68HC912B32 时,最终会找到您下载的 Codewarrior 版本,因此这似乎是正确的版本。 我不知道为什么 B32 没有出现。 对不起! Re: Programming a 68HC912B32 with usbdm 嗨,Pgo、 感谢您的跟进。 我已经部分拆解了之前转储的图像,所以应该可以拼凑出一个 .asm文件放入代码勇士项目中。 我找不到 Codewarrior 第 6 版的下载地址,但还是从https://www.nxp.com/design/design-center/software/development-software/codewarrior-development-tools/codewarrior-legacy/codewarrior-development-studio-for-hcs12x-microcontrollers-classic-ide-v5-2:CW-HCS12X下载了。 链接。 它被列为版本 5.2,重要的是,在 " 支持的设备 " 的 " Expand All " 复选框下列出了 68HC912B32。 安装 + 运行应用程序并检查版本号,显示的是 5.9 而不是 5.2。请参见所附截屏图片。 正在调用 " 启动对话框..." 和 " 创建新项目 " 提供了一个可选择芯片系列的弹出窗口。请参阅所附的截屏图片。 它只列出了 HCS12 & HCS12X 系列。 将这些节目扩展到家庭成员。请参阅所附的截屏图片。不出所料,其中没有 HCS912B32。 是我做错了什么,还是漏掉了什么显而易见的东西? 非常感谢 汤姆-克兰 Re: Programming a 68HC912B32 with usbdm 嗨,汤姆 很抱歉,USBDM 编程器不太可能适用于对您的芯片进行编程。 正如其他主题所指出的,这需要开发 TCL 脚本来完成基本工作(芯片启动、大量擦除等),并开发目标代码来完成块编程。 这是一项艰巨的工作,而且不能保证这种方法一定有效,因为 USBDM 采用的方法可能与早期的芯片不兼容。 可以使用位于 https://github.com/podonoghue/usbdm-eclipse-makefiles-build 的代表为 Linux 版本 USBDM。 我认为最好的办法是检查 Codewarrior V6(我认为)是否支持该芯片的 TBDML(USBDM 与之兼容)。 我不确定这是否允许独立编程,而不是从源代码进行调试开发。 仅适用于窗口。 再见
View full article
TEA2017启动异常 我参照UM11613文件,设计PFC+LLC电路,计划输出58V/13A。(TEA2017外围电路参数目前均与UM11613设计文件相同) 谐振腔参数为Lr=22uH,Lm=150uH,Cr=220nF ,输出暂采用带中心抽头的异步整流方式 目前在TEA2017上电启动后,仅能工作几百us就会停止工作。使用Ringo查看MTP并未看到触发保护(TEA2017所有参数默认)。这种情况下我应该检查哪一部分的电路,使其能正常工作? 1753775905739.png 1753776103887.png image.png Re: TEA2017启动异常 亲爱的 Yi 感谢您提供的补充信息。请使用设计工具中的推荐元器件。此外,MOSFET 和请按照 Magnetic_Implementation sheet 中的建议创建相应的电感器和变压器。 我可能需要联系应用工程师,就您的问题寻求建议。他们总是要求提供以下信息。 请分享: 客户:? 最终客户:?(可以与客户相同) 最终应用: ? 国家: 中国中国 年产量:? 致以最崇高的敬意 约瑟夫 Re: TEA2017启动异常 在我的次级侧,只有一个 TL431 反馈电路,而且我没有驱动任何负载。 Re: TEA2017启动异常 我将 Cr 改为 147 nF,但结果仍和以前一样。将温度从 333 K 调到 233 K 后,它就停止工作了。 image.png 我使用您提供的 Excel 工具进行了计算,结果显示 fo=88千赫.我不明白为什么 TEA2017 在 233 K 时停止工作。 image.png image.png image.png 在项目 2.1 中,我参考了 UM11613 中的 LLC 驱动器设计,并使用晶体管进行关断,这与第 2.1 节中指定的设置不同。在这种情况下,我应该如何调整参数设置,还是可以忽略这种差异? image.png 我已经购买了 TEA2017/3Y,到货后将用于后续测试。 非常感谢你们的帮助。 Re: TEA2017启动异常 亲爱的 Yi 我认为,随着负载的增加,TEA2017 试图通过降低频率来应对负载。这是所有 LLC 控制器的正确行为。然而,随着频率的降低,它已达到增益曲线的峰值,进一步降低频率将无法增加增益=功率来应对负载的增加,反而会降低增益=功率。 JozefKozon_1-1753851047482.png 您需要对 LLC 进行设计,使增益曲线的增益峰值向左和向上移动,这样随着负载的增加=>频率的降低,增益峰值就不会达到。请将 Cr 从 220nF 减少到例如150nF。这将改变增益曲线,使其能够应对功率的增加。 您可以使用我在上一个答案中附上的 LLC 设计工具。输入所需的规格,将计算出您的 TEA2017 外部元器件。 JozefKozon_2-1753851393951.png JozefKozon_3-1753851442620.png 另外,请考虑使用改进后的 TEA2017AAT/3 代替 TEA2017AAT/2。请参见附件。 致以最崇高的敬意 约瑟夫 Re: TEA2017启动异常 我使用的是 TEA2017AAT/2,注意到在触发信号停止输出之前,谐振频率突然从 333K 下降到 233K。为什么会这样? ff7401c93a337aa7c47c4a51b3da276.jpg 15ae105bea832f9e872b985aecd787d.jpg Re: TEA2017启动异常 亲爱的 Yi 您使用的是哪个 TEA2017?我们建议使用最新的TEA2017AAT/3版本。 JozefKozon_0-1753784656545.png 请将 Cr 从 220nF 降至 150nF,并观察启动行为。 请使用随附的设计工具来计算推荐的元器件。 致以最崇高的敬意 约瑟夫
View full article
"S32G2 定制硬件上的同步中止" 处理器,esr 0x96000210 - 访问 LPDDR4 时崩溃 亲爱的社区成员 我们在基于 S32G274 的硬件上遇到了启动问题,引导加载程序因数据中止异常而失败。 设置详情: 启动方法:QSP I 图像带集成 ramdisk 的定制 FIP 映像 闪存方法:S32DS 闪存工具和 Lauterbach(两种方法都会出现问题) 电路板支持包。 版本:43.0 启动加载程序: U-Boot 2022.04+gc01b3bf7b1+p0 SoC:S32G274A 我们能够配置 DDR 并能够启动直到 uboot 提示为止。但是在那之后访问DDR时崩溃, ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 请查找以下详细信息以供参考。 => md 80000000 1000 " Synchronous Abort" handler, esr 0x96000210 elr:00000000ff91cb68 lr : 00000000ff91cab8 (reloc) elr:00000000ff91cb68 LR : 00000000ff91cab8 x0 : 0000000000000009 x1 : 00000000ffbc66e8 x2 : 00000000fffffe x3 : 000000000020 x4 : 000000000000 x5 : 00000000ffbc66e0 x6 :000000000030 x7 : 00000000ffbc6630 x8 : 000000000010 x9 : 0000000000000002 x10: 00000000ffffffd8 x11: 000000000010 x12: 000000000001 x13: 000000000001 x14:000000000030 x15: 000000000021 x16: 00000000ff8af778 x17: 000000000000 x18: 00000000ffbcfd80 x19: 0000000000000004 x20: 0000000000000004 x21: 0000000000000004 x22:0000000080000000 X23: 00000000ffbc66e9 X24: 000000000000 X25: 00000000ffbc6698 X26: 00000000ff9398a7 X27: 0000000000000008 X28: 0000000000000004 X29: 00000000ffbc6630 代码:2a0403f3 17ffffcb 7100129f 54000181 (b94002c3) RESET CPU... 正在重置... 注意:RESET 状态:上电复位 注意:BL2:v2.10.7(版本):bsp43.0-2.10.7-dirty 注意:BL2:版本:2024 年 11 月 26 日 08:17:37 注意:BL2:正在启动 BL31 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ----------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ U-启动 2022.04+gc01b3bf7b1+p0(Nov 21 2024 - 14:00:36 +0000) SoC:NXP S32G274A rev.2.1 CPU:Arm Cortex-A53 r0p4 @ 最大 1000 MHz 型号:S32G2-平台 动态随机存取存储器(DRAM):4 GiB 内部 dm_init_and_scan............ pfeng_mdio mdio@2:EMAC MDIO ID 超出范围 88Q5152 RESET 核心:291 个设备,24 个 uclasses,devicetree:板 MMC:FSL_SDHC:0 从 SPIFlash 加载环境... SF:检测到页面大小为 256 字节的 mt35xu01gbba,擦除大小为 4 KiB,总计 128 MiB *** 警告 - CRC 错误,使用默认环境 s32cc_serdes_phy serdes @40480000:对 SerDes 子系统使用模式 0 pci_s32cc pcie @40400000:DBI 未启用 pci_s32cc pcie @40400000:无法设置 PCI 设备和供应商 ID pcie_s32cc pcie @40400000:DBI R/W 未启用 s32cc_serdes_phy serdes @40480000:无法锁定 PCIe phy s 32cc pcie cc_serdes_phy serdes @40480000:PHY:无法开机 @40480000: -110。 pci_s32cc pcie @40400000:无法开启 PHY 'serdes_lane0' pc i_s32cc pcie @40400000:无法设置 PCIe 主机设置 输入:串行 @401c8000 输 出:串行 @401c8000 错误:串行 @401c8000 主 板版本:RDB2 网络: 找到 PFE 版本 0x50300 (S32G2) pfeng pfeng-base:上传类固件 pfeng pfeng-base:EMAC0 区块已初始化 pfeng pfeng-base:EMAC1 区块已初始化 pfeng pfeng-base:EMAC2 区块已初始化 pfen g pfeng-base:启用 CLASS 区块 pfen g pfeng-base:PFE 平台已启动 成功(掩码:7) pfeng_netif pfe0:无法获取 “emac0_xpcs” PHY eth1:pfe0pfeng_netif pfe1:无法获取 “emac1_xpcs” PHY,eth2:pfe 1,eth3:pfe2 按任意键停止自动启动:0 切换到分区 #0,好的 mmc0(第 0 部分)是当前设备 ** 没有分区表-mmc 0 ** 找不到分区 mmc 0:2 无法设置区块设备 mcr=cc000f03 ip cr=3400000f flashcr=3030100 buf0cr=3f000000 buf1cr=3f000000 buf2cr=3f000000 buf3cr=80000 bufgencr=e00000 buf0ind=0 buf1ind=0 buf1ind=0 buf1ind=0 buf1ind=0 buf1cr=0 buf1ind=0 buf1cr=0 buf1ind=0 buf1 cr=0 buf1ind=0 buf2ind=0 awrcr=0 dllcra=d 0080c2 par itycr=0 sf ar=2c03 sfacr=0 spr=33 rbsr=0 rbct=1f000000 awrsr=0 dllsr=0 dllsr=0 dllsr=0 dllsr=0 dllsr=0 dllsr=f4c0000 dlcr=ff40ff40 dlsr_fa=0 tbdr=0 tbct=0 sr=0 380002 fr=1000009 rser=0 sptrclr=0 dlpr=433455aa = > 运行 flashboot 从闪存启动... 在偏移量 0x00000000 处读取 17629184 字节 " 错误 " 处理器,esr 0xbf000002 elr:00000000f8f5f6c lr:00000000f8f5e68 (reloc) elr:00000000f8f5f6c lr:00000000000000 x1:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:00000000000ba0 x3:0000000000003f x4:0000000000000002 x5:000000001fe00411 x6:0000000000000000 x7:00000000000011 x8:000000000000000011 x8:0000000000000008 x10:00000000000002 x11:000000001fe00000 x12 : 00000000000001 x13:0000000000003f x 14:00000000000000 x15:00000000000021 x 16:000000000000001 x17:0000000000000000 x18:000000000000000000 x 18:0000000000bcfd80 x19:0000000000000000000 x21:00000000002b0000 x22:0000000000002b0000 x22:0000000000002b0000 x22:0000000000002b0000 x22:00000000002b0000 x22:0000000000002b0000 x22:0000000000002b0000 x22: x23:00000000007d2dc2 x24:00000000000007 x25:00000000000000 x26:00000000000001 x27:00000000000001 x27:00000000000001 x28:00000000010d0000 x29:00000000ffbc6130 代码:d1000694 380016c0 17fffbd f8606aa1 (f8206ac1) RESET CPU... 正在删除使用次数 1 的 MTD 设备 #5(内核)删除分区时 出错 " 内核 " (-16) 正在 RESET... 注意:RESET 状态:破坏性 RESET(运行) 通知:BL2:v2.10.7(版本):bsp43.0-2.10.7-dirty 注意:BL2:版本:2024 年 11 月 26 日 08:17:37 注意:BL2:正在启动 BL31 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 我们希望得到任何指导或建议来帮助解决这个问题。 敬上, Vishal G Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to 你好,@vishalg 感谢您的回复。 日志显示"Internal error: synchronous external abort" ,这表明在访问某些地址时发生了异常,可能与访问未映射内存或权限不一致有关。 不确定您是否修改了 GIC 部分的默认 dts?您是否检查了 gic_iterate_rdists 中使用的内存? BR 切宁 Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to Hi Chenyin, 感谢您的快速回复。 我能够通过使用 S32 Design Studio 执行 DDR 验证测试并使用重新生成的配置正确配置 DDR 来解决这个问题。 现在我能够成功地启动 uboot 进入内核,我在启动时观察到内核崩溃,这是由 " 内部错误触发的:在运行 Linux 6.6.52-rt43 的自定义 S32G274A 平台上初始化 GICv3 中断控制器时发生的内部错误:同步外部中止 "。 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 注意:RESET状态:上电复位 注意:BL2:v2.10.7(版本):bsp43.0-2.10.7-dirty 注意:BL2:版本:2024 年 11 月 26 日 08:17:37 注意:BL2:正在启动 BL31 U-启动 2022.04+gc01b3bf7b1+p0(Nov 21 2024 - 14:00:36 +0000) SoC:NXP S32G274A rev.2.1 CPU: Arm Cortex-A53 r0p4 @ 最大 1000 MHz 型号: S32G2-平台 动态随机存取存储器(DRAM): 3.5 GiB 内部 dm_init_and_scan............ pfeng_mdio mdio@2: EMAC MDIO ID 超出范围 88Q5152 RESET 核心: 291 个设备, 24 个 uclasses, devicetree: 板 MMC: FSL_SDHC: 0 从 SPIFlash 加载环境... SF: 检测到页面大小为 256 字节的 mt35xu01gbba, 擦除大小为 4 KiB, 总计 128 MiB *** 警告 - CRC 错误, 使用默认环境 s32cc_serdes_phy serdes @40480000:对 SerDes 子系统使用模式 0 pci_s32cc pcie @40400000:DBI 未启用 pci_s32cc pcie @40400000:无法设置 PCI 设备和供应商 ID pcie_s32cc pcie @40400000:DBI R/W 未启用 s32cc_serdes_phy serdes @40480000:无法锁定 PCIe phy s 32cc pcie cc_serdes_phy serdes @40480000:PHY:无法开机 @40480000: -110。 pci_s32cc pcie @40400000:无法开启 PHY 'serdes_lane0' pc i_s32cc pcie @40400000:无法设置 PCIe 主机设置 输入:串行 @401c8000 输 出:串行 @401c8000 错误:串行 @401c8000 主 板版本:RDB2 网络: 找到 PFE 版本 0x50300 (S32G2) pfeng pfeng-base:上传类固件 pfeng pfeng-base:EMAC0 区块已初始化 pfeng pfeng-base:EMAC1 区块已初始化 pfeng pfeng-base:EMAC2 区块已初始化 pfen g pfeng-base:启用 CLASS 区块 pfen g pfeng-base:PFE 平台已启动 成功(掩码:7) pfeng_netif pfe0:无法获取 “emac0_xpcs” PHY eth1:pfe0pfeng_netif pfe1:无法获取 “emac1_xpcs” PHY,eth2:pfe 1,eth3:pfe2 按任意键停止自动启动:0 切换到分区 #0,好的 mmc0(第 0 部分)是当前设备 ** 没有分区表-mmc 0 ** 找不到分区 mmc 0:2 无法设置区块设备 mcr=cc000f03 ip cr=3400000f flashcr=3030100 buf0cr=3f000000 buf1cr=3f000000 buf2cr=3f000000 buf3cr=80000 bufgencr=e00000 buf0ind=0 buf1ind=0 buf1ind=0 buf1ind=0 buf1ind=0 buf1cr=0 buf1ind=0 buf1cr=0 buf1ind=0 buf1 cr=0 buf1ind=0 buf2ind=0 awrcr=0 dllcra=d 0080c2 par itycr=0 sf ar=2c03 sfacr=0 spr=33 rbsr=0 rbct=1f000000 awrsr=0 dllsr=0 dllsr=15c0000 dlcr=ff40ff40 dlsr=0 tbdr=0 tbct=0 sr=0 sr=0 sr=0 sr=0 sr=0 sr=0 sr=0 0002 fr=1000009 rser=0 sptrclr=0 dlpr=433455aa = > 运行 flash boot 从闪存启动... 在偏移量 0x00000000 处读取 17629184 字节在偏移量 0x00000000 处 读取 196608 字节在偏移量 0x00000000 处 读取 32571392 字节 ## Loading init Ramdisk from Legacy Image at 90000000 ... Image Name: fsl-image-base-s32g2-platfo Image Type: AArch64 Linux RAMDisk Image (uncompressed) Data Size: 29917545 Bytes = 28.5 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## 扁平化设备树 blob 在 0x83000000 处使用 fdt blob 启动使用设备树位于 00000083000000,结尾 000000830120ae 正在启动内核... 无法选择模式:-70 device_remove:设备 '[email protected]'无法删除,但是孩子们不见了 [0.000000] 在物理 CPU 上启动 Linux 0x0000000000 [0x410fd034] [0.000000] Linux 版本 6.6.52-rt43-g1a29a32be610-dirty (oe-user@oe-host) (aarch64-fsl-linux-gcc (GCC) 11.4.0、GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT_RT Thu Nov 21 09:35:09 UTC 2024 [ 0.000000] Machine model: s32g274 Platform [ 0.000000] earlycon: linflex0 at MMIO 0x00000000401c8000 (options '') [ 0.000000] printk: legacy bootconsole [linflex0] enabled [ 0.000000] OF: reserved mem:0x0000000034000000..0x000000003407ffff (512 KiB) nomap non-reusable pfebufs@34000000 [ 0.0000000000] OF: reserved mem:0x0000000034080000..0x000000003409ffff (128 KiB) nomap non-reusable pfebufs@34080000 [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000083200000, size 3 MiB [ 0.000000] OF: reserved mem: initialized node pfebufs@83200000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem:0x0000000083200000..0x00000000835dffff (3968 KiB) nomap non-reusable pfebufs@83200000 [ 0.0000000000] OF: reserved mem:0x00000000835e0000..0x00000000835fffff (128 KiB) map non-reusable pfebufs@835e0000 [ 0.000000] OF: reserved mem:0x0000000084000000..0x0000000084ffff (16384 KiB) nomap non-reusable shm@84000000 [ 0.0000000000] OF: reserved mem:0x00000000c0000000..0x00000000c03fffff (4096 KiB) nomap non-reusable shm@c0000000 [ 0.0000000000] OF: reserved mem:0x00000000c0400000..0x00000000c07fffff (4096 KiB) nomap non-reusable shm@c0400000 [ 0.000000] OF: reserved mem:0x00000000d0000000..0x00000000d000007f (0 KiB) nomap non-reusable shm@d0000000 [ 0.0000000000] OF: reserved mem: 0x00000000d0000080..0x00000000d00000ff (0 KiB) nomap non-reusable shm@d0000080 [ 0.000000] OF: reserved mem:0x00000000ff600000..0x00000000ff7fffff (2048 KiB) nomap non-reusable atf@ff600000 [ 0.000000] 区域范围: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff] [ 0.000000] DMA32 空 [ 0.000000] 正常 [mem 0x0000000100000000-0x00000008dffffffffffff] [ 0.000000] 每个节点的可移动区域起点 [ 0.000000] 早期内存节点范围 [ 0.000000] 节点 0: [mem 0x0000000080000000-0x00000000831fffff] [ 0.000000] 节点 0: [mem 0x0000000083200000-0x00000000835dffff] [ 0.000000] 节点 0: [mem 0x00000000835e0000-0x0000000083ffffff] [ 0.000000] 节点 0: [mem 0x0000000084000000-0x0000000084ffffff] [ 0.000000] 节点 0: [mem 0x0000000085000000-0x00000000bffffffff] [ 0.000000] 节点 0: [mem 0x00000000c0000000-0x00000000c07ffffff] [ 0.000000] 节点 0: [mem 0x00000000c0800000-0x00000000cfffffff] [ 0.000000] 节点 0: [mem 0x00000000d0001000-0x00000000ff5fffff] [ 0.000000] 节点 0: [mem 0x00000000ff600000-0x00000000ff7fffff] [ 0.000000] node 0: [mem 0x00000000ff800000-0x00000000ffffffff] [ 0.000000] node 0: [mem 0x0000000880000000-0x00000008dffffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008dffffffff] [ 0.000000] On node 0, zone DMA: 1 pages in unavailable ranges [ 0.000000] cma:在 0x00000000ef600000 保留 256 MiB on node -1 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci:固件中检测到 PSCIv1.1。 [ 0.000000] psci:使用标准 PSCI v0.2 功能 ID [ 0.000000] psci:不支持 MIGRATE_INFO_TYPE。 [0.000000] psci:SMC 通话约定 v1.4 [0.000000] percpu:嵌入式 20 页/CPU s42112 r8192 d31616 u81920 [0.000000] pcpu-alloc:s42112 r8192 r8192 d31616 u8192 d31616 u8192 d31616 u81920 alloc=20*4096 [0.000000] pcpu-alloc:[0] 0 [0] 1 [0] 1 [0] 2 [0] 3 [0.000000] 在 CPU0 上检测到 VIPT i-Cache [0.000000] CPU 功能:已检测:GIC 系统寄存器 CPU 接口 [0.000000] CPU 功能:已检测:ARM erratum 845719 [0.000000] CPU 功能:已检测:恩智浦勘误表 ERR050481(VA 的 TLBI 处理不正确) [0.000000] CPU 功能:已检测:ARM 勘误表 1165522、1319367、1530923 或 1530924 [0.000000] 备选方案:应用启动替代方案 [0.000000] 内核命令行:console=ttylf0,115200 root=/dev/ram rw earlycon [0.000000] Dentry 缓存哈希表条目:524288(顺序:10,4194304 字节,线性)[0.000000]] inode-Cache 哈希表条目:262144(顺序:9,2097152 字节,线性) [0.000000] 内建 1 个区域列表,移动分组开启。 总页数:903167 [ 0.000000] Mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] software IO TLB: area num 4. [ 0.000000] software IO TLB: mapped [mem 0x00000000eb600000-0x00000000ef600000] (64MB) [ 0.000000] Memory:3194416K/3670012K 可用 (9856K 内核代码, 686K rwdata, 3012K rodata, 1856K init, 245K bss, 213452K reserved, 262144K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] RCU:可抢占式分层 RCU 实现。 [ 0.000000] RCU:已启用 RCU 事件跟踪。 [ 0.000000] RCU:RCU 限制 CPU 从 NR_CPUS=8 到 nr_cpu_ids=4。 [ 0.000000] RCU:RCU 优先级提升:优先级 1 延迟 500 毫秒。 [ 0.000000] rcu:RCU_SOFTIRQ 处理移至 rcuc kthreads。 [ 0.000000] 没有加速宽限期(rcu_normal_after_boot)。 [ 0.000000] 启用任务 RCU 的蹦床变体。 [ 0.000000] 启用任务 RCU 的跟踪变量。 [ 0.000000] RCU:RCU 计算出的调度程序启动延迟值为 100 jiffies。 [ 0.000000] rcu:Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS:64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC:使用分割 EOI/Deactivate 模式 [ 0.000000] GICv3:实现 544 个 SPI [ 0.000000] GICv3:实现 0 个扩展 SPI [ 0.000000] GICv3:MBI 范围 [167:182] [ 0.000000] GICv3:使用 MBI 帧 0x0000000050800000 [ 0.000000] 根 IRQ 处理程序:gic_handle_irq [ 0.000000] 内部错误:同步外部中止:0000000096000010 [#1] PREEMPT_RT SMP [ 0.000000] 链接到的模块: [ 0.000000] CPU:0 PID: 0 Comm: swapper/0 Not tainted 6.6.52-rt43-g1a29a32be610-dirty#1 [ 0.000000] Hardware name: s32g274 Platform (DT) [ 0.000000] pstate:600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 0.000000] pc : gic_iterate_rdists+0x4c/0x114 [ 0.000000] lr : gic_init_bases+0x198/0x664 [ 0.000000] sp : ffffffc080e83b80 [ 0.000000] x29: ffffffc080e83b80 x28: 0000000080ca6074 x27: 000000000000 [ 0.000000] x26: 000000000000 x25: ffffffc080e8c208 x24: 000000000018 [ 0.000000] x23: 000000000000ffe8 x22: 000000000000 x21: ffffffc08040ed84 [ 0.000000] x20: ffffffc0809f9b60 x19: ffffffc081000000 x18: 0000000000000030 [ 0.000000] x17: 6a20303031207369 x16: 2079616c65642074 x15: ffffffffffff1660 [ 0.000000] x14: 000000000000 x13: 7172695f656c646e x12: 61685f636967203a [ 0.000000] x11 : ffffffffff0000 x10 : 000000000000000a x9 : ffffffc080e9aa78 [ 0.000000] x8 : 00000000fffff7ff x7 : ffffffc080ec6a78 x6 : 00000000004d [ 0.000000] x5 : ffffff885f8479c8 x4 : 000000000000 x3 : 000000000000 [ 0.000000] x2 : 000000000000 x1 : ffffff88000030e0 x0 : ffffffc08100ffe8 [ 0.000000] Call trace: [ 0.000000] gic_iterate_rdists+0x4c/0x114 [ 0.000000] gic_init_bases+0x198/0x664 [ 0.000000] gic_of_init+0x2a8/0x308 [ 0.000000] of_irq_init+0x318/0x3a8 [ 0.000000] irqchip_init+0x18/0x24 [ 0.000000] init_IRQ+0xac/0xc0 [ 0.000000] start_kernel+0x24c/0x5f0 [ 0.] __primary_switched+0xb4/0xbc [ 0.000000] 代码:d29ffd17 9b387eda f87a6833 8b170260 (b9400000) [ 0.000000] ---[ 结束跟踪 0000000000000000 ]--- [ 0.000000] 内核恐慌 - 未同步:Attempted to kill the idle task! [ 0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]--- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 有什么建议可以解决这个问题? 问候, Vishal Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to 你好,@vishalg 谢谢您的帖子。 通常,此类问题是由于访问了保护或未映射的内存(如保留内存)造成的,请问您是否修改了默认 BSP43 的内存映射?添加更多保留地址范围? 您测试过更多地址吗?还有其他地址范围可以用于加载图像吗? BR 切宁
View full article
S32G399 PCIe 无法发送 TLP 数据包 如图所示,请帮帮我。目前,我正在使用 S32G399A 芯片,并通过 PCIe 接口将其连接到 FPGA。在这种配置中,S32G399A 行动 RC,FPGA 行动 EP。我现在遇到的问题是可以访问FPGA的配置空间,但是bar0的内存空间无法触发信号TLP。 下图显示了"dmesg" 在操作系统中打印的信息。在"出境" 部分,显示的是 6OB 和 4IB。应如何配置出站和入站,以及应在何处配置? LONGGANGSU_0-1756785984145.png 另外,原地址 基地址 目标地址分别代表什么? Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 是的,根据测试,在当前的电路板支持包驱动程序下,RC 会根据 EP 的 BAR 设置自动将该区域映射到 32 位/64 位地址空间。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 您是说 PCIe 位宽与 EP 有关吗?如果 EP 端是 64 位,那么是否无需对 RC 端进行任何修改? Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 感谢您的回复。 S32G PCIe RC 支持 64 位地址访问 例如,我使用另一个 S32G 板作为 EP,修改了 EP 端的 BAR 的相应位,然后从 RC 端的输出启动 RC 后,映射的一个区域是 " 区域 0:4900000000(64 位,可预取)[size=1M] " 的内存,可以通过 64 位地址访问。 详细修改方法可查看自己的 PCIe EP 驱动程序/RM。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 请问,如何将 PCIe RC 模式配置为 64 位宽? 目前,我使用 32 位宽度与 FPGA 通信。 Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 让我在这里继续支持它。 从显示的日志来看,有 6 个 OB 窗口和 4 个 IB 窗口。 1.OB 窗口和 IB 窗口的数量通常取决于硬件 IP,您认为这些窗口的数量是否足够? 关于 iatu 的配置,您可以查看驱动程序/pci/controller/dwc 下的驱动程序进行设置。 2。原始地址可以是来自内存功能域的请求中的地址,基本地址可以是主机地址空间中该区域的参考点,而目标地址是 PCIe 功能域中的起点。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets @cehnyin_h Re: S32G399 PCIe cannot send TLP packets 您好,@LONGGANGSU 感谢您的回复。 我发现这个问题也是通过其他渠道提出的,请直接向那里求助。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 谢谢你的帖子。 1。看来你在用电路板支持包,哪个版本? 2。哪些串行器用于连接设备,使用 PCIe x1? 3.所提到的快照是指哪份文件? BR 切宁
View full article
引导过程 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本节介绍各种非易失性存储器类型或 UART 的 LPC32x0 启动过程。 根据启动设备,启动映像大小可能会受到限制。此限制可能会阻止所需的映像最初加载和执行 - 而是需要先加载较小的引导加载程序,然后使用它来加载和运行功能更强大的引导加载程序或应用程序。 LPC32x0 启动选项 LPC32x0 支持从小块和大块 NAND FLASH、SPI EEPROMS 或 FLASH、NOR FLASH 以及通过 UART 启动。在生产系统中,不使用 UART 启动方法。然而,UART 启动方法在早期电路板调试中非常有用, LPC32x0 的启动顺序如下:UART、SPI、NOR、NAND。可以禁用 UART 启动以减少启动时间。在尝试下一个启动设备之前,将先尝试每个启动设备。如果启动 ROM 找到将设备标识为可启动的特殊启动模式,则该设备可启动。系统可能有 SPI FLASH、NOR FLASH 和 NAND FLASH,并且尽管首先尝试了 SPI 和 NOR 方法,但只能从 NAND FLASH 启动。(例如,Phytec 3250 板具有所有这 3 个启动设备,但通常从 NAND FLASH 启动)。 当LPC32x0芯片复位时,内部启动ROM被执行。它查询每个设备以寻找用于标识设备是否可启动的特殊启动模式。第一个返回正确模式的设备将被引导 ROM 用作可引导设备。然后,引导 ROM 将从可引导设备(NAND 和 SPI FLASH)复制数据或将控制权转移到可引导设备(NOR FLASH)。 以下章节将解释每种启动方法。有关 LPC32x0 启动过程的更多信息,请参阅 LPC32x0 用户指南。 UART启动 UART 启动选项允许将二进制文件下载到电路板中,然后在 NAND、SPI 或 NOR FLASH 中运行任何代码之前执行。这对于将新图像刻录到 FLASH、测试简单应用程序或从损坏的启动代码中恢复主板很有用。 UART 启动与 CDL 包中的刻录工具一起使用,将引导加载程序编程到启动设备中。UART5 支持 UART 启动选项,因此新设计应该使 UART5 可用于调试。对于完全从 IRAM 运行的系统,这允许系统通过 UART 下载图像,一旦执行该图像,即可提供交互式访问。下载的交互式程序可用于带宽或内存测试、寄存器转储、进一步的图像加载或其他功能。 可以使用此启动方法使用S1L的初始版本来测试不同的 SDRAM 配置(使用附带的 SDRAM 初始化代码)。使用这种方法,可以大大简化 SDRAM 代码的启动和调试(推出新电路板时最棘手的问题之一)。 NOR FLASH启动 在从 NOR FLASH 启动的系统上,ARM 内核直接从地址 0xE0000004 开始执行 NOR FLASH 设备中的代码。地址 0xE0000000 处的前 4 个字节用于引导 ROM 所需的特殊引导模式值,以将设备标识为可引导并提供引导宽度(8、16 或 32 位)。 SPI FLASH/EEPROM启动 在从 SPI 启动的系统上,一个小图像从偏移量为 0x8 的 SPI EEPROM 或 FLASH 设备复制到地址为 0x00000000 的 IRAM 中。前 4 个字节用于引导 ROM 所需的特殊引导模式值。接下来的 4 个字节用于指定在 SPI 设备中偏移量 0x8 处加载的图像的大小。将图像加载到 IRAM 后,控制权转移到地址 0x00000000。 使用此方法可以加载的最大映像启动大小为 54K。 NAND闪存启动 在从 NAND FLASH 启动的系统上,一个小图像从 NAND 设备的块 0 或块 1 复制到地址 0x00000000 的 IRAM 中。NAND FLASH 启动的最大可启动映像大小为 54K,或 1 个块减 1 页,以较小者为准。引导块的第一页用于存储引导信息,例如引导映像大小和引导序列所用的引导 ROM 所需的值。 对于小块 NAND(每块 32 页,每页 512 字节),并且块的第一页专用于启动 ROM 启动信息,则最大启动大小为 31 页,每页 512 字节,即 15.5K。对于大块 NAND(64 页,每页 2K 字节),最大启动大小为 54K 字节。 启动 ROM 始终使用 MLC NAND 控制器进行 NAND 启动。这就需要将由引导 ROM 从 NAND 引导的引导映像通过 MLC NAND 控制器或 MLC NAND 控制器所需的 ECC 算法编程到 NAND 中。
View full article
Installing a Zephyr SDK version The Zephyr SDK is a set of build tools for building Zephyr applications. It includes GCC and CMake, and each Zephyr release is tied to a specific Zephyr SDK version. This version is noted in the SDK_VERSION file in the Zephyr repository. Using the recommended Zephyr SDK version is important—mismatched versions can cause build errors. For example, Zephyr v4.1 specifies Zephyr SDK v0.17.0. If you use Zephyr SDK v0.17.2 (meant for Zephyr v4.2) with Zephyr v4.1, you’ll encounter build errors. If you need to build apps for Zephyr v4.1, install Zephyr SDK v0.17.0. You can install multiple Zephyr SDK versions and switch between them at build time (see instructions below). Full vs. Minimal Install Full Install: Includes all toolchains for every supported SoC architecture. Recommended for beginners but requires more disk space and download time. Minimal Install: Lets you choose only the toolchains you need. Saves space and time. For Minimal install, run the setup.cmd script to select which tools to install.  On NXP boards, select: Register Zephyr SDK CMake package Install host tools aarch64-zephyr-elf (64-bit ARM) arm-zephyr-eabi (32-bit ARM, including NXP MCUs) optional  xtensa-nxp… (Cadence Tensilica DSP cores) Installing Zephyr SDK These steps cover installing the Zephyr SDK using the MCUXpresso Installer, West from CLI, or manual download. Installing with MCUXpresso Installer The MCUXpresso Installer started supporting packs for Zephyr with Zephyr v4.2.  Each pack installs the matching Zephyr SDK version (e.g., v4.2 pack installs SDK v0.17.2).  This option Installs a minimal set of tools for NXP development. dereksnell_0-1763125437139.png The MCUXpresso Installer does not support older Zephyr SDK versions. For v0.17.1 or earlier, use West or manual install. Installing with West CLI Zephyr Project added Zephyr SDK installation to West. For CLI, Activate your Python Virtual Environment, then run: west sdk install --version 0.17.0   If --version is omitted, West uses the version in the SDK_VERSION file of the Zephyr repo. By default, installs the Full package. For minimal, add -i . Installing by Manual Download Download the Zephyr SDK from the https://github.com/zephyrproject-rtos/sdk-ng/releases. Choose Full or Minimal for your host OS. Extract to your user folder (default location for West and MCUXpresso): Windows: C:\Users\ \zephyr-sdk-0.17.0 Ubuntu: /home/ /zephyr-sdk-0.17.0 Selecting Zephyr SDK Version Multiple Zephyr SDK versions can coexist. West uses the latest by default, but you can override it: VS Code: When importing examples, select the Zephyr SDK version in the wizard. dereksnell_1-1763126099481.png CLI: Set the environment variable ZEPHYR_SDK_INSTALL_DIR  before building.  This command sets that variable in Ubuntu: export ZEPHYR_SDK_INSTALL_DIR="/home/ /zephyr-sdk-0.17.0" Or in Windows: set ZEPHYR_SDK_INSTALL_DIR= C:\Users\ \ zephyr-sdk-0.17.0   Return to Zephyr Knowledge Hub    
View full article
如何使用QorIQ LS系列处理器设计高能效产品 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本次会议涵盖两个相关主题。第一部分将介绍新 QorIQ LS1 产品线的概述。会议的第二部分将探讨为新型 LS1021A QorIQ 处理器系列设计强大的电源分配网络的关键考虑因素。以新的 LS1021A 电路板为案例研究,我们将回顾电路板上使用的关键因素,例如效率、设计简化和电源系统管理技术,并讨论它们的使用方式和原因。本课程将帮助您了解设计电源分配网络时的关键概念。 由 Linear Technology 的 Sharad Khanal 和 Freescale 的 Satoshi Iida 介绍 2015 年 3 月 26 日在 DwF 硅谷发表 会话 ID:AMF-SNT-T1040 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本次会议涵盖两个相关主题。第一部分将介绍新 QorIQ LS1 产品线的概述。会议的第二部分将探讨为新型 LS1021A QorIQ 处理器系列设计强大的电源分配网络的关键考虑因素。以新的 LS1021A 电路板为案例研究,我们将回顾电路板上使用的关键因素,例如效率、设计简化和电源系统管理技术,并讨论它们的使用方式和原因。本课程将帮助您了解设计电源分配网络时的关键概念。 由 Linear Technology 的 Sharad Khanal 和 Freescale 的 Satoshi Iida 介绍 2015 年 3 月 26 日在 DwF 硅谷发表 会话 ID:AMF-SNT-T1040 Layerscape 处理平台
View full article
Video: Install S32R45 Development Package (view in My Videos)
View full article
恩智浦的xEV能源管理解决方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 中国预计到2020年,每家汽车制造商将生产和销售12%的零排放电动汽车,大城市将禁止经典内燃机汽车,汽车制造商将以更快的速度推出新型电动汽车。本次会议将概述影响电动汽车市场的主要力量,描述主要的架构方法和系统组件,以及这对恩智浦具有哪些增长潜力。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 中国预计到2020年,每家汽车制造商将生产和销售12%的零排放电动汽车,大城市将禁止经典内燃机汽车,汽车制造商将以更快的速度推出新型电动汽车。本次会议将概述影响电动汽车市场的主要力量,描述主要的架构方法和系统组件,以及这对恩智浦具有哪些增长潜力。
View full article
应用FXTH8700作为TPMS发射器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> FXTH87xx 是一款用于监测轮胎压力和温度的传感器。它包含压力和温度传感器、X 轴和 Z 轴加速度计、微控制器、低频接收器和射频发射器。 在一个包内。 最近有客户咨询如何将 FXTH87xx 与英飞凌TPMS 接收器连接。我们经过一系列测试和验证,最终成功连接。本文档旨在介绍如何用 FXTH87xx 替换外部发射器。本文将以示例的方式,向用户介绍如何使用 R&S 或 Anritsu 提供的仪器检测和解码未知传感器的发射器数据包,然后将这些发射器数据包复制到 FXTH87xx 中,从而形成 315MHz、433.92MHz 的 TPMS 接收器。 发射器和接收器解决方案。采用 FXTH87xx 的客户可以使用类似的 概念。 压力传感器
View full article
AUT-N1773 - セキュア V2X イントロ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 米国政府が米国での車間通信の義務化を準備する中、自動車業界は、この専用短距離通信技術をサポートする車を提供する準備を進めています。これが道路利用者にどのようなメリットをもたらすか、ITS-G5規格が世界中でどのように展開されているか、これを市場に投入する際に自動車業界が直面する課題、およびこの展開におけるNXPのリーダーシップの役割について見ていきます。 ビデオプレゼンテーションを見る <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 米国政府が米国での車間通信の義務化を準備する中、自動車業界は、この専用短距離通信技術をサポートする車を提供する準備を進めています。これが道路利用者にどのようなメリットをもたらすか、ITS-G5規格が世界中でどのように展開されているか、これを市場に投入する際に自動車業界が直面する課題、およびこの展開におけるNXPのリーダーシップの役割について見ていきます。 ビデオプレゼンテーションを見る セキュアなコネクテッド&自動運転車
View full article
INS-N2085 Simulity Labs:更大并不一定更好 - 使用 eSIM 节省参考设计中的空间 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 使用 eSIM 节省参考设计中的空间。eSIM(eUICC)及其对芯片组制造商和设备 OEM 的意义。如今,消费者想要更大的屏幕、更长的电池寿命、更大的存储空间、更丰富的媒体内容等等。eSIM 将带来的 (R) 变革是独一无二的、颠覆性的,可以与黑白电视变成彩色电视的时代相媲美。OEM 正在缓慢采用,但就像黑白电视时代一样,网络尚未准备好,就 eSIM 而言,移动运营商也尚未准备好! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 使用 eSIM 节省参考设计中的空间。eSIM(eUICC)及其对芯片组制造商和设备 OEM 的意义。如今,消费者想要更大的屏幕、更长的电池寿命、更大的存储空间、更丰富的媒体内容等等。eSIM 将带来的 (R) 变革是独一无二的、颠覆性的,可以与黑白电视变成彩色电视的时代相媲美。OEM 正在缓慢采用,但就像黑白电视时代一样,网络尚未准备好,就 eSIM 而言,移动运营商也尚未准备好! 洞察与创新
View full article
TN013_LPCOpen UART RB示例Tx问题 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> lpcopen。uart #ring_buffer
View full article
DwF 深圳 - 2015-06-25 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 汽车和联网汽车 设计、软件和服务 IAR:C 环境下的安全 智能工业 洞察与创新 智能网络
View full article
DwF物联网无线模块解决方案 - 广州 - 2015-06-11 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 智能家居和建筑 实践研讨会:物联网 Wi-Fi 模块开发套件 - 快速入门 智能网络
View full article
Technical Report Valasi.pdf The Freescale Cup High School Challenge technical report from team Valasi from Stredni Skola informatiky, Elektrotechniky a Remesel Roznov (Czech Republic) The Freescale Cup High School Challenge technical report from team Valasi from Stredni Skola informatiky, Elektrotechniky a Remesel Roznov (Czech Republic)
View full article
Example MPC5566EVB PinToggleStationery CW210 ******************************************************************************** * Detailed Description: * Application performs basic initialization, setup PLL to maximum allowed freq., * initializes interrupts, blinking one LED by interrupt, second LED by software * loop, initializes and display notice via UART terminal and then terminal ECHO. * The example configures the device for maximum performance (OPTIMIZATIONS_ON). * Its intention is to offer advanced startup code additional to CW stationery. * ------------------------------------------------------------------------------ * Test HW:        MPC5566EVB * MCU:            PPC5566MVR132 * Fsys:           144/132/112/80/12 MHz * Debugger:       Lauterbach Trace32 *                 PeMicro USB-ML-PPCNEXUS * Target:         RAM, internal_FLASH * Terminal:       19200-8-no parity-1 stop bit-no flow control on eSCI_A * EVB connection: TPU_PORT_37 -> USER_LED_8 *                 TPU_PORT_38 -> USER_LED_7 (to see blinking LEDs)    * ******************************************************************************** ******************************************************************************** * Detailed Description: * Application performs basic initialization, setup PLL to maximum allowed freq., * initializes interrupts, blinking one LED by interrupt, second LED by software * loop, initializes and display notice via UART terminal and then terminal ECHO. * The example configures the device for maximum performance (OPTIMIZATIONS_ON). * Its intention is to offer advanced startup code additional to CW stationery. * ------------------------------------------------------------------------------ * Test HW:        MPC5566EVB * MCU:            PPC5566MVR132 * Fsys:           144/132/112/80/12 MHz * Debugger:       Lauterbach Trace32 *                 PeMicro USB-ML-PPCNEXUS * Target:         RAM, internal_FLASH * Terminal:       19200-8-no parity-1 stop bit-no flow control on eSCI_A * EVB connection: TPU_PORT_37 -> USER_LED_8 *                 TPU_PORT_38 -> USER_LED_7 (to see blinking LEDs)    * ******************************************************************************** General
View full article
如何为 KSDK 和 PEx 项目的新 MQX RTOS 添加 MFS 和 Shell 支持 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好, 基于如何使用 KDS 和 KSDK 将 RTCS 添加到处理器专家项目,您可以在下面找到使用 KSDK1.2 和处理器专家将 MFS 和 Shell 包含到 KDS3.0 项目的步骤。 感谢Carlos_Musich提供的出色文档以及本文档的草稿。 此致, 艾萨克·阿维拉 文件系统 回复:如何为 KSDK 和 PEx 项目的新 MQX RTOS 添加 MFS 和 Shell 支持 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 感谢 Isaac 的演讲。 我使用 Shell 和适用于 K60D100M micro 的 shell 创建了 KDS3.0 项目。KSDK 1.2.0。 我遇到的唯一问题是构建变量。 在 Properties\C/C++ Build\Build Variables 中缺少 KSDK_PATH(参见插入的图像)。 我创建了几个任务并在调试器下运行应用程序。调试器下没有 TAD 信息。 我知道,只需查看 TAD 信息,调试器就应该在运行后在任务内部的某个地方停止。 也许你已经解决了这个问题。 谢谢! 列昂尼德·博尔夏克。
View full article
示例 S32K118-SRAM-keep_data_over_SW_reset v0_1 S32DS.ARM.2.2 ******************************************************************************** * Detailed Description: * The purpose of this example is show how to keep data in SRAM memory over SW * reset. SW reset is triggered by pressing the SW3 button on the S32K118EVB. * Reset is delayed for 514 LPO cycles. In the RCM interrupt, SRAMU_RETEN is * cleared allowing to retain SRAM data during the reset. After SW reset, * SRAMU_RETEN is set to allow accesses to SRAM. * File startup_S32K116.S in modified to skip ECC RAM initialization for SW reset * source. To check whether stored data stayed unmodified in the SRAM, specified * address is read and the LED lights up. * ------------------------------------------------------------------------------ * Test HW: S32K118EVB-Q064 * MCU: S32K118 LAMLH 0N97V QTZE1802B * Fsys: fsys = 48MHz * Debugger: Lauterbach Trace32 * Target: Debug * Terminal: 19200-8-no parity-1 stop bit-no flow control * EVB connection: default ******************************************************************************** Revision History: Ver Date Author Description of Changes 0.0 May-17-2023 David Tosenovjan Initial version *******************************************************************************/
View full article
Importing a Wrapped Key Blob Using PSA Crypto APIs on RW612 Introduction In a previous article, we demonstrated how to import an RFC3394-wrapped key blob into ELS by manually performing the following operations: Deriving NXP_DIE_KEK_SK using CKDF-SP800-108 Importing the wrapped blob with mcuxClEls_KeyImport_Async() Deleting the temporary KEK after import While this approach provides full visibility into the underlying ELS operations, applications using the PSA Crypto API can achieve the same result with significantly less code. This article demonstrates how to use psa_import_key() together with PSA_KEY_LOCATION_S50_RFC3394_STORAGE to import a wrapped key blob stored in OTP. The PSA Oracle driver transparently handles the secure key loading sequence, including KEK derivation, key unwrapping, ELS slot management, and cleanup. Prerequisites FRDM-RW612 Key blob wrapped using RFC3394 format using HSM_STORE_KEY Key blob programmed to OTP fuses using LoadKeyBlob command. Required Headers: #include "mcux_els.h" #include "psa/crypto.h" #include "mcuxClPsaDriver_Oracle_Interface_key_locations.h" #include "fsl_romapi_otp.h" Step 0 – Read the Wrapped Key Blob from OTP The example reads the blob directly from OTP memory. static psa_status_t read_blob_from_otp(uint8_t *blob_data, uint32_t blob_length, uint32_t starting_fuse_index) { status_t otp_status; uint32_t num_fuse_words = blob_length / 4u; PRINTF("Reading %d fuse words starting from index %d\n", num_fuse_words, starting_fuse_index); otp_status = otp_init(DEFAULT_SYSTEM_CLOCK); if (otp_status != kStatus_Success) { PRINTF("Error: otp_init failed: 0x%x\n", otp_status); return PSA_ERROR_HARDWARE_FAILURE; } for (uint32_t i = 0u; i < num_fuse_words; i++) { uint32_t fuse_word = 0u; otp_status = otp_fuse_read(starting_fuse_index + i, &fuse_word); if (otp_status != kStatus_Success) { PRINTF("Error: Failed to read fuse word %d, status: 0x%x\n", starting_fuse_index + i, otp_status); return PSA_ERROR_HARDWARE_FAILURE; } /* Store fuse word as 4 bytes in little-endian order */ blob_data[i * 4u + 0u] = (uint8_t)((fuse_word >> 0u) & 0xFFu); blob_data[i * 4u + 1u] = (uint8_t)((fuse_word >> 8u) & 0xFFu); blob_data[i * 4u + 2u] = (uint8_t)((fuse_word >> 16u) & 0xFFu); blob_data[i * 4u + 3u] = (uint8_t)((fuse_word >> 24u) & 0xFFu); PRINTF(" Fuse[%d] = 0x%08X\n", starting_fuse_index + i, fuse_word); } PRINTF("Blob data read from OTP successfully\n"); return PSA_SUCCESS; } Each fuse word contains four bytes.   These words are assembled into a contiguous buffer: blob_data[i * 4 + 0] = (fuse_word >> 0) & 0xFF; blob_data[i * 4 + 1] = (fuse_word >> 8) & 0xFF; blob_data[i * 4 + 2] = (fuse_word >> 16) & 0xFF; blob_data[i * 4 + 3] = (fuse_word >> 24) & 0xFF; The resulting buffer contains the RFC3394 wrapped key. Step 1 – Configure PSA Key Attributes Before importing the blob, PSA key attributes must describe how the key should be managed. The most important configuration is the key location: psa_set_key_lifetime( &attributes, PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, PSA_KEY_LOCATION_S50_RFC3394_STORAGE)); The PSA_KEY_LOCATION_S50_RFC3394_STORAGE location informs the Oracle driver that: The provided data is an RFC3394-wrapped key blob. The blob requires unwrapping before use. NXP_DIE_KEK_SK must be derived automatically during key loading. In this example we used an AES 128-bit key. The key type and size must match the wrapped key: psa_set_key_type(&attributes, PSA_KEY_TYPE_AES); psa_set_key_bits(&attributes, 128); Usage permissions are then assigned: psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); Finally, specify the algorithm: psa_set_key_algorithm( &attributes, PSA_ALG_ECB_NO_PADDING); Step 2 – Import the Wrapped Blob The blob is imported using a single PSA API call: psa_import_key( &attributes, blob_data, blob_length, &key_handle); For developers familiar with the low-level ELS implementation, this single call effectively replaces: derive_nxp_die_kek_sk() import_wrapped_key_blob() delete_key_from_slot() At this point, PSA stores the wrapped blob and returns a key handle: psa_key_id_t key_handle; The returned handle is subsequently used for cryptographic operations. Next Steps At this point, the wrapped key blob has been successfully imported into the target ELS key slot, and the temporary  NXP_DIE_KEK_SK  has been removed. The imported key is now available for use by ELS-protected cryptographic operations without exposing the underlying key material to application software. The next step is to validate the imported key by performing the operation it was provisioned for.  For this example, we used AES-ECB encryption: psa_cipher_encrypt( key_handle, PSA_ALG_ECB_NO_PADDING, plaintext, sizeof(plaintext), ciphertext, sizeof(ciphertext), &ciphertext_length); Step 4 – Cleanup Once the key is no longer required, destroy it using: psa_destroy_key(key_handle); This releases the PSA key object and allows the Oracle driver to clean up any associated secure resources. Unlike the low-level ELS implementation, the application does not need to explicitly manage ELS keyslots. PSA vs Direct ELS Implementation Direct ELS API PSA Crypto API Derive KEK manually Automatic Import blob manually Automatic Manage keyslots Managed by Oracle Delete temporary KEK Automatic Greater control Simpler application code Higher implementation effort Faster integration Both approaches ultimately leverage the same secure hardware mechanisms within RW612. The PSA approach simply abstracts the underlying ELS operations behind a standardized cryptographic interface.
View full article