Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
IMX219 カメラモジュール(Raspberry Pi5 互換)が FRDM-IMX8MPLUS で動作しない - ピン配置の互換性 NXPコミュニティの皆様、こんにちは。 私はインターフェースしようとしています IMX219 8MPカメラモジュール (Raspberry Pi 5用に設計) FRDM-IMX8MPLUSボード 問題が発生します。これがピン配列の非互換性の問題なのか、構成の問題なのかを理解したいと思います。 ハードウェアセットアップ ボード: FRDM-IMX8MPLUS(i.MX 8Mプラス) カメラ: IMX219 8MP、Raspberry Pi 5用22ピンFFCケーブル付き(AliExpressより: https://de.aliexpress.com/item/1005009258177201.html ) コネクタ: FRDMボード上のCSI1(J13) オペレーティングシステム: カーネル 6.6.36 を搭載した Yocto Linux 現在の状況 デバイスツリー構成: 元々の設定 &i2c2 住所付き 0x10 → エラー -6 (ENXIO) で失敗しました 変更する必要がある &i2c3 住所付き 0x1a I2C検出に基づく 問題: ドライバはI2Cアドレスに正常にバインドしましたが、IMX219チップIDを読み取ることができません ビデオデバイスが作成されていません (/dev/video* カメラには映らない) MIPI CSIデータレーンはI2C通信にもかかわらず動作しない可能性があります 質問 ピン配列の互換性: Raspberry Pi 5 22 ピン カメラ モジュールは、FRDM-IMX8MPLUS CSI コネクタ (J13/J14) と直接互換性がありますか?RPi5 と i.MX8MP では異なる 22 ピンのピン配置が使用されていることがわかりました。 電源ピンが逆になっているようです(RPi5:ピン1=GND、ピン22=3.3Vi.MX8MPとの違いは明らかです) データレーンのポジショニングは異なる場合があります I2Cピンのポジショニングが異なる I2Cバス マッピング: カメラが、予想される I2Cバス 1 (I2C2 コントローラ) ではなく、I2Cバス 2 (i2c-2 = I2C3 コントローラ) に表示されるのはなぜですか?どの CSI コネクタがどの I2C バスを使用するかを示すドキュメントはありますか? 代替住所: IMX219 の標準アドレスは 0x10 ですが、このモジュールは 0x1A で応答します。これは既知の変種ですか、それともピン配置の不一致によりアドレスシフトが発生しますか? 推奨される解決策: 私はすべきですか: カメラと FRDM ボードの間にピン再マッピング アダプターを使用しますか? i.MX8 プラットフォーム専用に設計された別の IMX219 モジュールを入手しますか? RPi5 互換カメラ用の特別な構成でデバイスツリーを変更しますか? デバイスツリーの抜粋   文章 &i2c3 { imx219: imx219@1a { compatible = "sony,imx219"; reg =<0x1a> �; clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>; assigned-clock-rates =;<24000000> // ... MIPI CSI 構成 }; }; その他の情報 CLKO2は24MHzで動作していることが確認された カメラモジュールに電源が入っています(I2C応答が表示されます) Yoctoの標準NXP Linux BSPを使用する FRDM-IMX8MPLUS で Raspberry Pi 5 対応カメラをうまく使用した方はいらっしゃいますか?ピン配列の互換性や推奨カメラモジュールに関するアドバイスがあれば、大変助かります。 参考情報: FRDM-IMX8MPLUS ユーザーマニュアル Raspberry Pi 5 カメラのピン配置: HackMDドキュメント ログ: root@imx8mpfrdm:~# dmesg | grep -i imx219 [ 0.000000] マシンモデル: NXP i.MX8MPlus FRDMボード(IMX219搭載) [ 0.076368] プラットフォーム 32e50000.csi:/soc@0/bus@30800000/i2c@30a30000/imx219@10 との依存関係サイクルを修正しました [ 8.531294] imx219 1-0010: 電源VANAが見つかりません。ダミーレギュレータを使用しています。 [ 8.538280] imx219 1-0010: 電源VDIGが見つかりません。ダミーレギュレータを使用しています。 [ 8.545630] imx219 1-0010: 供給VDDLが見つからないため、ダミーレギュレータを使用しています [ 8.559462] imx219 1-0010: レジスタ0x0000の読み取りエラー: -6 [ 8.564769] imx219 1-0010: チップID 219の読み取りに失敗しました ご回答をお待ちしています。 i.MX 8M | i.MX 8M ミニ | i.MX 8M ナノ マルチメディア Re: IMX219 Camera Module (Raspberry Pi5 Compatible) Not Working on FRDM-IMX8MPLUS - Pinout Compatibi こんにちは、 主な問題は、Raspberry Pi 5 カメラコネクタと i.MX8M Plus CSI コネクタ間のピン配置の不一致であるようです。どちらも 22 ピン FFC コネクタを使用しますが、ピン配置構成は異なります。 1.電源ピンが逆になっています(RPi5 のピン 1 は GND、ピン 22 は 3.3V ですが、i.MX8MP の配置は異なります) 2. データレーンの位置はプラットフォームによって異なる 3. I2Cピンの位置が異なる その理由は次のとおりです。 - IMX219は標準の0x10ではなくアドレス0x1Aで応答します - I2C通信は確認できるが、チップIDの読み取りに失敗している - I2C検出にもかかわらずビデオデバイスは作成されません i.MX8M Plus ボードの場合、I2C3 コントローラは CSI1 コネクタ (J13) に関連付けられているため、カメラが i2c-2 バス上に表示されます。 この問題を解決するには、いくつかのオプションがあります。 1. カメラとFRDMボードの間にピン再マッピングアダプタを使用して信号を正しく調整します。 2. Raspberry Piではなくi.MX8プラットフォーム用に特別に設計されたIMX219カメラモジュールを入手する 3. i.MX8M Plusプラットフォームで公式にサポートされているカメラの使用を検討してください 理論的には、Raspberry Pi カメラ モジュールを i.MX8 プロセッサとインターフェースすることは可能ですが (両方とも MIPI CSI2 仕様をサポートしているため)、ハードウェア実装の違いにより追加の適応が必要になることに注意してください。ドライバは I2C アドレスに正しくバインドされていますが、ピン配置の不一致により適切な通信に失敗しています。 よろしくお願いします。
View full article
在 S32G2 BSP42.0 中启用内核映像验证失败 专家你好 这是来自 Ceer - Hirain 的紧急案件。他们未能在 BSP42.0 中启用内核映像验证。 客户的问题状态: 1.客户使用了富士康代码库中的ATF和富士康的板。他们遵循 S32G2 BSP42.0 第 10 章的规定UM 启用 ATF 和内核映像的身份验证。他们的详细步骤附后。测试日志显示,执行"bootm 0x80000000" 后,无法找到内核映像,而 iminfo 命令显示无法获取内核映像。 2。我要求客户使用以下命令将第 9 步之后重新生成的 ATF 二进制文件写入 SD 卡: dd if=fip.s32 of=/dev/sdb seek=512 skip=512 iflag=skip_bytes oflag=seek_bytes conv=notrunc,fsync 我认为 BSP42.0 中遗漏了这一步UM.但是客户报告说,如果他们将重新生成的ATF写入SD卡,则BL31无法启动。 3.我还要求客户使用恩智浦在github上的ATF版本,ATF报告了一些错误如下。 我做了什么 1.我只按照 S32G2 BSP42.0 第 10.6.2 章的步骤进行了操作UM 启用 RDB2 的内核验证。请参见所附的详细步骤。 2.我还将再生的 ATF 写入了 Sdcard 3.测试日志显示内核映像和 dtb 文件已成功验证,但在加载内核映像后触发了系统RESET。 我的分析 由于客户使用了第三部分(Foxcon)中的测试板和ATF,我怀疑 富士康可能会对ATF和BSP进行一些修改以适用于其板。撰写 生成的 ATF 将导致客户端 BL31 的启动失败,重新生成的 fip.s32 包括带有额外签名哈希值的 DTB(使用 mkimage 工具对内核和 fdt 进行签名),所以我猜 BL31 内存可能会被额外的签名哈希值覆盖。 1. 你能看看我的步骤并分析一下系统 RESET 触发信号的原因吗? 2.对于客户的问题,能否请您检查一下客户的步骤并提供一些提示?我们可以检查一些配置吗? Linux BSP 优先级:高 Re: Failed to enable kernel image authentication in S32G2 BSP42.0 客户为 ATF 提供了主要修改 Re: Failed to enable kernel image authentication in S32G2 BSP42.0 是的,没有提到这一点,但我认为这是有暗示的。不过,如果需要的话,我可以添加这个细节。 不过,我们确实提供了一个 itb 配置示例,而且可以正常工作。此外,yocto 下的 verifiedboot 已实现自动化,因此使用 yocto 可以更快地制作 verififedboot,而无需遵循这么多手动步骤。 使用 distro_features 进行版本即可:append = " verifiedboot " Re: Failed to enable kernel image authentication in S32G2 BSP42.0 你好 例如,当在 0x80000000 处使用 fatload 加载 ITB 时,需要确保 0x80000000 处有足够的空间来容纳 ITB。然后,需要确保 ITB 在 "加载:"中配置的值有足够的空间将内核从 ITB 解压缩到新的内存位置。 具体而言,在这种情况下,内核在加载 ITB 时使用相同的内存地址从 ITB 中解压出来 (0x80000000),这会导致损坏,引导加载程序会重新启动板。为了使其正常工作,建议将负载从 0x80000000 改为 0x82000000(在 ITS/ITB 配置中),或者在不同的内存位置加载 ITB。 此致, 米哈伊 Re: Failed to enable kernel image authentication in S32G2 BSP42.0 是的,正如我在电子邮件中提到的那样,我在后来的实验中也发现了这个细节,但是在电路板支持包。 UM 中,没有提及这个细节 Re: Failed to enable kernel image authentication in S32G2 BSP42.0 你好,米哈伊 我要求客户尝试使用Yocto自动启用安全功能,他们报告说,他们遇到了与ATF无法启动BL31或BL33相同的问题,如下所示。 正如我在邮件中提到的,客户也按照我分享的步骤手动启用了内核映像验证,这在我这边已被证明有效,但他们也遇到了同样的问题。 这个问题主要集中在以下两个因素上: 1.客户使用修改后的 dtb 文件重建 ATF,该 dtb 文件包含用于内核映像验证的附加公钥。如果他们使用未修改的 dtb 文件来版本 ATF,则 ATF 可以正常启动。 2.客户修改了 ATF,请参阅我之前评论中附带的 ATF 补丁文件。 我要求客户调试 ATF 代码以找到卡住点,他们正在进行这项工作。将来可能会与客户举行一些在线调试会议。我不是 ATF 的专家,希望软件团队也能参加会议。附带的文件是客户的 ATF dtb 和 fip.bin,它们无法正常启动 另外,软件团队是否需要客户提供更多额外信息,并提出更多建议来调查根本原因? Re: Failed to enable kernel image authentication in S32G2 BSP42.0 嗨,亚瑟、 请告诉他们将生成的 dtb 转换回 dts,并在从 UM 运行第 8 步时使用 meld 检查输入与输出的 dtb。 (因为不使用它也能工作,但使用它就不行了)。 我感觉这是一个版本问题,有一个不错的输入 dtb,但结果是运行第 8 步后另一个 dtb 与他们的硬件不匹配。 感谢并致意 米哈伊
View full article
揭开Linux中PCIe和CPU地址空间转换的神秘面纱 lspci output on iMX95EVK as PCIe RCiMX95EVK作为PCIe RC时的lspci输出 请仔细观察上述片段。它取自iMX95的控制台,在对特定PCIe设备[iMX8MM即PCIe EP]执行“lspci”后,此设备已枚举为BDF[总线设备功能]01:00.0。 本博客试图揭开围绕lspci输出内存地址信息的神秘面纱。 我们将探讨这一地址的定义、用途及其在PCIe领域的重要性。本博客将重点讨论以下议题:- 1. Linux设备树中的PCIe对应关系 2. 什么是CPU和PCIe地址空间,以及地址空间转换的必要性? 3. 在Linux中为PCIe设备分配资源 4. 如何在Linux PCI子系统中进行地址空间转换?   Linux设备树中的PCIe对应关系 在Linux设备树中,PCIe对应关系可定义PCIe根复合体和端点在系统中的位置。设备树中的PCIe父节点代表PCIe控制器(根复合体/主机桥)。 参考imx95设备树源中的PCIe节点:- pcie@4c300000 {                         compatible = "fsl,imx95-pcie"; reg = <0x00 0x4c300000 0x00 0x10000 0x00 0x4c360000 0x00 0x20000 0x00 0x60100000 0x00 0xfe00000>;                         reg-names = "dbi\0atu\0config";                         #address-cells = <0x03>   …  } pcie@4c300000代表Designware PCIe控制器根复合体,它将作为与其连接的设备/桥的父节点。 -- “compatible”属性则用于标识特定的PCIe控制器。其对应的驱动程序位于drivers/pci/controller/dwc/pci-imx6.c -- “reg”属性可指定PCIe控制器的内存映射寄存器。 PCIe RC下的子节点代表PCIe总线上的设备。它们可以是固定功能设备,例如Wi-fi、以太网、NVMe,也可以是PCIe桥,后者可进一步连接设备。 参考“arch/arm64/boot/dts/freescale/imx95.dtsi” pcie_4ca00000: pcie@4ca00000 { compatible = "pci-host-ecam-generic"; reg = <0x0 0x4ca00000 0x0 0x100000>;                         /* 必须为3。*/              …              …              enetc_port0: ethernet@0,0 { 兼容 = "fsl,imx95-enetc"; reg = <0x000000 0 0 0 0>; clocks = <&scmi_clk IMX95_CLK_ENET>,                                          <&scmi_clk IMX95_CLK_ENETREF>;                                 clock-names = "ipg_clk", "enet_ref_clk"; nvmem-cells = <&eth_mac0>;                                 nvmem-cell-names = "mac-address"; 状态 = "disabled";                         }; }   ethernet@0,0是位于总线0、设备0、功能0的PCIe设备。它是PCIe RC的子设备,内存映射位置为0x4ca00000 这些子设备/桥既可以借助PCI枚举动态发现,也可以在设备树中静态描述,如上文中设备树片段所示,其中“ethernet@0,0”条目以静态方式向RC声明与其连接的以太网子设备。如上例所示,这些子节点嵌套在设备树的PCI父节点中。   什么是CPU和PCIe地址空间,以及地址空间转换的必要性? CPU地址空间是处理器所能查看的系统物理内存映射。 Cortex-A55在iMX95上查看的CPU物理地址空间示例:   起始地址      结束地址    模块 0x48000000       0x4812FFFF    GIC编程寄存器 0x4AA00000      0x4AAFFFFF    Neutron SRAM 0x4AC10000      0x4AC1FFFF    摄像头域块控制 0x4E080000       0x4E08FFFF    DDR控制器 此地址空间是由系统固件/操作系统管理的全局系统视图。这些地址均由硬件设计固定。 另一方面,PCIe地址空间是PCI总线的本地空间,由PCIe子系统管理。该空间中的地址采用动态分配模式。 PCIe地址空间的示例如下:- 0x00000000   -    0x0FFFFFFF 0x10000000-0x1FFFFFFF 0x20000000   -    0x2FFFFFFF 由上文说明可知,CPU和PCIe地址空间运行在各自独立的地址域中。因此,除非部署转换机制,否则CPU无法访问PCIe设备的地址空间。我们将在后续章节中讨论这一内容,但请花几分钟时间来思考以下问题: 问:为什么CPU和PCIe需要独立的地址空间? 答:主要考量因素之一是模块化。我们采用独立的空间设计,确保PCIe设备独立于CPU架构进行设计。同一张卡可以在不同的系统中运行。CPU可以根据需要随时重新映射PCIe空间,从而始终保持灵活性。 此外,不同的地址空间会阻止设备访问任意系统内存。 根据本节的讨论内容,PCIe地址空间显然与CPU地址空间存在本质差异,而事实上——这种差异恰恰赋予其独特优势。因此,我们需要一个能在地址空间之间实现双向转换的实体。 接下来,我们将介绍“iATU”,即内部地址转换单元。在iMX SoC中,这些硬件单元负责执行地址转换。它们是Synopsys DesignWare PCIe控制器的组成部分,可为入站和出站事务提供可编程的地址转换窗口。 对于不熟悉PCIe入站和出站事务的读者,请花些时间阅读这篇技术博客 - 通过用例了解PCIe出站/入站窗口 - 恩智浦网络社区 注意:地址转换仅确保CPU可访问PCIe设备的内存,反之亦然。 到目前为止,读者应对PCIe地址转换形成基本认知。在深入研究Linux PCI子系统中的转换操作之前,让我们先讨论一下如何为PCIe设备分配资源。   在Linux中为PCIe设备分配资源 PCIe设备并未配置直接的CPU指令接口,因此其通过内存映射区域进行通信。设备需要内存来执行DMA操作或MSI/MSIX中断。不同的设备有不同的需求,因此PCIe中的资源可以是映射设备寄存器的MMIO,也可以是DMA传输所需的内存区域。 在Linux中,PCI子系统的pci_assign_resource函数负责在系统初始化期间为PCIe设备分配IO和内存资源,此操作将在枚举PCIe设备后执行。PCI总线上的所有设备均可调用此函数,并根据PCI设备的资源需求进行分配。 但是,Linux中的PCI子系统如何确定PCIe设备需要什么资源? - 每台PCIe设备都设有由PCIe规范定义的配置空间。这包括   BAR[基地址寄存器] - 用于指示设备所需资源的类型[IO/Mem]和规模。 功能 - 用于广播设备功能,例如MSI中断、ASPM低功耗状态等。 通过从PCIe设备读取BAR,我们可以了解设备所需资源的类型和规模。 // 从PCIe设备的BAR中确定资源规模:- 步骤-1:将所有1写入目标BAR寄存器。 步骤-2:读回该值并清除低4位(对于内存BAR)或2位(对于I/O BAR),因为这些状态位并不参与大小的计算 步骤-3:对该值执行按位取反后加1。 步骤-4:返回值表示大小。 举例说明:- 假设在读回上述步骤-2中的值后,BAR返回0xFFFFF000。低4位已清零。 步骤-3:对该值执行按位取反 -> ~(0xFFFFF000) = 0x00000FFF 加1:0x00000FFF + 1 = 0x00001000 得到的值0x1000 = 4096字节表示大小,即BAR需要4KB的内存区域。 // 从PCIe设备的BAR中确定资源类型:-   PCI 配置空间中的基地址寄存器(BAR): 位 0 → 资源类型: 1 = I/O 空间 0 = 内存空间 对于内存BAR: 00 = 32位 10 = 64 位 位1–2 → 寻址类型: 位 3 → 可预取标志 解释值0xFFFFF000,我们得到:   位 0 = 0 → 内存空间 位 1–2 = 00 → 32位地址 位 3 = 0 → 可预取 高位 → 基址(屏蔽后)   pci_read_bases [drivers/pci/probe.c]在Linux PCI子系统中负责确定设备枚举期间的BAR内存大小和类型需求。 毋庸置疑,上述向端点的BAR写入数据并确定资源类型与规模的操作流程,均在PCIe RC上执行。我们的设置如下:- iMX95<------> iMX8MM[RC]                     [EP] 在PCIe RC确定所需的BAR大小后,pci_assign_resource函数会分配一个内存范围,然后设置从该内存范围向PCIe地址空间的转换。 我们以一个lspci日志片段为切入点来撰写这篇博客文章,具体片段如下:- 综上所述,请注意RC驱动程序已分配以下资源: 0x910100000 - 0x910110000作为不可预取的内存地址范围,大小=64KB 上述内存地址范围位于iMX95 SoC上映射的PCIe 1出站空间内存中:-   范围0x910100000 - 0x910110000将映射到端点的PCIe地址空间。这实际上意味着,如果CPU生成此范围内的任何地址[包括起始和结束地址],PCIe控制器则会在RC上向总线中的端点发送PCIe TLP。它可能是对端点内存的读取/写入操作。写入/读取地址将根据地址空间转换来决定。 我们将在下一节详细探讨如何在Linux内核中实现这一转换。   在 Linux PCI 子系统中如何进行地址空间转换?   我们先从部分关键问题入手:- 如何指定0x910100000-0x910110000的范围?内核如何确认其必须映射PCIe 1出站空间,而非PCIe2出站空间或其他地址空间? -- 正如Linux 中的所有优秀设计,这同样始于“设备树二进制”。Uboot会将dtb传递给内核,以便其获取我们的板硬件描述。由于我们使用Torradex的Verdin iMX95 EVK板作为根复合体,因此我们使用的dtb为 imx95-19x19-verdin-adv7535.dtb 我会附上可用的dtb,供读者按需使用。 该dtb包括 -arch/arm64/boot/dts/freescale/imx95.dtsi 让我们重点关注特定的pcie节点:-   “ranges”属性正是本节先前所提问题的答案。  - 此属性可定义父地址空间和子PCI地址空间之间的地址转换规则。   注意:此博客仅关注“ranges”属性,因为它与我们的讨论内容相关。因此,如果读者想了解PCIe节点的其他设备树属性,建议查阅其他资料。  让我们解码“ranges”属性: 具体格式如下:-      3个单元               2个单元             2个单元             因此,一个条目将配置7个单元。我们的dtsi设有2个条目。第一个条目用于IO空间转换,第二个条目则用于内存空间转换。请参考第二个条目:-   0x82000000 0x0 0x10000000 0x9 0x10000000 0 0x10000000 |------PCI地址---------------| |-CPU地址-| |---PCI大小---|   根据上文,我们获得以下信息:- 内存空间可预取 <   0x82000000 0x00 0x10000000 // PCIe 地址:0x10000000   0x09 0x10000000              // CPU/系统地址:0x910000000 0x00 0x10000000 // 大小:256MB >; 0x82000000 = 1000 0010 0000 0000 0000 0000 0000 0000   位 31-30 (10) → 配置空间类型:这表示内存空间。 位29(0) → 不可重定位 位 28 (1) → 可预取 = 否(0 表示不可预取) 位 27–24 (0010) → 地址空间类型 = 内存 因此,0x82000000表示: PCI 内存空间 不可预取 32 位地址空间 注意:- 对于想了解lspci输出为何显示[size=64K]而dts256 MB的人,这是因为256MB是PCIe设备可用的最大地址空间。端点设备根据自身所需地址空间的大小,向系统申请分配。 同样,IO空间转换也是根据“ranges”中的第一个条目创建的:- < 0x81000000 0x00 0x00 → PCI I/O 地址:0x00000000 0x00 0x6ff00000 → CPU/系统地址:0x6ff00000 0x00 0x100000 → 大小:1MB >;   我们在iMX95 Verdin EVK Linux控制台的dmesg输出中也观察到类似情况:-   因此,内存空间映射已从 CPU地址0x910000000 - 0x091fffffff转换为PCIe地址0x10000000 - 0x1fffffff 我们有必要说明使用“ranges”属性的驱动程序。“ranges”属性在“pci_parse_request_of_pci_ranges -> devm_of_pci_get_host_bridge_resources”中进行解析,具体路径是“drivers/pci/of.c” 每个范围中的devm_of_pci_get_host_bridge_resources会自动管理这些资源的内存分配。它能确保在设备断开连接或驱动程序移除时释放这些资源。 我们已确定CPU和PCI地址范围的定义和原因。但是在lspci中,您观察到的是0x910100000,而非0x910000000,后者才是根据dtb指定的起始范围。这是为什么呢? 要回答这个问题,我们需要回溯PCIe设备枚举过程。 如上文所述,在PCIe枚举过程中,Linux PCI驱动程序会确定BAR资源,随后PCI核心驱动程序可能会遵循对齐要求分配地址。正因如此,系统会为EP的BAR0分配PCI总线地址0x10100000,且与0x10000000存在1MB[0x100000]的偏移量。 同时,您还需关注设备树PCI转换窗口:- 0x10100000转换为0x910100000 这一转换并非自动完成。设备树二进制仅指定转换窗口的具体信息,例如目标CPU地址空间和源PCI 地址空间之间的转换关系。实际转换是由iATU完成的。 此操作可在drivers/pci/controller/dwc/pcie-designware-host.c的dw_pcie_iatu_setup函数中完成,具体方式是使用dw_pcie_prog_outbound_atu函数创建出站窗口。 RC上的转换已成功配置,但部分环节仍需完善。 .. .. 入站窗口!! 如果端点(如iMX8MM)上并未配置入站窗口,对0x910100000的读取/写入操作将毫无意义。我们在iMX8MM上使用的是PCI端点测试驱动程序,该驱动程序是Linux社区中的热门选择。如果读者需要了解更多信息,建议访问此页面:- 9. PCI端点框架 — Linux内核文档 pci_epc_map_addr函数(位于drivers/pci/endpoint/pci-epc-core.c中)通过将PCI地址[0x10100000]映射到EP内存中的物理地址来创建入站窗口。读取和写入操作就是通过这种方式进行的。 如果未配置入站窗口,进行读取操作时将出现以下情况:-   现在,一切准备就绪。转换窗口已在PCI驱动程序中配置,且处于Linux控制台环境中。当CPU发起内存读取请求时,将按以下顺序执行:-   对于内存写入操作:- 端点上会出现以下情况:- 最妙的是,整个转换过程由硬件以透明的方式完成 - 您的驱动程序只需读取/写入CPU地址,PCI主机控制器就会自动处理所有转换! —— 我们如何测试地址映射?   要测试读取和写入操作,我们可以针对驱动程序本身作出一些改动,或者使用devmem5用户空间二进制。我们将对iMX8MM进行驱动程序方面的细微修改,并在RC上使用devmem5。 iMX8MM是PCIe端点,我们使用端点测试驱动程序对其进行相应配置。如果您需要实现相同配置,请参照此博客的指引操作 - 在iMX95 torradex板和iMX8MM EVK上启用PCIe端点框架 - 恩智浦网络社区 相反,如果您想将iMX95设为RC并将iMX8MM设为端点,请随时关注此博客 - 如何将iMX95EVK配置为PCIe端点并使用PCIe端点测试框架进行测试 - 恩智浦网络社区 接下来,我们需要完成两个任务:- 1. 在iMX8MM EP中,我们将写入部分随机值 在drivers/pci/endpoint/pci-epf-core.c中,对pci_epf_alloc_space函数进行以下修改:-     “space”是虚拟地址,“phys_addr”是连续的物理地址。 请注意,这是测试转换的初步方式,还有更合适的方案。 在修改后编译内核并用其启动开发板。使用PCI端点测试框架将iMX8MM设为端点。 2. 在iMX95 Verdin EVK [PCIe RC]上,我们将使用devmem5读取地址0x910100000,以验证能否在RC上观测到相同的数据。   以上就是本期的全部内容。此博客篇幅较长,如果您对其中的细节感到困惑,请随时通过私信或评论留言,我将尽力为您解答。 下次再见! Gaurav Sharma IMX95EVK
View full article
约克托·斯卡斯加普 您好,您计划很快发布Yocto Scarthgap imx-manifest吗? 如果是的话,那会是什么时候? 提前致谢!
View full article
evkmimxrt1024_lpi2c_interruptに関するご質問 親愛なる皆様へ これを試しましたが、動作させることができませんでした、指示どおりに配線、SCL:J18-12 --> J17 -4、 SDA:J18 -10 ---> >J17-2。次の関数は 0 ではなく 900 を返します (成功) reVal = LPI2C_MasterStart(EXAMPLE_LPI2C_MASTER_BASEADDR, LPI2C_MASTER_SLAVE_ADDR_7BIT, kLPI2C_Read); 何か見落としたものはありますか?誰かがこのplsを試しましたか? IDE24.12 と SDK24.12 を使用しています。 ありがとうございます ピング Re: evkmimxrt1024_lpi2c_interruptに関する質問 こんにちは@ping1 , ご辛抱いただきありがとうございます。 私はSDKチームにあなたのケースを確認しました。 NXPには、この問題の解決を目的とした内部チケットがすでにありますが、その後のSDKデモは更新されますので、引き続きSDKの更新バージョンに注意してください。 この問題の解決が急務で、SDKのアップデートが待ちきれない場合は、お知らせください。 それがあなたに役立つことを願っています。 それでも質問がある場合は、私に知らせてください。 良い一日をお過ごしください! よろしくお願いします MayLiu Re: evkmimxrt1024_lpi2c_interruptに関する質問 こんにちは@ping1 , 私たちの製品に興味を持ち、コミュニティをご利用いただき、誠にありがとうございます。 私はあなたがしたことに従って、私もこのエラーを見つけます。 プログラムは、I2C BUSがkStatus_LPI2C_Busy状態であることを確認します。 関連するSDKチームに内部チケットをリクエストして確認します。 しばらくお待ちください。 それがあなたの助けになることを願っています。 それでもご不明な点がございましたら、お気軽にお知らせください。 良い一日をお過ごしください! よろしくお願いいたします メイリュウ
View full article
IMXRT1170-EVKB 上的双以太网配置 大家好, 问候! 我正在研究 IMXRT1170-EVKB 板并实现双以太网(ETH0 和 ETH1)以同时以 100M 和 1G 的速度工作。 我首先导入 SDK 示例“evkbmimxrt1170_lwip_ping_bm_cm7”,该示例在同一工作区内以独立模式成功运行。以太网端口选择通过以下方式控制: - “板载网络使用100M以太网端口(1U)” -“板载网络使用100M以太网端口(0U)” 但是,我需要同时启用两个以太网端口(100M 和 1G)。为了实现这一目标,我采取了以下措施: - 使用 lwIP 配置并初始化两个以太网接口(100M 和 1G)。 - 分配唯一的 MAC 地址、PHY 资源和时钟配置。 - 为每个接口创建“netif_100M”和“netif_1G”结构。 驱动程序和配置文件的修改: 1. 在“opt.h”中启用“IP_FORWARD”。 2. 为两个以太网接口启用 ping 初始化。 3. 更新“lwipopts.h”: - 设置“LWIP_SINGLE_NETIF = 0”以允许多个接口。 - 设置“LWIP_NUM_NETIF = 2”来定义网络接口的最大数量。 整合这些更改后,我可以成功地向两个以太网输入发送 ping 消息。但只有“1G以太网(ETH1)有响应”,而“100M以太网(ETH0)没有收到任何响应”。 我已附上终端截图和完整修改后的项目“evkbmimxrt1170_lwip_ping_bm_cm7”以供参考。您能否检查一下我的配置并指出可能导致此问题的任何缺失步骤? 期待您的指导。 提前谢谢! 此致, 库马尔王子 回复:IMXRT1170-EVKB 上的双以太网配置 你好,山姆, 感谢您的快速回复。 我按照建议做了修改。删除/注释了“ netif_set_default(&netif_100M);”,但问题依旧。比如ping响应只来自1G网络,而不是100M网络。 BR, 库马尔王子
View full article
S32K312 FLASH HELLO ,EXPERT: i am using S3K312 CHIP, I want to use flash and eeprom function without autosar(MCAL),There are some issues troubling me: 1. in the drivers group, i only found C40 ip and cache ip conponent ,what's the meaning of C40? 2. in the MCAL group, i can use FLS and FEE ,is it used for autosar standard interface? 3. in the MCAL i found a component named Mem_43_INFLS_TS,what's the meanning of Mem_43_INFLS_TS at last, if i want to develp FLASH AND EEPROM without autosar ,which component i could use,which demo or example is useful for my requirement ? thanks Re: S32K312 FLASH thank you Re: S32K312 FLASH Hi @PINKMAN, 1. The C40 driver is a non-AUTOSAR IP layer. You can refer to the 02: S32K3xx Real-Time Drivers (RTD) training and chapter 21 (Embedded Flash Memory c40asf) from the S32K3XX reference manual. 2. Yes, the FEE and FLS drivers are derived from MCAL. 3. Depending on which AUTOSAR version you are trying to use, the flash driver changes. For example, you can see included in the SW32K3_S32M27x_RTD_4.4_4.0.0_P20 the driver Fls_TS_T40D34M40I0R0. On the other hand, SW32K3_S32M27x_RTD_R21-11_4.0.0_P19 includes the Mem_43_INFLS_TS_T40D34M40I0R0 driver. This is because in Autosar R21-11, the Fls Driver has been replaced by Mem_InFls/Mem_ExFls. You can refer to the official Specification of Memory Access from AUTOSAR. 4. Any example which includes the "IP" word refer to the non-AUTOSAR (low level) drivers. So, for example "C40_Ip_Example_S32K344". Best regards, Julián
View full article
Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hello, At the AN4581 Application Note section 5.7 it is recommended to program the SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses to completely secure the device, but looking at both the IMX8MMRM and IMX8MMSRM, I wasn't able to find the exact location of those fuses (bank, word, bit). Where can I find this information? Thank you! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi @igorpadykov , I would appreciate if you could send me this information as well. Thanks in advance Dj Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi, Would it be possible for you to send me this information as well? Also is this diifferent between an imx8m nano  and a mini? Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM We also would like to have this information. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM hi @igorpadykov, I need information about the fuses for the imx8m mini. Could you be so kind to provide it to me? I need to disable the JTAG for security reasons. Best regrads, Julián Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM @igorpadykov could you also send me the info for the JTAG_HEO fuse? Thanks! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Can you also share this with me, please? Why isn't this just posted in a public app note, or the reference manual or security reference manual? Security through obscurity is not security. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Could you make this email public information? Why is this information not listed in the security reference manual? For the i.MX8M Nano this is listed in the security reference manual. But I cannot know whether the Mini uses the same fuses. Also, AN4581 also lists fuse DIR_BT_DIS to be of interest. But I cannot find any reference of it. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM We also want to disable JTAG on the imx8m-mini and I couldn't find any info of about it in Reference Manual, Rev. 2, 08/2019 Chapter 6.2 Fusemap. Could you also point me into the right direction. Thank you! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi rodrigo_travess additional info were sent via mail. Best regards igor
View full article
TJA144 NXPチームの皆様、こんにちは。 私たちのデザインでは、TJA1445A CAN IC を使用しています。Vbat への供給についてご確認ください。データシートでは、Vbat の範囲は 4.75V ~ 40V、VCC は 4.25V ~ 4.75V です。Vbat と VCC に同じ 5V をCAN使用できますか? Re: TJA144 こんにちは、トーマス。 ご説明ありがとうございます。 よろしくお願いいたします。 スネハル Re: TJA144 こんにちは、スネハルさん 注記には、 「低電力モードで VCC がオフになることが予想される場合、適切な CAN バイアス生成のために VBAT は 5.5 V より高くなければなりません」と記載されています。つまり、デバイスは VCC がオフのときに VBAT がアクティブのままであると想定しているSO、両方が同じ 5V レールに接続されている場合は、その柔軟性が失われます。低電力モード (スリープ/スタンバイ) が必要な場合は、VBAT を VCC から分離しておく必要があります。低電力モードが重要でない場合は、一般的な 5V 電源を使用しても問題ありません。 はい、VBAT の範囲は 4.75V ~ 40V SO、24V は仕様範囲内です。データシートの表 1 に示すように、VBAT から引き出される電流は非常に低いです。24 V でも電流はマイクロアンペアの範囲に留まるSO、電力消費はごくわずかです。主な電流消費は VCC (CAN トランスミッター) から発生し、モードに応じて 6~60 mA になります。SO、適切なフィルタリングと過渡保護を確保すること以外に、24V での VBAT に大きな制限はありません。 BRs、トーマス Re: TJA144 VCC と VBAT に 5V を供給している場合、5V をオフにすることはできないのでしょうか?この画像に記載されているとおりです。もう 1 つ質問があります: Vbat 24V を供給すると動作しますか?電流消費の観点から何か制限はありますか? Re: TJA144 こんにちは、スネハルさん データシートに基づく: - VBAT(バッテリー電源):4.75V~40V - VCC(CANトランスミッター電源): 4.5V~5.5V - VBAT低電圧検出: 4.25V~4.75V - VCC低電圧検出: 4.0V~4.5V SOはい、次の条件を満たす場合、VBAT と VCC の両方に同じ 5V 電源を使用CANます。 - 5V 電源は安定しており、最小 VBAT 要件 (> 4.75V) を満たしています。 - 共通電源の使用を示すには、システム構成レジスタで VBATVCC = 1 を設定します。 - レギュレータが VBAT と VCC の両方の負荷の電流をCAN処理することを確認します。 BRs、トーマス
View full article
将新相机移植到 imx7d 时出现的 Android 框架问题 您好, 我正在将新相机移植到 imx7D 板上。它输出 640x480 YUYV 图像,而我的屏幕是 320x240 RGB565。我注意到 libcamera3 中有一些用于 OV5640 的配置文件,我试着参考这些文件编写自己的 cpp 文件。但看起来,安卓框架在颜色转换方面存在一些错误。我的屏幕显示大量绿色像素。 您能给我一些建议吗? #linux #Android Linux Re: Android framework issue while porting new camera to imx7d 问题解决了。以前的相机不能输出 YUYV 格式,只能提供 RAW8/RAW10 格式(但数据表上说有 YUYV 格式......)。我又买了一批新相机,它们都能正确显示视频。 Re: Android framework issue while porting new camera to imx7d 你好, ,我之前尝试过两种 YUYV,但都不行 --> 最初的 hal 驱动程序也支持它,但它可以在捕获和渲染时运行。请确保 HAL 格式的输入和输出没有问题。然后检查 android 框架配置和您的应用程序,确保应用层可以正确转换和显示它。 致敬, Zhiming Re: Android framework issue while porting new camera to imx7d 嗨,志明、 我之前试过两种 YUYV,但都不行。因此,我试图在这里使用不同的 availFormats。 顺祝商祺! PatrickZ     Re: Android framework issue while porting new camera to imx7d 你好, 你想在 HAL 层中将相机格式转换为 RGB 吗?为什么要在 HAL 代码中注释 YUYV。我认为你不需要在 HAL 层中将其转换为 RGB。 致敬, Zhiming
View full article
RTL8211F 千兆位以太网使用中断模式缩短启动时间 你好 我在 yocto 6.1.22 上使用 imx93-evk-11x11版本。 在测试启动时间时,发现网络发现时间过长,具体如下: [ 2.040890][ T179] imx-dwmac 428a0000.ethernet eth0: 注册 MEM_TYPE_PAGE_POOL RxQ-0 [ 2.134466][ T179] imx-dwmac 428a0000.ethernet eth0: PHY [stmmac-1:00] 驱动程序 [RTL8211F 千兆以太网] (irq=POLL) [ 2.142421][ T179] imx-dwmac 428a0000.ethernet eth0: 未找到任何功能安全支持 [ 2.142451][ T179] imx-dwmac 428a0000.ethernet eth0: 支持 IEEE 1588-2008 高级时间戳 [ 2.142648][ T179] imx-dwmac 428a0000.ethernet eth0: 注册的 PTP 时钟 [ 2.151880][ T179] imx-dwmac 428a0000.ethernet eth0: FPE 工作队列启动 [ 2.151899][ T179] imx-dwmac 428a0000.ethernet eth0: 配置 phy/rgmii-id 链接模式 [ 2.178732][ T179] 8021q: 将 VLAN 0 添加到设备 eth0 上的 HW 过滤器 [ 5.249135][ T9] imx-dwmac 428a0000.ethernet eth0: 链接已启动 - 1Gbps/Full - 流量控制 rx/tx 差不多用 3 高效密码学标准(SEC) 的时间来发现网络。 修改树文件如下 但 dmesg 打印 [ 2.024875][ T172] imx-dwmac 428a0000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 2.039447][ T25] audit: type=1334 audit(1677838060.032:4):prog-id=7 op=LOAD [ 2.039752][ T25] audit: type=1334 audit(1677838060.032:5):prog-id=8 op=Load [2.11475] [T172] imx-dwmac 428a0000.ethernet eth0:PHY [stmmac-1:00] 驱动程序 [RTL8211F 千兆以太网] (irq=98) [2.126706] [T172] imx-dwmac 428a0000.ethernet eth0:未找到 功能安全支持 [2.126736] [T172] imx-dwmac 428a0000.ethernet ethernet eth0 mac 428a0000.ethernet eth0:支持 IEEE 1588-2008 高级时间戳 [2.126984] [T172] imx-dwmac 428a0000.ethernet eth0:已注册的 PTP 时钟 [2.138550] [T172] imx-dwmac 428a0000.ethernet ethernet eth0:imx-dwmac 428a0000.ethernet ethernet eth0:imx-dwmac 428a0000.ethernet ethernet eth0:imx-dwmac 428a0000.ethernet ethernet eth0 eth0:为 phy/ 进行配置 rgmii-id 链接模式 [2.167072] [T172] 8021q:在设备 eth0 上的硬件过滤器中添加 VLAN 0 eth0 状态如下: ethtool eth0 eth0 的设置: 支持的端口:[ TP MII ] 支持的链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 支持暂停帧使用:对称只接收 支持自动协商:是 支持 FEC 模式:未报告 广告链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 广告暂停帧使用:对称只接收 广告宣传的自动协商:是 宣传的 FEC 模式:未报告 速度:未知! 双工:未知!(255) 自动协商:开 主从配置文件:首选从 主从状态:未知 端口:双绞线 PHYAD:0 收发器:外部 MDI-X:未知 支持唤醒:ug 唤醒:d 当前信息级别:0x0000003f (63) drv probe link timer ifdown ifup 检测到链接:无 有人遇到过类似问题吗? Linux Re: RTL8211F Gigabit Ethernet use interrupt mode reduce startup time 你好@然阳 现在似乎是谈判时间。 你可以尝试在设备树中添加固定链路属性。 或者修改驱动程序,避免使用 imx_dwmac_fix_speed。 顺祝商祺! 萨拉斯 Re: RTL8211F Gigabit Ethernet use interrupt mode reduce startup time 您好: 中断响应是足够的,但由于千兆位 phy 的握手,启动时间并没有减少。具体如下       我想在内核 dwmac 的驱动程序阶段对/lib/systemd/systemd networkd 执行网络升级操作。完成 fs 文件系统后,我就可以直接使用网络了。不按顺序,导致 phy 握手时间长达约 3 秒。 以前有这样做的例子吗? Re: RTL8211F Gigabit Ethernet use interrupt mode reduce startup time 你好@然阳 希望你一切顺利。 我只想问一个问题。 您可以重新配置 SW1006 吗? 请仔细检查 SW 是否配置正确。 顺祝商祺! 萨拉斯
View full article
S32K358 上の AUTOSAR 4.7.0 での受信割り込みの設定 こんにちは、皆さん 現在、プロジェクトをRTDからAUTOSAR 4.7.0(SWバージョン3)に移行中です。 送信と受信の両方が割り込みモードで動作するように設定されています。 RTD セットアップでは、各メッセージ オブジェクトに独自のバッファーが割り当てられていました。メッセージを受信すると、受信 IRQ 機能がトリガーされ、メッセージ オブジェクト番号を使用して、対応するバッファにアクセスして処理できるようになりました。 現在、AUTOSAR では、受信割り込み処理を適切に構成する方法がわかりません。 AUTOSAR で受信割り込み用のメッセージ オブジェクト バッファを割り当てたりアクセスしたりするにはどうすればよいですか? 受信 ISR コールバック (CanIf または CanDrv 経由など) を実装または構成するための推奨方法はありますか? このワークフローの例やドキュメント参照はありますか? いくつかの例を確認しましたが、受信割り込み処理を明確に説明している例は見つかりませんでした。 ヒントや設定例があれば、ぜひ教えてください! Re: Configuring Reception Interrupts in AUTOSAR 4.7.0 on S32K358 こんにちは、 @thorben_kampさん、 SW バージョン 3 とは、S32K3 RTD v3.0.0 ASR21-11 のことを指していると思います。 RTD パッケージは、S32K358 CAN 通信用の AUTOSAR サンプル ルーチンを提供します。 ただし、ループバック操作用に構成されているため、出力ピンには信号が表示されません。出力ピン (S32K3X8EVB の CAN0 の場合は PTA6/7) を設定し、CAN インスタンス モードをループバックから通常/ユーザー モードに変更する必要があります。HW 構成に応じて、CANトランシーバを初期化する必要もあります。 S32K3X4EVB-T172 の割り込み MCAL ベースの例がここに投稿されています: [RTD600 MCAL & IP] S32K3X4EVB-T172 FlexCAN 例割り込み/ポーリング - NXP コミュニティ。S32K344 ベースですが、同じメインルーチンをCAN使用します。この例は単に最も基本的な構成を示すものであり、AUTOSAR にまったく準拠していないことに注意してください。 よろしくお願いします、 ジュリアン
View full article
i.MX95 Cortex-M7 内核支持 Qt for MCU(Qt Quick Ultralite) 我目前正在评估恩智浦 i.MX95平台,以开发基于图形的嵌入式应用。根据i.MX95文档,该SoC集成了用于高级应用程序的 Arm Cortex-A55 集群和用于实时处理的 Arm Cortex-M7 内核。 我想确认i.MX95 中的 Cortex-M7 内核是否支持微控制器 Qt(Qt Quick Ultralite)。 具体来说,我希望澄清以下几点: i.MX95 (M7) 平台是否正式支持 Qt for MCU,类似于 i.MX RT1170 EVK 等现有恩智浦板? 如果支持,应使用哪个 SDK、电路板支持包或工具链(例如 MCUXpresso SDK、FreeRTOS)在 M7 内核上版本和部署 Qt for MCU 应用程序? 如果尚未得到官方支持,是否有任何计划中的路线图或推荐的方法将适用于MCU的Qt移植到i.MX95 M7上(例如,通过MCUXpresso SDK或自定义电路板支持包)? 如果您能就在 i.MX95 M7 内核上运行 MCU Qt 是否存在官方支持或集成示例提供指导,我将不胜感激。 提前感谢您的帮助。 评估板 Re: Qt for MCUs (Qt Quick Ultralite) support on i.MX95 Cortex-M7 core 您好, 正式版本时,显示屏始终在 A55 以下。如果您需要基于 M7 的 QT 演示,DPU 应在 M7 和 restru 下,请联系恩智浦销售团队获取有关 M7 上 QT 的详细演示。目前,没有官方版本计划。 致敬, Zhiming
View full article
请求提供 MIMXRT1176 EVKB 的内存图 你好 我目前正在使用 MIMXRT1176 EVKB 板开发一个项目,想获得该设备的详细内存映射。 请提供以下方面的文件或指导: 完整的内存布局(ITCM、DTCM、OCRAM、外置闪存、同步动态随机存取存储器(SDRAM) 等) 每个内存区域的地址范围 CM7 和 CM4 内核之间内存映射的任何差异 掌握这些信息将有助于我在 MCUXpresso IDE 中正确配置链接器文件和内存部分。 提前感谢您的支持! 致以最崇高的敬意, Meet Bhatt Re: Request for Memory Map of MIMXRT1176 EVKB 你好@meetbhatt2113、 非常感谢您关注我们的产品并使用我们的社区。 我想为你的问题推荐一些有用的应用笔记,请仔细查看。 1:https://www.nxp.com.cn/docs/en/application-note/AN12077.pdf 2:https://www.nxp.com/docs/en/application-note/AN13264.pdf 这些描述了 CM7 和 CM4 内核可访问的共享内存。 3: 您还可以参考 IMXRT1170RM 和 IMXRT1170 数据表。 希望它能帮到你。 如果您还有疑问,请告诉我。 敬上 MayLiu
View full article
缺少编译器 S32 Studio 我在 S32 Studio 3.6.4 中找不到编译器用于 S32K3x8 EVB。 arm-none-eabi-gcc " @board /siul2_port_ip_cfg.args "-MMD-MP-MF "板/siul2_port_IP_CFG.D "-MT " board/siul2_port_IP_CFG.O "-o " board/siul2_port_IP_CFG.O "".。/板/siul2_port_IP_CFG.C " make:*** [generate/src/subdir.mk:26: generate/src/Igf_Port_Ip_Cfg.o] ***.错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make:*** [generate/src/subdir.mk:26: generate/src/OsIf_Cfg.o] ***.错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make: *** [板/subdir.mk: 23:板/tspc_port_IP_CFG.O] 错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make: *** [板/subdir.mk: 23:板/siul2_port_IP_CFG.O] 错误 127 Re: Missing compiler S32 Studio 你好,@Greavesinator85、 您使用的是哪个 RTD 版本?您的项目中似乎没有选择工具链。 示例项目也会出现这种情况吗?创建项目时,是否选择了"Create new S32DS application project" 选项? 您可以尝试在项目属性中手动添加工具链路径,但我建议您创建一个新项目,以避免与此相关的任何其他配置问题。 致以最诚挚的问候, Julián
View full article
[S32G3] [BOSCH] XRDC 启动导致崩溃 客户:博世 XRDC init 正在触发崩溃,如果需要更多详细信息,请与我们联系 XRDC 版本:AR 版本 43。4.4.0(SW 版本 4.0.2) HSE FW 版本:22_2_62_0 RTD 模块:RM 客户代码: 在 M7 核心中 Xrdc_Ip_Init(&Xrdc_Config);最后在 Task_Init 中调用,其中 Xrdc_Config 来自 tresos 生成的文件 static const Xrdc_Ip_InstanceConfigType * const aXrdc_Config_Array[1] = {&Xrdc_Config_XRDC_INSTANCE0}; const Xrdc_Ip_ConfigType Xrdc_Config = { Xrdc_Ip_Config_XRDC_INSTANCE0 { aXrdc_Config_Array、 (uint32)1UL、 Xrdc_Instances_InUsed、 (uint32)1UL }; TASK(Task_Init) { 所有启动函数,例如 ADC、PFE Csm_Init(NULL_PTR); CryIf_Init(NULL_PTR); Crypto_Init(NULL_PTR); Xrdc_Ip_Init(&Xrdc_Config); 请帮助我找出客户所附代码(EB Tresos)中的问题。 谢谢! Dhvani Singhal 优先权:紧急 RTD Re: [S32G3] [BOSCH] XRDC init is causing a crash 你好,@DanNguyenDuy、 我将要求客户实施这种方法,并将配置文件发送给我。然后,我会将文件发送给你。 谢谢! Dhvani Singhal Re: [S32G3] [BOSCH] XRDC init is causing a crash 你好,@DhvaniSinghal、 RTD_RM_IM 文件中有一条关于 Rm_Init 的说明。在调用Xrdc_Ip_Init()之前是否调用了 Mcu_Init()? 如果您这样做了,能否将配置文件(.xdm 或 .arxml文件),请告诉我导致崩溃的 Xrdc_Ip_Init() 函数中的语句是什么? 在我看来,你应该在 Crypto_Init() 之前调用 Xrdc_Ip_Init()。 顺祝商祺! 丹 Re: [S32G3] [BOSCH] XRDC init is causing a crash 你好,@DanNguyenDuy、 客户提出了一些有关 XRDC 初始化的问题,具体如下: 在运行时动态附加或更改内核(M7 或 A53)的进程 ID (PID)的推荐方法是什么? XRDC 驱动程序仅在主机端可用。是否允许在 A53 端修改 XRDC 寄存器以附加 PID? 如果我们允许在运行时访问A53的XRDC寄存器,我们如何确保功能安全。 如果 A53 内核尝试访问 XRDC 封锁(即发生访问冲突),是否有 XRDC 状态寄存器或机制可由 M7 功能安全核心监测来调试此故障? 我们观察到,在 XRDC 出现故障后,XRDC DERLOCK 寄存器(功能域错误锁定)有时似乎无法正确更新。除了检查这个寄存器之外,我们还可以在 S32G3 的功能安全或网络安全模块中检查是否存在并记录了 XRDC 访问失败的确认? XRDC 限制在启动顺序的哪个特定时刻适用于 A53 内核? 在系统软件配置和锁定 XRDC 寄存器之前,A53 内核的默认 XRDC 策略(如默认 DID 分配和默认访问权限)是什么? 请帮助我回答上述问题。 谢谢并致以诚挚的问候 Dhvani Singhal Re: [S32G3] [BOSCH] XRDC init is causing a crash 嗨,@DhvaniSinghal、 问题 1: 1.1 可以。用户可从 A53 端调用 Xrdc_Ip_SetProcessID(),更新主控内核的 PID。 1.2 为确保运行时的安全访问,请配置 SEMA42 通道以实现互斥。这样可以防止同时访问,并保证对 XRDC 寄存器进行原子更新。 问题 2& 3:目前,Cortex-M7 没有检查 Cortex-A53 错误状态的机制。 问题 4& 5:有关这些问题,请联系 HSE 团队。 顺祝商祺! 丹 Re: [S32G3] [BOSCH] XRDC init is causing a crash 你好,@DanNguyenDuy、 客户尝试了您之前回复中提到的步骤,但仍然遇到错误。请在下方找到配置文件和代码片段以供参考。 在 crypto init 之前调用 Xrdc_Ip_Init 尝试通过在 rba_main 中调用 Rm_Init,在 Xrdc_Ip_Init 之前初始化 Rm_Init 观察到一旦在 Mcu_Init 之后添加 Rm_Init 就会崩溃 此致 Dhvani Singhal Re: [S32G3] [BOSCH] XRDC init is causing a crash 嗨,@DhvaniSinghal、 这是调用 Rm_Init 之前 Mcu 初始化的正确顺序。 另外,因为 Rm_Init() 将调用 Xrdc_Ip_Init()。因此,如果用户调用了 Rm_Init(),就不需要再调用 Xrdc_Ip_Init()。请从代码中删除 Rm_Init() 或 Xrdc_Ip_Init()。 顺祝商祺! 丹
View full article
将 Android 映像闪存到 i.MX 8M Mini EVK 时进度卡住 你好,我一直在尝试将 Android 9 安装到定制平板电脑中。使用的板是 i.MX 8M Mini EVK,我的前辈委托我在里面刷安卓 9。我想尽一切办法闪屏,但它总是卡在 [======= 100% ================] SDP:启动-f u-boot-imx8mm-evk-uuu.imx.link 不再回复。有办法解决这个问题吗?谢谢。哦而且我还用了 UUU 作为刷新方法 其他信息:我不小心安装了错误的镜像后我的设备也陷入了启动循环中所以是的,但我仍然可以访问 SDP PS D:\platform-tools>.\uuu_imx_android_flash.bat -f imx8mm -tos -e 本脚本使用 uuu 1.2.135 版本验证,请与此版本保持一致。 支持 dtbo 支持 双插槽 生成行以闪存 u-boot-imx8mm-trusty.imx 到 bootloader0 的分区 生成行到闪存分区表。img 到 gpt 的分区 生成行到 dtbo_a 的分区 生成行到 dtbo_a 的分区 生成行到启动_a 的分区 生成行到闪存系统.img 到系统的分区 生成行到闪存系统的分区 _a 生成行到 flash vendor.img 到 vendor_a 的分区 生成行以 flash vbmeta-imx8mm.img 到 vbmeta_a 的分区 生成行将 dtbo-imx8mm.img 闪存到 dtbo_b 分区的行 生成到 flash 启动_b 分区的线路 生成到启动_b 分区的行 生成到 flash system_b 分区的行。img 到 vendor_b 的分区 生成行 flash vbmeta-imx8mm.img 到生成的分区,开始调用 vbmeta_b uuu 脚本生成的分区,开始调用 uuu 使用为恩智浦 imx 芯片生成的 uuu 脚本 uuu(通用更新实用程序)— libuuu_1.5.201-0-g727fc2b 成功 0 失败 0 1:1-1/ 1 [================ 100% =================] SDP:启动-f u-boot-imx8mm-evk-uuu.imx.link Android i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Progress stuck while flashing an android image to i.MX 8M Mini EVK 你好, 如果卡在这里,串行日志会显示错误。 致敬, Zhiming
View full article
SDRAMのSEMC構成 こんにちは、 私はカスタム NXP RT1176 ボードを使用していますが、SDRAM の SEMC インターフェースでは、ハードウェアはアドレス ライン A0 ~ A11 のみを提供します。この構成では、最大 16MB の SDRAM にアクセスできます。 ただし、32MB を使用したいSO、64MB SDRAM 部品 (Alliance AS4C32M16SB) を選択し、A12 アドレス ラインをフローティングのままにしました。私の意図は、デバイスの下位 32MB を使用することです。 私は SEMC を 64MB に設定し、メモリ範囲を 0x80000000 から 0x80FFFFFF にマッピングしました。この領域では、特定のアドレスで 16 ビットの読み取り/書き込み障害が発生しています。 興味深いことに、0x81000000 から 0x81FFFFFF (上位 32MB) までのメモリにアクセスすると、正常に動作します。 設定に使用したコードを添付しました。これをCAN確認して、改善が必要かどうか、またはこの種のセットアップ (A12 フローティングを使用) が有効であり、SEMC でサポートされているかどうかをお知らせください。 よろしくお願いします、 パバナクマールAG Re: SEMC Configuration for SDRAM A12 は SDRAM 側で低く保持する必要があります (製造元に確認することをお勧めします)。 BR、 オマール Re: SEMC Configuration for SDRAM @Omar_Anguiano さん、返信ありがとうございます。 当社のボードでは、A12 はコントローラ側と SDRAM 側の両方でフローティングになっています。おっしゃるとおり、A12 は既知のロジック レベルに保持される必要があります。以下を明確にしていただけますか: このCASE、A12 にはどのロジック レベル (HIGH または LOW) を使用すればよいですか? 両側で A12 を同じ既知のレベルに駆動する必要がありますか、それとも SDRAM 側でのみ設定すれば十分ですか? Re: SEMC Configuration for SDRAM フローティングラインを避けてください。理想的には、A12 を浮いたままにせず、既知のロジック レベルに接続して下位半分にアクセスできるようにします。 BR、 オマール
View full article
JTAG RT1176経由の非XIP このアプリケーションノート ( https://www.nxp.com/docs/en/application-note/AN14069.pdf ) によると、NON XIP イメージは UART および USB 経由の MCU ブート ユーティリティでのみロードできます。 MCUXpresso IDE 内で MCU リンクまたは Jlink を介して XIP イメージをフラッシュにロードする方法がないことを確認したいのですが。 MCU リンクを使用する必要がある場合、これらが以下の正しい UART ピンにルーティングされているかどうかを確認したいと思います。データシートにUSB経由でのブートのオプションが表示されません: https://www.nxp.com/docs/en/data-sheet/IMXRT1170AEC.pdf(見逃していたらごめんなさい)。USB 経由のブートは USB を同じ UART ピンに接続するだけであるとオンラインで言及しているものをいくつか見ました。 ありがとうございます アンテオ Re: NON XIP via JTAG RT1176 こんにちは@AnteoJ 、 NXP MIMXRTシリーズにご興味をお持ちいただきありがとうございます。 SD カードから起動されるような非 XIP イメージは、MCUBootUtility または NXP の公式 MCUXpresso Secure Provisioning ツールを使用してフラッシュする必要があります。 イメージが XIP の場合、JLink/DAP などのデバッガーでフラッシュするようにプログラムCAN。MCUXpressoIDE や他の IDEs でも簡単に実行できます。 RT1170-EVK/EVKB を使用している場合、ボード上に搭載デバッガーである MCU-Link があることがわかります。これにより、お客様は外部デバッガーを使用せずに、搭載デバッガーを介して直接プログラムをフラッシュし、デバッグすることができます。さらに、異なるファームウェアをプログラミングすることで、MCU-Link を JLink または CMSIS-DAP デバッガーに変更できます。 詳細については、EVK/EVKB ハードウェア回路図をCAN確認してください。 よろしくお願いします、 ギャビン
View full article
LPC54102 外部时钟输入最大频率 你好 我参考了 LPC5410x 的用户手册和数据表,注意到了以下几点: 摘自(用户手册)UM10850: 在时钟发生方面,外部时钟输入最高可达 24 MHz。 摘自产品数据表: 它指出,外部时钟输入的时钟频率最高可达 25 MHz。 请问哪种说法是正确的? 此致, 肯尼斯 LPC54xxx Re: LPC54102 Max Freq of External clock input 你好@kennethkong852 感谢您的报告。 这是时钟配置工具中的一个错误。出现这个问题是因为新版 DS 将频率从 24M 改为 25M。在旧版 DS 中,仍为 24MHZ。 我会立即向配置工具开发团队报告这个错误。 目前,如果您需要使用 25MHZ,请通过代码进行配置。 对于给您带来的不便,我深表歉意。   BR 爱丽丝 Re: LPC54102 Max Freq of External clock input 嗨,爱丽丝、 感谢您的答复和提供的信息! 当我使用时钟配置工具(从 SDK Builder 访问)时,我注意到配置器不允许我输入 25 MHz 的 CLKIN 输入。 它的频率限制在 24 兆赫。 请参阅随附的照片以供参考。 CLKIN valuesCLKIN 值 BR、 肯尼斯 Re: LPC54102 Max Freq of External clock input 你好@kennethkong852 数据表是正确的。 高达25 MHz的外部时钟输入时钟频率。 我将把 UM 问题上报给 DOC 小组。 感谢您的分享。 BR 爱丽丝
View full article