Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
Imx95 verdin EVK、Aquantia10gbps 接口在 udp 上的速度限制为 1.2gbps 你好 我正在尝试通过两个 Imx95 verdin EVK A1 Silicon 版本板的 Aquantia 10 Gbps 接口在它们之间建立通信。两块板均运行 Debian 12(linux 内核 6.12.3),使用恩智浦安装程序(aquantia-firmware-utility/aq_api_2_9_7 at master 的 aquantia-firmware-utility/aq_api_2_9_7)正确安装了 aquantia10 G 固件(aqr-g4_v5.6.d-aqr_Marvell_noswap_xfi_id44834_ver2068.cld)aquantia-固件实用程序·GitHub)。它们使用 Cat6a 以太网电缆进行物理连接。 当我使用 iperf3 进行性能测试时,即使指定的目标带宽为 7 Gbps,我也能获得约 5 Gbps 的 TCP 带宽和 1.2 Gbps 的 UDP 带宽,损耗率为 0% : # TCP 在第一块板上测试 iperf3-s # iperf3-c < Server_IP >-t 30 # 在第二块板上测试 iperf3-s # # UDP 测试 iperf3 -s iperf3 -c -u -b 7G -t 30 当我尝试使用 ip link set dev enp1s0 mtu 9000 激活巨型帧时,却得到一个错误提示,说我超出了限制(10Gbps 接口不接受巨型帧,这很奇怪)。 我还尝试增加 UDP 缓冲区的大小,但得到的是相同的位帧 当我在两侧运行 iperf3 时,CPU 负载不超过 40% 为了达到最大吞吐量(接近 10 Gbps),是否需要应用特定的 n 配置或安装额外的工具?Aquantia FW 版本是否良好?Linux 内核版本?FW 安装程序版本? 有人尝试在该目标机上使用 10Gbps 接口吗? 此致, Abdelmonaem Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 您好, 感谢您的反馈, 应用您的配置: cpufreq-set -g performance sysctl -w net.core.rmem_max=26214400 sysctl -w net.core.wmem_max=26214400 sysctl -w net.core.netdev_max_backlog=250000 sysctl -w net.ipv4.tcp_rmem='409687380 16777216' sysctl -w net.ipv4.tcp_wmem='409665536 16777216' 现在,我在发射端仅使用 iperf 而不是 iperf3,就能达到 10Gbps 的速度,有时甚至能达到 8,8 或 9,8Gbps 的速度,而在接收端,我只能达到 5.59Gbps 的速度,丢失帧数为 36% ,您能帮助解决这个问题吗? Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 1.尝试在两个系统上配置以下设置: cpufreq-set -g performance sysctl -w net.core.rmem_max=26214400 sysctl -w net.core.wmem_max=26214400 sysctl -w net.core.netdev_max_backlog=250000 sysctl -w net.ipv4.tcp_rmem='409687380 16777216' sysctl -w net.ipv4.tcp_wmem='409665536 16777216' 2。如果可能的话,使用不同的参考系统作为 iperf 服务器(例如英特尔至强) 3. iperf3 本身对每个测试流都是单线程的,请尝试使用 -P 选项: ,例如iperf3 -c -u -b 10G -t 30 -P 6 (6 条流) 4.检查正向和反向液流 (-R) iperf3 -c 192.168.1.1 -t 10 -b 10G -u -R Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 它将是一个小版本升级到 6.12.49 顺便提一下,您可能还需要考虑 DPDK 或 AF_XDP,以获得更好的吞吐量? Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp => TCP 与 UDP 的发送性能对比 使用 iperf3 发送 TCP 数据包时,每个 TCP 数据包为 128KB,数据包将被 ENETC 硬件的 LSO 功能分片。因此,你会看到更高的 TCP 传输性能。 iperf3 在创建 UDP 套接字时没有启用 UDP_SEGMENT。因此: -每个 UDP 数据包的大小约为 MTU(约 1500 字节)。 - 在数据量相同的情况下,UDP 需要比 TCP 发送更多的数据包。 更多数据包→更多内核处理→与带 LSO 的 TCP 相比性能降低。 => 为什么 TCP 的接收比发送低很多? - 在 Linux 内核中,TX 和 RX 路径并不对称,因此内核中每个 RX 数据包和每个 TX 数据包的处理时间是不同的。 - RSC 在内核中默认未启用;我们需要禁用 TCP 时间戳,这样 ENETC 的 RSC 才能正常工作。目前,i.MX95 的 RSC 默认为禁用。 a) 启用 i.MX95 的 RSC(接收端): ethtool -K eth1 large-receive-offload on b) 禁用 TCP 时间戳(发送端): sysctl -w net.ipv4.tcp_timestamps=0 sysctl -p /etc/sysctl.conf 启用 RSC 后,接收端的 TCP 性能将会提高。 此外,您还可以尝试使用巨型帧来获得更高的吞吐量。(希望你运行的是最新版本)。 # 将两侧的 MTU 更改为 9000 ip link set dev eth1 mtu 9000 # 更改以太网驱动程序中的 RX 缓冲区长度。 ethtool -G eth1 rx-buf-len 16384 在多数据流模式下,我们可以看到 8 到 10 Gbps 的 UDP RX/TX。 Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 你好, ,我目前只对 UDP 感兴趣,对 TCP 不感兴趣,而且我认为卸载 机制不适用于 UDP ,我试图通过将 mtu 设置为 9000 来激活巨型帧,但我收到了一个错误,提示我超出了 1500 的限制(我使用的内核版本是 6.12.3)。 问候, Abdelmonaem Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 好吧,我试试看,然后告诉你我得到了什么, 你能精确地指出 LF-Q4 的 Linux 内核版本吗?正如我告诉你的那样,我现在使用的是 6.12.3,我不能升级到更高版本,因为我的硅片版本是 A1,我需要知道我是否必须升级到 B0 版本。 Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp RSC 设置还能提高 UDP 性能。 ENETC 中巨型帧的更改/修复将在两周后发布的 LF-Q4 版本中发布。 Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 使用 iperf 时,我的速度可以达到 10Gbps,有时甚至可以达到 9.8Bps;在并行数据流中,只有一个数据流的速度可以达到 5Gbps,但最大的问题是 Udp,在单个数据流中,我的速度可以达到 2Gbps,没有丢帧现象;但在并行数据流中,我的速度可以达到 5.5Gbps,丢帧率为 42% 。 Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 我不认为 AF_XDP 或 DPDK 有助于将 46% 的丢失减少到 0% ,我还验证了 IRQ 亲和性,我可以看到 10G 接口上有 6 个 IRQ,每个 IRQ 都影响到一个 CPU,而且在测试过程中我没有看到任何 CPU 负载问题,1 个 CPU 的最大 CPU 负载为 40% 、我仍然不明白为什么总是丢帧,也许是因为使用的内核版本不支持巨型帧, ,您是否在您的系统(NXP)中对 10G 接口进行了性能测试,我认为您应该在您的系统中进行测试,看看是否存在与我相同的问题。 Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp AF_XDP 或 DPDK 不使用内核网络协议栈。 DPDK 专门有一个不同的驱动程序,只能在用户空间工作。它针对网络和数据包处理进行了高度优化。 它可以为所有 IP 数据包提供真正的快速性能。 您可以登录 第 10 章:https://www.nxp.com/docs/en/reference-manual/RM00293.pdf Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 此测试是在哪个硅修订版 A1 还是 B0 上进行的? 您是否确认用于此测试 6.12.49 的内核版本仅适用于 B0 或者可能适用于 A1?? 我在你的电路板支持包交付中看不到这个内核版本,最后一个是 6.12.34 https://www.nxp.com/pages/alpha-beta-bsps-for-microprocessors:IMXPRERELEASES Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 新的内核树和变更可从以下网址获取: https://github.com/nxp-imx/linux-imx/commits/lf-6.12.49-2.2.0 较新的 LF 版本中已取消对 A1 的支持。 您有以下选项 1。只需独立编译内核,仅在版本中替换内核即可。(可能有效) 2。请您的营销联系人将您的板替换为 B0,这样您就可以发布 LF-Q4'2025 版本。 Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 我不明白这几行的意思: Single UDP Stream send (1500 MTU): 2 Gbps(在单数据流中,MTU 为 1500 的 tx 速率似乎为 2Gbps) Multi UDP Stream send (1500 MTU).10Gbps(在多数据流中,MTU 为 1500 的 tx 速率似乎为 10Gbps):10Gbps(在多数据流中使用 MTU 1500 发送时,速率为 10Gbps) 单 UDP 数据流发送(MTU 为 9000):8.2 Gbps(在单数据流中,使用 MTU 900 的 tx 速率为 8.2 Gbps) 接收单 UDP 数据流(MTU 为 9000):3.9 Gbps(在多数据流中,使用 MTU 1500 的 tx 速率为 10Gbps):3.9Gbps(在单数据流中使用 MTU 为 9000 的接收端,速度为 3.9Gbps) 多 UDP 数据流接收(MTU 为 9000):10Gbps(在多数据流中,使用 MTU 9000 的 Rx 速率为 2Gbps) 我没有看到: 单 UDP 数据流接收(1500 MTU) 多 UDP 数据流接收(1500 MTU) Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 好的,我明白了,但为了确保万无一失,您能否在接收端 MTU = 1500 的情况下进行测试,我想知道您在这个新版本上的测试结果是否与我相同,另外,我看到您在测试中将发送端设置为 1500,接收端设置为 9000,但这并没有改变任何情况,就好像您在两端都设置为 1500,如果您需要测试巨型帧,您需要在两端都设置为 9000,请使用以下配置重新进行测试: 1- RX/TX,MTU = 1500,两端均为单声道和多声道流 2- RX/TX,MTU = 9000,两端均为单声道和多声道流 谢谢您的帮助。 Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 是的,结果就是这样检验出来的。 所有情况下,双方的 MTU 都相同(都是 1500 或都是 9000) Re: Imx95 verdin EVK, Aquantia10gbps interface limited on 1.2gbps on udp 见附件、 请注意,我也是在 A1 SOC 上运行的。 UBOOT 日志:- U-Boot 2025.04-g8c1de2e1deca(May 09 2025 - 15:29:26 +0000) CPU:1800MHz 时的 i.MX95 rev1.1 CPU:30 摄氏度时的汽车温度等级(-40 摄氏度至 125 摄氏度) LM 启动原因:sw,起源:2,错误:1 LM 关机原因:sw,起源:2,错误:1 型号:恩智浦 i.MX95 19X19 板 动态随机存取存储器(DRAM):15.8GiB --- SM 日志 >$ info SM 版本 = 版本 633,Commit c37b26da SM Config = mx95evk,mSel=0 板 = i.MX95 EVK,attr=0x00000000 硅 = i.MX95 A1 启动模式 = 普通 引导设备 = MMC1 启动阶段 = primary 启动集 = 1 ECID = 0x6E5F04BA0000000500041D0899123F81 PMIC 0 (0x08) = 0x20,0x09,0x10,0x00,0x01 PMIC 1 (0x2A) = 0x54,0x22,0x00,0x0B PMIC 2 (0x29) = 0x55,0x22,0x00,0x0A 编译器 = gcc 14.2.1 20241119
查看全文
S32k358 获得燃烧 您好, 请说明在与 AFE 通信时导致 MCD 损坏或烧毁的原因。 Re: S32k358 Getting Burn 你好@arun464、 在与外部模拟前端 (AFE) 通信时,MCU(例如 S32K358)可能损坏或出现故障的潜在原因有以下几种: 电压等级不匹配 如果 AFE 使用的逻辑电平(如 5 V)与 MCU 使用的逻辑电平(通常为 3.3 V)不同,则直接连接而不进行适当的电平转换可能会导致 MCU 引脚电压过高。 电源顺序不正确 如果 AFE 比 MCU 先上电(反之亦然),信号线可能会浮动或驱动意外电压,从而导致闩锁或损坏。 接地问题 较差的接地基准或接地回路会在设备之间产生电压差,从而导致通信线路上的电流涌动。 ESD 或 EMI 事件 缺乏适当的 ESD 保护或屏蔽会导致瞬态电压损坏 MCU I/O。 短路或接线错误 不正确的引脚映射或装配过程中的意外短路会导致永久性损坏。 I/O 线路电流过大 相互驱动输出(总线争用)或不正确的上拉/下拉配置会给引脚带来压力。 为了帮助我们进一步分析,请您分享一下: MCU-AFE 接口示意图(包括电源轨和信号线)。 AFE 部件号和使用的通信协议(SPI、I²C 等)。 故障发生前的任何观察条件(如开机期间、负载情况下)。 这将使我们能够提供更具体的保护和设计改进建议。 顺祝商祺! 帕维尔
查看全文
i.MX8Qを例に、gpioget/gpiosetでGPIO(libgpiod)を使用する方法 GPIO制御におけるgpiogetおよび「cat /sys/class/gpio」の違い。 gpioget : これは、 libgpiod ライブラリが提供するコマンドライン・ユーティリティです。最新のLinux GPIOキャラクタ・デバイス・インターフェース( /dev/gpiochipN )を介して、GPIOラインとやり取りするように設計されています。 /sys/class/gpio : これは、LinuxのGPIO制御のためのsysfsレガシー・インターフェースを指します。このインターフェースは、かつて広く使用されていましたが、Linuxカーネルバージョン6.0以降、 libgpiod キャラクタ・デバイス・インターフェースが採用され、正式に非推奨になりました。 以下は、i.MX8Q-MEK、L6.12.3 BSPでテストされたlibgpiodの例です。 デバイスツリーの設定: この例では、GPIO1-05およびGPIO1-06を使用します。GPIO pinctrlを「gpio_test」のような特定のグループ、または「gpio-keys」のようなドライバの下に置くことができます。 gpio_test: gpio-test { pinctrl-names = "default", "sleep"; pinctrl-0 = <&pinctrl_gpio_test_default>; pinctrl-1 = <&pinctrl_gpio_test_sleep>; status = "okay"; }; gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&pinctrl_gpio_example_default>; pinctrl-1 = <&pinctrl_gpio_example_sleep>; key_wakeup2{ label = "wakeup_key"; gpios = <&lsio_gpio2 1 GPIO_ACTIVE_LOW>; linux,code = ; wakeup-source; }; pinctrl_gpio_test_default: gpiotestgrp_default { fsl,pins = < IMX8QM_LVDS0_I2C0_SDA_LSIO_GPIO1_IO07 0x06000061 IMX8QM_QSPI1A_DATA0_LSIO_GPIO4_IO26 0x06000041 IMX8QM_MIPI_CSI1_I2C0_SCL_LSIO_GPIO2_IO00 0x06000021 IMX8QM_LVDS0_I2C0_SCL_LSIO_GPIO1_IO06 0x06000021 >; }; pinctrl_gpio_test_sleep: gpiotestgrp_sleep { fsl,pins = < IMX8QM_LVDS0_I2C0_SDA_LSIO_GPIO1_IO07 0x07800061 IMX8QM_QSPI1A_DATA0_LSIO_GPIO4_IO26 0x07800041 IMX8QM_MIPI_CSI1_I2C0_SCL_LSIO_GPIO2_IO00 0x07800021 IMX8QM_LVDS0_I2C0_SCL_LSIO_GPIO1_IO06 0x07800021 >; }; pinctrl_gpio_example_default: gpioexamplegrp_default { fsl,pins = < IMX8QM_LVDS0_GPIO01_LSIO_GPIO1_IO05 0x06000021 IMX8QM_MIPI_CSI1_I2C0_SDA_LSIO_GPIO2_IO01 0x06000021 >; }; pinctrl_gpio_example_sleep: gpioexamplegrp_sleep { fsl,pins = < IMX8QM_LVDS0_GPIO01_LSIO_GPIO1_IO05 0x07800021 IMX8QM_MIPI_CSI1_I2C0_SDA_LSIO_GPIO2_IO01 0x07800021 >; }; GPIO機能をテストするためのカーネル・コマンド: gpiodetect および gpioinfo コマンド: root@imx8qmmek:~# gpiodetect gpiochip0 [5d080000.gpio] (32 lines) gpiochip1 [5d090000.gpio] (32 lines) gpiochip2 [5d0a0000.gpio] (32 lines) gpiochip3 [5d0b0000.gpio] (32 lines) gpiochip4 [5d0c0000.gpio] (32 lines) gpiochip5 [5d0d0000.gpio] (32 lines) gpiochip6 [5d0e0000.gpio] (32 lines) gpiochip7 [5d0f0000.gpio] (32 lines) root@imx8qmmek:~# gpioinfo -c 1 gpiochip1 - 32 lines: line 0: unnamed input line 1: unnamed input line 2: unnamed input line 3: unnamed input line 4: unnamed input line 5: unnamed input line 6: unnamed output line 7: unnamed output line 8: unnamed input line 9: unnamed input line 10: unnamed input line 11: unnamed input line 12: unnamed input line 13: unnamed output consumer=regulator-pcie line 14: unnamed input line 15: unnamed input line 16: unnamed input line 17: unnamed input line 18: unnamed input line 19: unnamed input line 20: unnamed input line 21: unnamed input line 22: unnamed input line 23: unnamed input line 24: unnamed input line 25: unnamed input line 26: unnamed input line 27: unnamed input line 28: unnamed input line 29: unnamed input line 30: unnamed input line 31: unnamed input GPIO1-05およびGPIO1-06が設定される前の現在のGPIO設定を表示するには、 cat /sys/kernel/debug/gpio を使用します。 root@imx8qmmek:~# cat /sys/kernel/debug/gpio gpiochip0: GPIOs 512-543, parent: platform/5d080000.gpio, 5d080000.gpio: gpio-526 ( |scl ) out lo gpio-527 ( |sda ) in lo gpiochip1: GPIOs 544-575, parent: platform/5d090000.gpio, 5d090000.gpio: gpio-557 ( |regulator-pcie ) out hi gpiochip2: GPIOs 576-607, parent: platform/5d0a0000.gpio, 5d0a0000.gpio: gpio-577 ( |wakeup_key ) in hi ACTIVE LOW gpiochip3: GPIOs 608-639, parent: platform/5d0b0000.gpio, 5d0b0000.gpio: gpio-618 ( |spi1 CS0 ) out hi ACTIVE LOW gpiochip4: GPIOs 640-671, parent: platform/5d0c0000.gpio, 5d0c0000.gpio: gpio-641 ( |enable ) out hi ACTIVE LOW gpio-643 ( |regulator-usbotg1-vb) out lo gpio-647 ( |usdhc2-vmmc ) out hi gpio-667 ( |enable ) out lo ACTIVE LOW gpio-668 ( |host-wake ) in hi ACTIVE LOW gpio-669 ( |PCIe reset ) out hi ACTIVE LOW gpiochip5: GPIOs 672-703, parent: platform/5d0d0000.gpio, 5d0d0000.gpio: gpio-673 ( |mux ) out hi gpio-693 ( |wp ) in lo gpio-694 ( |cd ) in lo ACTIVE LOW gpiochip6: GPIOs 704-735, parent: platform/5d0e0000.gpio, 5d0e0000.gpio: gpiochip7: GPIOs 736-767, parent: platform/5d0f0000.gpio, 5d0f0000.gpio: gpioset コマンドを使用してGPIO出力を設定します。また、GPIOの方向を変更することもできます(入力→出力)。 #set gpiochip1-5 and 1-6 root@imx8qmmek:~# gpioset -c gpiochip1 6=1 & [1] 700 root@imx8qmmek:~# gpioset -c gpiochip1 5=1 & [2] 702 上記のコマンドの変更点を cat /sys/kernel/debug/gpio および gpioinfo -c 1 で確認してください。 root@imx8qmmek:~# cat /sys/kernel/debug/gpio gpiochip0: GPIOs 512-543, parent: platform/5d080000.gpio, 5d080000.gpio: gpio-526 ( |scl ) out lo gpio-527 ( |sda ) in lo gpiochip1: GPIOs 544-575, parent: platform/5d090000.gpio, 5d090000.gpio: gpio-549 ( |gpioset ) out hi gpio-550 ( |gpioset ) out hi gpio-557 ( |regulator-pcie ) out hi gpiochip2: GPIOs 576-607, parent: platform/5d0a0000.gpio, 5d0a0000.gpio: gpio-577 ( |wakeup_key ) in hi ACTIVE LOW gpiochip3: GPIOs 608-639, parent: platform/5d0b0000.gpio, 5d0b0000.gpio: gpio-618 ( |spi1 CS0 ) out hi ACTIVE LOW gpiochip4: GPIOs 640-671, parent: platform/5d0c0000.gpio, 5d0c0000.gpio: gpio-641 ( |enable ) out hi ACTIVE LOW gpio-643 ( |regulator-usbotg1-vb) out lo gpio-647 ( |usdhc2-vmmc ) out hi gpio-667 ( |enable ) out lo ACTIVE LOW gpio-668 ( |host-wake ) in hi ACTIVE LOW gpio-669 ( |PCIe reset ) out hi ACTIVE LOW gpiochip5: GPIOs 672-703, parent: platform/5d0d0000.gpio, 5d0d0000.gpio: gpio-673 ( |mux ) out hi gpio-693 ( |wp ) in lo gpio-694 ( |cd ) in lo ACTIVE LOW gpiochip6: GPIOs 704-735, parent: platform/5d0e0000.gpio, 5d0e0000.gpio: gpiochip7: GPIOs 736-767, parent: platform/5d0f0000.gpio, 5d0f0000.gpio: root@imx8qmmek:~# gpioinfo -c 1 gpiochip1 - 32 lines: line 0: unnamed input line 1: unnamed input line 2: unnamed input line 3: unnamed input line 4: unnamed input line 5: unnamed output consumer=gpioset line 6: unnamed output consumer=gpioset line 7: unnamed output line 8: unnamed input line 9: unnamed input line 10: unnamed input line 11: unnamed input line 12: unnamed input line 13: unnamed output consumer=regulator-pcie   レガシーGPIO SYSFS(L6カーネル以上ではデフォルトで無効)を有効にする方法 このコミットのコメントを参照してください。 https://github.com/nxp-imx/linux-imx/commit/3b4feb21158f873269ff3fbe2fe8d23a88d64b24 commit 3b4feb21158f873269ff3fbe2fe8d23a88d64b24 Author: Linus Walleij Date: Tue Nov 10 15:27:24 2020 +0100 gpio: sysfs: Enforce character device If users select sysfs support they get the character device as well so that end-users cannot complain that they "only have sysfs on my system". They should have the character device at all times. If someone is in so dire need of stripping out the character device while still enabling the sysfs ABI they can very well patch the kernel. Also only show this obsolete option to expert users. Signed-off-by: Linus Walleij Link: <> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 5d4de5cd6759..4dd566f7ea39 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -59,8 +59,9 @@ config DEBUG_GPIO that are most common when setting up new platforms or boards. config GPIO_SYSFS - bool "/sys/class/gpio/... (sysfs interface)" + bool "/sys/class/gpio/... (sysfs interface)" if EXPERT depends on SYSFS + select GPIO_CDEV # We need to encourage the new ABI help Say Y here to add the legacy sysfs interface for GPIOs. パッチから、GPIO_SYSFSを有効にするための最良の方法は、CONFIG_EXPERT= y、次に、CONFIG_GPIO_SYSFS= Yを有効にします。パッチを元に戻す必要はありません。 SYSFSは、LinuxのGPIO制御のためのレガシー・インターフェースです。このインターフェースは、かつて広く使用されていましたが、Linuxカーネルバージョン6.0以降、libgpiodキャラクタ・デバイス・インターフェースが採用され、正式に非推奨になりました。 i.MX Processors
查看全文
开源漏洞和商业使用文档查询 队员们好 我们的客户审查了 MCAL 代码(RTD 3.0.0P01)为该项目使用名为 Black Duck 的开源验证工具。结果,他们发现了 MCAL 中的一些似乎使用开源元器件的文件,如所附文件所示。 有人能对此发表评论吗?有报告吗? 据我所知,RTD 采用的是恩智浦专有许可证,没有开放源码软件许可证。 顺祝商祺! 丹尼尔 RTD Re: Open-Source Vulnerabilities and Commercial Usage Documentation Inquiry @danielmartynek 开发团队回复: 我检查了恩智浦社区网站上添加的文件,其中还有一些条目需要确认。也就是说,客户确实使用BlackDuck工具扫描了版本代码包,并生成了调查结果报告。 BlackDuck 工具能找到与我们现有代码和可能公开的代码相匹配的代码片段。这并不意味着任何匹配都是真实的,也不意味着代码是以某种方式窃取的。因此,该工具需要实际人员来分析结果,并根据需要确认或忽略结果。 在 RTD 中,我们很少使用开放源代码,除非有绝对必要,而且在使用时,我们一定会明确说明,并确保其符合恩智浦的许可证。   当 S32K3 RTD 3.0.0P01 版本于 2023 年 3 月 31 日,我们仍在使用 BlackDuck Protex,这是同一家供应商的旧工具,但搜索能力不如新工具。当时我们提交了一份 SCR 报告,其中列出了所有包含的元器件(附在本电子邮件中)。 附上 SCR 文件(SBOM 格式的前身,已在安装程序旁边提供)。它提到了所使用的元器件和许可证。如果调查仍在继续,我们将需要获取该版本并再次对其进行扫描,但要使用新的BlackDuck工具并为其提供新的报告(本质上是重做发布时已经完成的工作——扫描代码,提取每行代码,看看是否有任何问题)。
查看全文
RW612ローミング設定 親愛なるコミュニティの皆さん、ローミング設定についていくつか質問があります。私はwifi-wpa-supplicantの例を実行しており、ネットワークに接続しているときにローミング(wlan_set_roaming(1、70))を有効にしています。rssiが70を下回り、バックグラウンドスキャンの代わりに通常のスキャンを開始すると、低rssiイベントがトリガーされることに気付きました。ただし、wpa_supplicantを無効にすると、通常のスキャンではなくバックグラウンドスキャンが実行されます。なぜ違いがあるのですか? WPA_supplicantバックグラウンドスキャン(CONFIG_BGSCAN)をサポートしていますが、それ(bgscan.c)は、サンプルプログラムから削除されたように見えます。これには何か理由がありますか? 私の現在の設定では、RSSIが特定のしきい値を下回ったときにのみローミングが開始されます。より強力なアクセスポイントを検出したときにローミングを開始するようにスケジュールスキャンを設定するにはどうすればよいですか? 多くの感謝と敬意 日時:RW612ローミング設定 SDK のバージョンは 24_12_00 です
查看全文
如何构建示例项目的版本 — S32K1 AUTOSAR 您好,NXP团队, 我目前正在使用 S32K1 AUTOSAR RTD 2.0.0 示例项目。 我创建了一个 GPIO_DIO_LP_example_s32K118 项目并成功构建了 Debug_Flash 版本 。 不过,该示例项目默认情况下似乎只支持在调试模式下构建。 你能告诉我如何配置项目来构建发布版本吗? 感谢您的支持! Re: How to Build Release Version of Example Project – S32K1 AUTOSAR 你好,彼得斯 谢谢您的建议。 Re: How to Build Release Version of Example Project – S32K1 AUTOSAR 您好, 你可以进入项目的属性并添加新的版本配置 输入新名称并从现有调试配置中复制 最后删除调试标记 然后应用并版本 BR, Petr
查看全文
S32K358 HSE 固件不稳定 您好, 我们在安全启动配置方面遇到了问题。 1.将 BOOT_SEQ 设置为 1 后,0x400000 处的值为 1,FSR 正常报告 0x0B600000 2。安装 SMR 并 RESET 后,我附上了调试器和 BOOT_SEQ 返回 0 和 FSR 报告 0x00000000 这是异常 我执行脚本是为了进行 HSE 握手并 RESET 目标板 2/3 次,FSR 值为 0x0f600000 这很正常。 这意味着 HSE 仍然存在,并在工作,但不稳定 有什么原因吗? Re: S32K358 HSE firmware unstable 我发现在配置SMR之后,必须使用功能RESET而不是破坏性RESET。更改为功能 RESET 后,HSE 固件运行良好。 我们可以结束这个话题了。 https://community.nxp.com/t5/S32K/s32k3-hse-basic-secure-boot-protect-problem/m-p/1943667 Re: S32K358 HSE firmware unstable 感谢您对我的支持。 Re: S32K358 HSE firmware unstable 您能否与分配给您的恩智浦 FAE 讨论这个问题?或在此创建新票据: https://support.nxp.com/s/?language=en_US ......并将其转发给他们。谢谢。 Re: S32K358 HSE firmware unstable 您好, 我们的应用程序不会将 BOOT_SEQ 改为 0。 我们确实在多个板上进行了测试,但只有 1/2 个板出现了这个问题。 下面是 GPR 寄存器的值 GSR 值为 0 Re: S32K358 HSE firmware unstable 你好@HaiHoangSoftware 如果即使在 RESET 后大约 1 秒后,FSR 寄存器仍保持 0x00000000,则表示 HSE 固件根本没有启动。在 GSR 注册表中可以看到什么?是否设置了第 0 位?在 HSE GPR 寄存器 0x4039_C028 中可以看到什么? HSE FW 或 SBAF 不应该这样做。你的申请不是改变了这一点吗? 问候, Lukas
查看全文
IMX8QM 未使用的电源和信号绑带 您好, 我们正在为 IMX8QM 处理器设计定制板。本项目中有一些未使用的硬件模块,如 HDMI、LVDS、MIPI-CSI、MIPI-DSI、PCIe 等。我们要确保未使用的电源和信号绑扎。 例如,根据 IMX8HWDG 表 47,如果不使用HDMI-RX,下面给出的电源引脚必须接地。 VDD_HDMI_RX0_1P8 ---> GND VDD_HDMI_RX0_LDO0_1P0_CAP ---> GND VDD_HDMI_RX0_LDO1_1P0_CAP ---> GND vdd_hdmi_rx0_vh_rx_3p3 ---> gnd 查看表 48,如果不使用 HDMI-RX,信号引脚的连接方式如下: HDMI_RX0_ARC_P/N ---> 保持未连接状态 HDMI_RX0_CEC ---> 保持未连接状态 HDMI_RX0_HPD ---> 保持未连接状态 HDMI_RX0_MON_5V ---> 不连接 HDMI_RX0_CLK_P/N ---> GND HDMI_RX0_DATAx_P/N ---> GND HDMI_RX0_REXT ---> GND HDMI-RX 块没有问题。 不过,LVDS和 MIPI-CSI 或 MIPI-DSI 块有些令人困惑。根据表 47,LVDS电源引脚必须用 10kΩ 电阻器连接至 GND。 VDD_LVDS0_1P0 ---> 10 kΩ 至地面 VDD_LVDS0_1P8 ---> 10 kΩ 至地面 VDD_LVDS1_1P0 ---> 10 kΩ 至地面 VDD_LVDS1_1P8 ---> 10 kΩ 至地面 在硬件设计指南第 78 页中有一项关于对地 10 kΩ 建议的说明: 所有球可作为一组通过一个 10 kΩ 电阻器连接并拉低至地,或作为多组(根据球图位置)通过多个 10 kΩ 电阻器连接并拉低至地。如果相关电源没有供电,信号球可以不连接。 问题 1:根据上述解释,我们将 VDD_LVDS0_1P0(球 AV36)和 VDD_LVDS1_1P0(球 AW35)短路,并只用一个 10k 电阻与地相连。数据表显示,这些电源引脚属于第 1 组(同一组)。这样做安全吗?我在下面附上了一张图片。 表 48 中另有 LVDS 块未使用信号引脚的说明: 所有球可作为一组通过一个 10 kΩ 电阻器连接并拉低至地,或作为多组(根据球图位置)通过多个 10 kΩ 电阻器连接并拉低至地。此解决方案仅在与每个 I/O 组关联的所有功率域均已断开或接地时才适用。如果某些功能域仍处于供电状态,则落入这些功能域的未使用的 I/O 必须保持浮空或单独接地,每个信号都通过自己的 10kΩ 电阻器。 未使用的电源引脚中指出,对于 LVDS,未使用的无电源硬件模块信号引脚可以不连接。但上面的说明没有提到在不提供电源的情况下不连接信号引脚的任何信息。 问题 2:如果我们将 LVDS 电源引脚 10K 与地相连,不连接 LVDS 信号引脚是否安全?我在下面附上了一张图片。 问题 3:我只举了一个 LVDS 的例子。我可以将这些线路应用于 MIPI-CSI 和 MIPI-DSI 块吗? 需要您帮助完成该项目的硬件设计。 先行致谢。 易卜拉欣 i.MX8 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Re: IMX8QM Unused Power and Signal Strapping 感谢您的答复。我们将像下面这样布线: 要为每条线路布线并为每组线路放置一个电阻器是很困难的。无论如何,哪种方法更安全,我们都必须这样做。 再次感谢。 易卜拉欣 Re: IMX8QM Unused Power and Signal Strapping 你好 1.是的,它是安全的。 2.不需要,每个组或信号都需要用一个 10k 电阻器连接到地。 3.是的,LVDS 和 MIPI 信号的指导原则类似。 顺祝商祺!
查看全文
AUT-N1798 統合型 MagniV ソリューションによるアプリケーションの小型化 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> シングルダイ・ソリューションを備えた統合型ミックスド・シグナル・マイクロコントローラにより、システム設計を簡素化し、市場投入までの時間を短縮します。この講義では、NXP MagniVポートフォリオの概要を説明し、アプリケーションを縮小するためのソリューションを提供します。 ビデオプレゼンテーションを見る <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> シングルダイ・ソリューションを備えた統合型ミックスド・シグナル・マイクロコントローラにより、システム設計を簡素化し、市場投入までの時間を短縮します。この講義では、NXP MagniVポートフォリオの概要を説明し、アプリケーションを縮小するためのソリューションを提供します。 ビデオプレゼンテーションを見る
查看全文
[技術ノート] i.MX RT1170 JEDEC互換性 この記事ではi.MXRT1170を例に挙げていますが、ルールはi.MX RTシリーズにも適用されます。 1. 背景と質問 データシート(例:RT1170A、RT1170B)には 'NON JEDEC' パッケージが以下のように示されていますが、製品品質ページ(例:MIMXRT1172AVM8A)では WSL 3 (Moisture Sensitivity Level 3)としてマークされており、これはJEDEC-STD-020で定義された湿度感度レベルの1つです。 矛盾はあるのでしょうか? 製品はJEDEC-STD-020に準拠していますか? 2. JEDEC-STD-020とは何ですか? JEDEC-STD-020は、リフローはんだ付け工程中の表面実装デバイス(SMD)における湿度感度レベル(MSL)および事前条件要求事項を定義した規格です。 この規格に準拠しているということは、リフローはんだ付け前のデバイスの保管および取り扱いが業界仕様に適合しており、自動化製造環境での使用に適していることを意味します。 3. WSL 3およびJEDEC-STD-020準拠 NXPの製品品質ページでは、一部のi.MX RT1170バリアントがWSL 3(Moisture Sensitivity Level 3)としてマークされており、これはJEDEC-STD-020で定義された湿度感度レベルの1つです。これは次のことを意味します。 デバイスはリフローはんだ付け前に168時間まで周囲環境にさらすことができます。 また、乾燥梱包で保管する必要があります。 JEDEC-STD-020の取り扱いおよび処理要件に準拠しています。 これは、i.MX RT1170シリーズがJEDEC-STD-020に従ってテストおよび認定されていることを示しています。NXP製品ページからの主なパラメータ: MSL(吸湿感度レベル):3 ピークパッケージ本体温度:260°C ピーク時の時間:40秒 4. データシートにおける「NON JEDEC」パッケージ i.MX RT1170データシートでは、一部のパッケージタイプが「NON JEDEC」とラベル付けされており、通常は以下を意味します。 パッケージの寸法やレイアウトがJEDEC標準のアウトラインに厳密には従っていない デバイスが正式なJEDEC-STD-020認証プロセスを経ていない 例えば、IMXRT1170BCEC Rev.1データシートでは以下のように記載されています。 パッケージ情報:プラスチックパッケージ 289ピン MAPBGA、14 x 14 mm、0.8 mmピッチ パッケージタイプ:NON JEDEC [1] これはパッケージがJEDEC標準の機械的アウトラインではないことを示しています。ただし、必ずしもデバイスがJEDEC-STD-020で定義された湿度感度要件を満たしていないことを意味するわけではありません。 5. まとめ 「NON JEDEC」は機械的形状のみを指し、信頼性規格には関係ありません。 データシート上の「NON JEDEC」の表示は物理的なパッケージアウトラインを指しており、製品品質ページのMSL 3評価は、JEDECの試験方法に基づいて決定された信頼性および取り扱い仕様を示しています。 JEDEC-STD-020は非密閉型表面実装デバイスにおける湿度感度レベルの試験規格です。i.MX RTは、MSL評価がJEDEC-STD-020の試験プロセスに基づいていることを明確に示しています。 パッケージがJEDEC標準(例えばMO-220)に準拠しているかどうかは、JEDEC-STD-020で試験可能かどうかに直接関係しません。 ‘NON JEDEC’是指物理封装中的机械形式,不是可靠性标准。 JEDEC-STD-020 是针对非气密性表面贴装器件的湿敏等级测试标准; NXP 明确表示i.MX RT产品 MSL 等级是依据 JEDEC-STD-020 测试流程; 封装是否为 JEDEC 标准(如 MO-220)与是否能进行 JEDEC-STD-020 测试无直接关系。 6. 参考資料 NXP i.MX RT1170製品ページ: https://www.nxp.com/part/MIMXRT1172AVM8A  i.MX RT1170 データシート: https://www.nxp.com/docs/en/data-sheet/IMXRT1170CEC.pdf JEDEC-STD-020規格: https://www.jedec.org/document_search/field_doc_type/151?search_api_views_fulltext=%E2%80%8BJ-STD-020&order=title&sort=asc     
查看全文
安装 Zephyr SDK 版本 Zephyr SDK 是一套用于构建 Zephyr 应用程序的构建工具。它包含 GCC 和 CMake,并且每个 Zephyr 版本都与特定的 Zephyr SDK 版本相关联。此版本已在 Zephyr 存储库的 SDK_VERSION 文件中注明。使用推荐的 Zephyr SDK 版本非常重要——版本不匹配可能导致构建错误。 例如,Zephyr v4.1指定Zephyr SDK v0.17.0。如果在 Zephyr v4.1 中使用 Zephyr SDK v0.17.2(用于 Zephyr v4.2),会遇到版本错误。如果您需要为 Zephyr v4.1 版本应用程序,请安装Zephyr SDK v0.17.0。 您可以安装多个 Zephyr SDK 版本,并在构建时进行切换(请参阅下方说明)。 完整安装与最小安装。 完全安装:包括每个支持的 SoC 架构的所有工具链。建议初学者使用,但需要更多磁盘空间和下载时间。 最小安装:允许您仅选择所需的工具链。节省空间和时间。 对于最小化安装,运行 setup.cmd 脚本选择要安装的工具。在恩智浦板上,选择: 注册 Zephyr SDK CMake 软件包 安装主机工具 aarch64-zephyr-elf (64 位 ARM) arm-zephyr-eabi (32 位 ARM,包括 NXP 微控制器) 可选 xtensa-nxp… (Cadence Tensilica DSP 内核) 安装 Zephyr SDK 这些步骤包括使用 MCUXpresso 安装程序安装 Zephyr SDK、从 CLI 安装 West 或手动下载。 使用 MCUXpresso 安装程序进行安装 MCUXpresso 安装程序从 Zephyr v4.2 开始支持 Zephyr 软件包。每个软件包都会安装相应的 Zephyr SDK 版本(例如,v4.2 软件包会安装 SDK v0.17.2)。此选项安装了面向恩智浦开发的最小工具集。 MCUXpresso 安装程序不支持更早版本的 Zephyr SDK。对于 v0.17.1 或更早版本,请使用 West 或手动安装。 使用 West CLI 进行安装 Zephyr 项目已将 Zephyr SDK 安装添加到 West。 对于命令行界面 (CLI),请激活Python 虚拟环境,然后运行: west sdk install --version 0.17.0   如果省略 --version ,West 将使用 Zephyr 仓库的 SDK_VERSION 文件中的版本。 默认情况下,安装完整软件包。如需最小化,请添加 -i 。 通过手动下载安装 从 https://github.com/zephyrproject-rtos/sdk-ng/releases 下载 Zephyr SDK。 请根据您的主机操作系统选择完整版或精简版。 解压到您的用户文件夹(West 和 MCUXpresso 的默认位置): Windows: C:\Users\ \zephyr-sdk-0.17.0 Ubuntu: /home/ /zephyr-sdk-0.17.0 选择 Zephyr SDK 版本 多个 Zephyr SDK 版本可以共存。West 默认使用最新版本,但你可以将其覆盖: VS Code:导入示例时,在向导中选择 Zephyr SDK 版本。 CLI:在构建前设置环境变量 ZEPHYR_SDK_INSTALL_DIR 。此命令在 Ubuntu 中设置该变量: 导出 ZEPHYR_SDK_INSTALL_DIR="/home/ /zephyr-sdk-0.17.0" 或者在 Windows 中: set ZEPHYR_SDK_INSTALL_DIR= C:\Users\ \ zephyr-sdk-0.17.0   返回 Zephyr 知识中心    
查看全文
GD31xx Altium and Cadence models The attached GD3100 and GD3160 models may be used by customers in developing their schematic and PCB layout.
查看全文
MIIT (China) sharpened Homologation on FRDM-KW38 & KW36 The homologation requirements in China (MIIT [2002]353) obviously are planned (end of December 2022) to be sharpened (MIIT publication from 2021-01-27: “Notice on Matters Related to Radio Management in the 2400MHz, 5100MHz and 5800MHz Bands”). A modification register is need on the KW38 and KW36 to pass the new Chinese  requirement with acceptable margin: PA_RAMP_SEL value must be set to 0x02h (2us) instead of 0x01h (1us default value) Modification SW: XCVR_TX_DIG_PA_CTRL_PA_RAMP_SEL(2) in the nxp_xcvr_common_config.c All the details are in the attached file. Note: This SW modification is for China country only. BLE Software KW KW35 | 36
查看全文
i.MX RT1170 DVFS Demo Dynamic voltage and frequency scaling (DVFS) is a power management technique that allows dynamically reducing power consumption of a CPU by dynamically scaling down supply voltage and CPU frequency. Because the internal DCDC of the i.MX RT1170 cannot cover the needed maximum current requirement at the junction temperature of 125 °C, the DVFS technique can be used to reduce current drain for compatibility with the internal DCDC. Lowering the processor frequency dynamically can help reduce the chip input current demand and ensure that the chip can continue to work at the junction temperature of 125 °C. The demo is attached. Only IAR and armgcc versions are enabled. The corresponding Application Note can be downloaded in the below link. https://www.nxp.com/docs/en/application-note/AN13267.pdf
查看全文
EIQ Software Application based on OpenCV Neural Network Framework on Layerscape Platforms NXP created eIQ machine learning software for QorIQ Layerscape applications processors, a set of ML tools which allows developing and deploying ML applications on the QorIQ Layerscape family of devices. OpenCV is an open-source computer vision library. It offers a unitary solution for both the neural network inference (DNN module) and the standard machine learning algorithms (ML module). It includes many computer vision functions, making it easier to build complex machine learning applications in a short amount of time and without being dependent on other libraries. This document describe applications YOLO object detection, Image segmentation, Image colorization, Image classification, Human pose estimation and Text detection developed based on OpenCV DNN framework.
查看全文
i.MX RT1170 DVFS デモ ダイナミック電圧および周波数スケーリング(DVFS)は、電源電圧とCPU周波数を動的にスケールダウンすることで、CPUの消費電力を動的に削減できる電力管理手法です。i.MX RT1170の内部DCDCは、125°Cの接合部温度で必要な最大電流要件をカバーできないため、DVFS技術を使用して電流ドレインを低減し、内部DCDCとの互換性を確保できます。プロセッサの周波数を動的に下げると、チップの入力電流需要を減らし、チップが125°Cの接合部温度で動作し続けることができます。 デモが添付されています。IAR と armgcc のバージョンのみが有効になります。 対応するアプリケーションノートは、以下のリンクからダウンロードできます。 https://www.nxp.com/docs/en/application-note/AN13267.pdf
查看全文
NFC ON KW In the process of practical application, customers often need the combination of ble + NFC. At present, our IOT-DK006 is the only development board with NFC module. But the NFC example is not perfect. So we porting the library of NFC reader- PN7150, to support KW series microcomputer so that KW series can handle the demand of ble + NFC function. Now I will introduce you how to port the NFC lib to KW. 1 PN7150 Introduction PN7150 is the high-performance version of PN7120, the plug’n play NFC solution for easy integration into any OS environment, reducing Bill of Material (BOM) size and cost. PN71xx controllers are ideal for home-automation applications such as gateways and work seamlessly with NFC connected tags. 2 Tools hardware:FRDM-KW36,PN7150 , some wire software:mcuxpresso11.3 package:NXP-NCI MCUXpresso example Project This package contains the nfc library and example that we need. We will refer the ‘NXPNCI-K64F_example’ firstly. Sdk version: 2.2.8, Example: frdmkw36_rtos_examples_freertos_i2c  3 Steps Hardware part:We need connect the PN7150 to KW36 like the picture. Although we can connect the PN7150 to board through the ardunio connector, the pin’s voltage is not enough to drive the PN7150. So we need a wire connected to U1 to get 3.3V.   PN7150 FRDM-KW36 VBAT/PVDD 3.3V VANT 5V GND GND IRQ PTA16 VEN PTC15 SCL PTB0,I2C0 SDA PTB1,I2C0 Software part:We should add the nfc library and directory into our project. You can check the following picture to know what file is necessary. If you want to know how to add directory into our project, you can refer this link. The red line shows what file we need. Please notice that when we add file path into the mcuxpresso configuration, we also need add the path into ‘Path and Symbols’ . We need add some macro into ‘Preprocessor’. We copy the NXPNCI-K64F_example’s main file content into our ‘freertos_i2c.c’. Next, we need modify the file pin_mux.c, tml.c and board.h   In file board.h,add the following macro. Don't forget to enable the pin clock. /* NXPNCI NFC related declaration */ #define BOARD_NXPNCI_I2C_INSTANCE I2C0 #define BOARD_NXPNCI_I2C_BAUDRATE (100000) #define BOARD_NXPNCI_I2C_ADDR       (0x28) #define BOARD_NXPNCI_IRQ_PORTIRQn PORTA_IRQn #define BOARD_NXPNCI_IRQ_GPIO     (GPIOA) #define BOARD_NXPNCI_IRQ_PORT     (PORTA) #define BOARD_NXPNCI_IRQ_PIN      (16U) #define BOARD_NXPNCI_VEN_GPIO     (GPIOC) #define BOARD_NXPNCI_VEN_PORT     (PORTC) #define NXPNCI_VEN_PIN            (5U)     In file pin_mux.c, add head file ‘board.h’. Add the following code in function ’ BOARD_InitPins’. The step is to configure the VEN, IRQ and I2C0. This example contains the I2C1’s code, you can comment them.     /* Initialize NXPNCI GPIO pins below */   /* IRQ and VEN PIN_MUX Configuration */   PORT_SetPinMux(BOARD_NXPNCI_IRQ_PORT, BOARD_NXPNCI_IRQ_PIN, kPORT_MuxAsGpio);   PORT_SetPinMux(BOARD_NXPNCI_VEN_PORT, NXPNCI_VEN_PIN, kPORT_MuxAsGpio);   /* IRQ interrupt Configuration */   NVIC_SetPriority(BOARD_NXPNCI_IRQ_PORTIRQn, 6);   EnableIRQ(BOARD_NXPNCI_IRQ_PORTIRQn);   PORT_SetPinInterruptConfig(BOARD_NXPNCI_IRQ_PORT, BOARD_NXPNCI_IRQ_PIN, kPORT_InterruptRisingEdge); Finally, in file tml.c, modify PORTC_IRQHandler as PORTA_IRQHandler We finished all steps. 4 Results We use ntag to test the reading and writing operation. When the tag is closed to the PN7150, we will get the following message. The text recording is ‘VER=03’. Next, we will modify the text recording We need add the new macro to preprocessor. We can modify the variable NDEF_MESSAGE in function task_nfc_reader to modify the text recording. Then we download the program again. We will see the original text ‘VER=03’ and the text has been modified. Then we read the tag again. We will see the new text. If we want to send the larger text, what should we do? We need modify the macro ‘ADD’. When only 4 characters are sent, ‘ADD’ is 0. And every additional character is added, the ‘ADD’ will add. We modify the tag as ‘Ver=03’, and we have two more characters. So ‘ADD’ needs to be defined as 2 It firstly shows the text ‘Test’. Then it will show the new text ‘Ver=03’. Other tags’ reading and writing operation can be enabled by defining some macro.       BLE Software KW
查看全文
尝鲜IAR 6.7集成Processor Expert工程代码功能(The Step to integrate Processor Expert code to IAR6.7) 最近有客户问到如何移植PE生成的TSI代码到IAR中,按照常规的方法在把头文件和库文件意义一一包含进来,非常繁琐,于是研究了一下相关的操作。在早期的IAR版本中,需要用户自己手动添加芯片名称,链接文件和包含的路径信息,特别是在PE增加或者删除组件后,需要用户去增减相应的文件,更增加了难度。而在最新版本的 IAR 6.7中集成了对PE工程的链接机制,它可以方便的读取PE工程的XML文件,从而实现移植PE生成的代码到 IAR Embedded Workbench中,相对于早期的IAR版本,主要完成以下几个工作: 自动检测使用的芯片类型; 自动添加PE的LCF连接配置文件; 自动更新包含的头文件路径; PE增加或者删除Component组件后,IAR工程会自动Add 或Delete 相应的组件代码; 尽管IAR完成了一些繁琐的工作,但网上没有太多的资源可以参考,对于首次使用的用户来说还是需要一些探索,为节省大家的时间,下面以一个具体的示例Step By Step的介绍如何在IAR中集成PE的工程。 1. 打开Processor Expert software 新建一个PE的工程并保存生成代码,这个过程比较简单,此处不再赘述,重点讲述一下在IAR中的使用步骤; 2. 在IAR Workbench中"Creat New Project"新建一个空的工程。 3. 保存新建的工程文件到PE工程的文件夹中,需要注意的是此处也可以选择其他路径,但为简便和易维护性上还是建议直接存放到PE工程中。 4. 打开Tools->Options->Project选项,勾选“Enable project connects”,这个选项的目的在于使能 IAR 能够读取Freescale Processor Expert和Infineon DAVE等第三方工具生成.XML文件。 5. 添加PE工程的XML文件,选择Project->Add Project Connection,会弹出链接选择对话框,选择使用Freescale Processor Expert,默认是IAR Project Connection; 6. 点击OK后,选择建立PE工程时生成的工程描述符文件Projectinfo.xml; 7. 完成上面步骤后,在IAR中自动完成以下三方面工作:自动加载PE生成的文件到IAR中,自动安装LCF链接配置文件,自动包含头文件路径。这几个步骤在之前版本的IAR中需要自己手动添加,并且当在PE中重新生成Code时需要重新添加对应的文件; 8. 完成上面步骤之后,需要根据实际情况配置采用的下载/调试器,Project->Options->Debugger->Setup 选择下载Driver,实验中使用的是KL25的FRDM板,所以在PE Macro中选择OpenSDA,点击OK,完成设置; 9. 编译工程,下载Debug; 总结下来,主要完成两个工作:(1)配置使能 Project connection,并导入PE生成的XML文件; (2)配置调试的下载器仿真器; Re: 尝鲜IAR 6.7集成Processor Expert工程代码功能(The Step to Integration Processor Expert code to IAR6.7) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 问题可以在下面回复: 当您在“Libraries(-l)”中添加一个库时,gcc 链接器知道这是一个 gcc 库,因此无需添加“lib”前缀和“.a”后缀。 但是当您在“杂项”中添加库时,如果文件没有“lib”前缀和“.a”后缀,gcc 链接器就不会认为它是 gcc 库。 Re: 尝鲜IAR 6.7集成Processor Expert工程代码功能(The Step to integrate Processor Expert code to IAR6.7) 我看了一下.xml配置文件,上面显示的库的路径是在工程文件夹下面的,实际上在Open Containing Folder命令中打开的路径也是工程所在的路径,但是并不是库的路径,是他的上级路径,应该是他没有识别到。 你说的那个选项我勾选了(atuo runtime library selection),仍然不行,但是我在选项下面的Additional libraries 中添加了库的路径之后就可以了。 第二个方法就是上面我说的方法,取消链接之后自己添加一遍库,我注意到自动添加的库是带引号的,自己添加的不带引号,不知道这意味着什么。。 下面是XML的路径片段,路径中没有中文     D:\PE_K60\TEST1.0\Project_Settings\Linker_Files\ProcessorExpert.icf           D:\PE_K60\TEST1.0\Sources\TSS\       C:\Freescale\PExDrv v10.3\eclipse\ProcessorExpert\lib\Kinetis\iofiles\       C:\Freescale\PExDrv v10.3\eclipse\ProcessorExpert\lib\Kinetis\pdd\inc\       D:\PE_K60\TEST1.0\Sources\       D:\PE_K60\TEST1.0\Generated_Code\               D:\PE_K60\TEST1.0\Generated_Code\       D:\PE_K60\TEST1.0\Sources\       D:\PE_K60\TEST1.0\Sources\TSS\               D:\PE_K60\TEST1.0\Sources\TSS\       Re: 尝鲜IAR 6.7集成Processor Expert工程代码功能(The Step to integrate Processor Expert code to IAR6.7) 你要查看一下PathName 的路径了,因为默认的路径应该是在TSS的安装目录中,另外在IAR中Linker配置项的library选项配置也需要check一下,需要使能atuo runtime library selection。 Re: 尝鲜IAR 6.7集成Processor Expert工程代码功能(The Step to integrate Processor Expert code to IAR6.7) 您好! 我按照你的文章使用PE建立了一个关于TSS库的工程,使用IAR编译文件时出现了错误: Error[Li005]: no definition for "TSS_Init" [referenced from D:\PE_K60\test1\Debug\Obj\TSS1.o] Error[Li005]: no definition for "TSS_SetKeypadConfig" [referenced from D:\PE_K60\test1\Debug\Obj\TSS1.o] Error[Li005]: no definition for "TSS_SetSystemConfig" [referenced from D:\PE_K60\test1\Debug\Obj\TSS1.o] Error[Li005]: no definition for "TSS_GetSystemConfig" [referenced from D:\PE_K60\test1\Debug\Obj\TSS_SensorTSI.o] Error while running Linker 我找到错误的原因是:在 文件中       "TSS_KXX_M4.a"     上述路径在IAR中识别为无效路径,导致库中的函数无法引用, 我在IAR加载文件之后,在你说的地4步《打开Tools->Options->Project选项,勾选“Enable project connects” 》中取消了工程链接,删除了IAR工程中包含的TSS_KXX_M4.a文件,然后重新加载了这个文件,这时候编译通过了。 请问这个应该怎么做呢。 我使用的是IAR6.7.1,PE10.3 Re: 尝鲜IAR 6.7集成Processor Expert工程代码功能(The Step to Integration Processor Expert code to IAR6.7) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 好文档,对我很有用!谢谢!
查看全文
将 USB 摄像头与 GStreamer 结合使用 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 如果您想在 i.MX6 设备(Linux 内核版本 >= 3.035)上将 USB 摄像头(这些类型的摄像头也称为“网络摄像头”)与 GStreamer 一起使用,您需要动态加载模块或静态编译和链接,并在内核配置中选择(Y)以下配置 设备驱动程序 -> 多媒体支持 -> 视频捕获适配器 -> V4L USB 设备 -> <*> USB 视频类 (UVC) 内核映像构建完成后,将其刷入目标,插入网络摄像头,然后在(目标)终端上运行 gst-启动 v4l2src!mfw_v4lsink 您应该在显示屏上看到相机捕捉到的内容。如果需要对相机源数据进行编码,则需要将编码器放入管道中 gst-launch v4l2src num-buffers=100 !队列!vpuenc编解码器=0!matroskamux!文件接收器位置=输出.mkv 同步=false 我们正在使用某种编解码器(codec=0 表示 mpeg4),使用“gst-inspect vpuenc”检查选项。 i.MX6_全部 多媒体 回复:使用带有 GStreamer 的 USB 摄像头 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 请修复链接!我看不到 最良好的问候! 回复:使用带有 GStreamer 的 USB 摄像头 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 感谢分享,但当编码“无法协商格式”时,这不适用于我的 2 个符合 UVC 1.1 标准的相机。 vpuenc 需要 TNVP、NV12 或 I420 中的原始 uyv,我可以强制原始输出,但我的相机不支持这些(对文件进行测试给出了 YUY2)。可以使用软件中的颜色转换来完成这项工作(至少在 vga 30 fps 中): gst启动v4l2src num缓冲区=100!视频/x-raw-yuv!队列 !ffmpeg色彩空间!队列 !vpuenc编解码器=6!avimux!文件接收器位置=outputh264.avi 同步=false 在 iMX53 上,有 mfw_ipucsc,但我在 12.09 BSP 上发现的只有 ipucsc.imx,它不起作用,可能只有 DP 路径中的 CSC,这应该在图像转换器中是可能的,但我没有找到任何插件。有人有更好的管道吗?
查看全文
S32K14x SRAM ECC注入示例 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** 详细描述: 此示例显示了 SRAM ECC 注入。 默认情况下,在对 SRAM_U 区域中的位置进行读取访问时会注入双位 ECC 错误。 这可以通过 SRAM_U 和 DOUBLE_BIT 宏来改变。 ERM 和 MCM 模块都可以检测到错误,并可以调用相应的中断。 虽然只需要 ERM,但为了演示目的,MCM 中断也启用了 其优先级低于 ERM 中断。 首次调用的 ERM 中断会禁用注入机制 这样在堆栈读取访问期间就无法检测到后续错误。 默认的 S32 Design Studio start_up 文件将向量表复制到 SRAM_L 区域。 为了能够在此 SRAM 区域注入 ECC 错误并调用中断, 复制被 __flash_vector_table__ 符号禁用 在start_up.h中声明文件并在S32K144_64_flash链接器文件中定义。 -------------------------------------------------------------------------------------------- 测试硬件:S32K144EVB-Q100 单片机:S32K144 0N57U 调试器:S32DSR1 目标:internal_FLASH ********************************************************************************
查看全文