Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Hi, These are my yocto build parameters: Release: imx-linux-walnascar BSP Version: imx-6.12.49-2.2.0 MACHINE: imx8mpevk DISTRO: fsl-imx-xwayland I have been using this build environment successfully for the past couple of months. However, I suddenly started encountering the attached error. To troubleshoot, I completely cleaned the build environment, reinitialized the repository (repo init), synced everything again, and performed a fresh build. Unfortunately, I am still facing the same issue. Please find the attached log file for your reference. I would appreciate your help in identifying the root cause and suggesting a solution. i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) bitbake imx-image-core Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) What "bitbake command" are you using? I will do verification. Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Thank you for your response. I verified my build environment, and it already matches the configuration you recommended. Host OS: Ubuntu 22.04.5 LTS (Jammy) GNU tar version: GNU tar 1.34 $ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.5 LTS" ... $ tar --version tar (GNU tar) 1.34 However, I still encounter the same failure Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Please check the tar version, if the host is Ubuntu 24.04 and tar is 1.35 Build inside a container or VM with: Ubuntu 22.04 LTS GNU tar 1.34 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Please find file below,  Here i am pasting the some lines of error  DEBUG: Executing python function extend_recipe_sysroot NOTE: Direct dependencies are ['/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/binutils/binutils-cross_2.44.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/gcc/gcc-cross_14.3.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/quilt/quilt-native_0.68.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-core/coreutils/coreutils_9.6.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/bison/bison_3.8.2.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/flex/flex_2.6.4.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/patch/patch_2.7.6.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/rpm/rpm_4.20.0.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-extended/bc/bc_1.08.1.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-kernel/kmod/kmod_34.1.bb:do_populate_sysroot'] NOTE: Installed into sysroot: [] NOTE: Skipping as already exists in sysroot: ['gettext-minimal-native', 'binutils-cross-aarch64', 'cmake-native', 'gcc-cross-aarch64', 'libtool-native', 'm4-native', 'quilt-native', 'texinfo-dummy-native', 'kern-tools-native', 'linux-libc-headers', 'file-native', 'openssl-native', 'coreutils-native', 'expat-native', 'ncurses-native', 'readline-native', 'util-linux-libuuid-native', 'zlib-native', 'bison-native', 'dwarfsrcfiles-native', 'elfutils-native', 'flex-native', 'git-native', 'gnu-config-native', 'json-c-native', 'libedit-native', 'lua-native', 'make-native', 'patch-native', 'perl-native', 'pkgconfig-native', 'pseudo-native', 'python3-native', 'rpm-native', 'bc-native', 'bzip2-native', 'libarchive-native', 'libidn2-native', 'lzlib-native', 'xz-native', 'zstd-native', 'kmod-native', 'acl-native', 'attr-native', 'curl-native', 'gdbm-native', 'gmp-native', 'gnutls-native', 'libtasn1-native', 'libcap-native', 'libffi-native', 'libgcrypt-native', 'libgpg-error-native', 'libmicrohttpd-native', 'libmpc-native', 'libunistring-native', 'mpfr-native', 'nettle-native', 'p11-kit-native', 'popt-native', 'sqlite3-native'] DEBUG: Python function extend_recipe_sysroot finished DEBUG: Executing python function sstate_task_prefunc DEBUG: Python function sstate_task_prefunc finished DEBUG: Executing python function do_package DEBUG: Executing python function package_setup_pkgv DEBUG: Python function package_setup_pkgv finished DEBUG: Executing python function package_convert_pr_autoinc DEBUG: Python function package_convert_pr_autoinc finished DEBUG: Executing python function package_prepare_pkgdata NOTE: Installed into pkgdata-sysroot: [] DEBUG: Python function package_prepare_pkgdata finished DEBUG: Executing python function perform_packagecopy ERROR: Error executing a python function in exec_func_python() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_func_python() autogenerated', lineno: 2, function: 0001: *** 0002:perform_packagecopy(d) 0003: File: '/home/vvdn/LWT_Build/sources/poky/meta/classes-global/package.bbclass', lineno: 363, function: perform_packagecopy 0359: rpath_replace (dvar, d) 0360:} 0361:perform_packagecopy[cleandirs] = "${PKGD}" 0362:perform_packagecopy[dirs] = "${PKGD}" *** 0363: 0364:python populate_packages () { 0365: oe.package.populate_packages(d) 0366:} 0367:populate_packages[dirs] = "${D}" File: '/usr/lib/python3.10/subprocess.py', lineno: 421, function: check_output 0417: else: 0418: empty = b'' 0419: kwargs['input'] = empty 0420: *** 0421: return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, 0422: **kwargs).stdout 0423: 0424: 0425:class CompletedProcess(object): File: '/usr/lib/python3.10/subprocess.py', lineno: 526, function: run 0522: # We don't call process.wait() as .__exit__ does that for us. 0523: raise 0524: retcode = process.poll() 0525: if check and retcode: *** 0526: raise CalledProcessError(retcode, process.args, 0527: output=stdout, stderr=stderr) 0528: return CompletedProcess(process.args, retcode, stdout, stderr) 0529: 0530: Exception: subprocess.CalledProcessError: Command 'tar --exclude=./sysroot-only -cf - -C /home/vvdn/LWT_Build/build/tmp/work/imx8mpevk-poky-linux/linux-imx/6.12.34+git/image -p -S . | tar -xf - -C /home/vvdn/LWT_Build/build/tmp/work/imx8mpevk-poky-linux/linux-imx/6.12.34+git/package' returned non-zero exit status 2. Subprocess output: got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. tar: ./usr/lib: Cannot mkdir: Bad address got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. got *at() syscall for unknown directory, fd 4 unknown base path for fd 4, path lib couldn't allocate absolute path for 'lib'. tar: ./usr/lib: Cannot mkdir: Bad address tar: ./usr/lib/modules: Cannot mkdir: No such file or directory Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) It seems that I don't have the permission to download the attachment. Would you please resend it again? Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) Hi @yipingwang  Awaiting for your prompt support in further debugging.
View full article
IMXRT EDMA error IRQ handler is not implemented in the SDK Hi, The IMXRT EDMA API in the SDK seems to handle "happy case" interrupts correctly.  However, there doesn't seem to be any provision for handling error interrupts.  Not only that, but it appears there is one global DMA_ERROR_IRQHandler for all DMA.  So if you're using both DMA0 and DMA1, when things are "happy" the DMA0/DMA1 IRQHandler would be called and the SDK can distinguish which DMA got the happy interrupt.  However, if there's a DMA error, since there's one global error interrupt handler, there's no easy way to know which DMA (0 or 1 or whatever) the error happened on. As in my previous question about LPUART error IRQ handling.  Why isn't this baked into the SDK to handle DMA errors and call appropriate callbacks?  Now I have to figure out how to determine which DMA the error is on by hand and call special handling outside the SDK instead of just having it call a callback for me. For an SDK that is supposed to be usable in production code, there seem to be a lot of missing robustness features, and I'm betting most people are just assuming these errors are handled under the hood by the SDK, and they don't think about the fact that they really aren't. -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK Dear @nxp16 , Which i.MX RT device are you using? When you mention DMA0 and DMA1, are you referring to two DMA channels rather than two DMA controller peripherals? Not all i.MX RT devices have two eDMA controllers. For example: i.MX RT1180 contains two eDMA controllers. In the startup file (for example, startup_mimxrt1189_cm33.c), you can find two DMA error handlers: DMA_ERROR_IRQHandler and DMA4_ERROR_IRQHandler. i.MX RT1050 contains only one eDMA controller. In the startup file (for example, startup_mimxrt1052.c), there is only one DMA error handler: DMA_ERROR_IRQHandler. In general, DMA errors are relatively infrequent events. From the hardware architecture perspective, channel error status is aggregated into a module-level error request, which triggers the DMA error interrupt. Therefore, the software must examine each channel's error status register (for example, CHn_ES) to determine which specific channel caused the error. Best Regards, Shelly Zhang Re: IMXRT EDMA error IRQ handler is not implemented in the SDK Sorry, I meant channel.  I'm using IMXRT1172. Wouldn't DMA errors occur if there was a problem with whatever peripheral it was being used with?  I.e. if it was LPSPI with DMA wouldn't any SPI errors cause a DMA error?  If not, then do SPI errors when using DMA trigger a SPI error interrupt? Thanks, -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK I figured as much.  In that case, the SDK's transfer API is even less robust.  Having to handle peripheral and DMA errors outside the SDK requires quite a bit of extra work, including somewhat hacky overriding of the default IRQ handlers and making sure they still call into the SDK handlers after processing any errors.  The fact that this stuff isn't part of the SDK transfer API is very discouraging. Re: IMXRT EDMA error IRQ handler is not implemented in the SDK Dear @nxp16 , No. A peripheral error occurring while using DMA does not necessarily mean that the DMA controller itself will report an error. In most cases, SPI errors and DMA errors are handled by two separate status and interrupt mechanisms. DMA reports only DMA-, bus-, or transfer-layer errors. Protocol-level or FIFO-related errors in LPSPI should be handled through the LPSPI peripheral's own status flags and error interrupts. Operating in DMA mode does not automatically convert all SPI errors into DMA errors. Best Regards, Shelly Zhang Re: IMXRT EDMA error IRQ handler is not implemented in the SDK Dear @nxp16 , I understand your concern, and I agree that handling peripheral error conditions separately from the SDK transfer API can increase the amount of application-level code required. Thank you for the feedback. I will pass your comments to the SDK team. Best Regards, Shelly Zhang Re: IMXRT EDMA error IRQ handler is not implemented in the SDK Actually, it's worse than I thought.  Using the EDMA LPSPI transfer API makes it impossible to catch SPI errors because the function that LPSPI_MasterTransferEDMA calls, LPSPI_PrepareTransferEDMA. disables ALL SPI interrupts.  So it's impossible to enable the error interrupts before calling it, because it disables them again, and it's too late afterward because the SPI EDMA transfer is already taking place.  This is a major bug in this API. -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK Yes, that is exactly what I had to do for now as a workaround.  However, editing the SDK files is not really a good solution, as they can change on update of the SDK unfortunately. Thanks, -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK Dear @nxp16 , Thank you for pointing this out. I checked the implementation of LPSPI_PrepareTransferEDMA(LPSPI_Type *base),  and I do see that it calls LPSPI_DisableInterrupts(base, (uint32_t)kLPSPI_AllInterruptEnable): As a workaround, you may consider modifying this section of the driver so that it does not disable the Transmit Error Interrupt and Receive Error Interrupt. In other words, instead of disabling kLPSPI_AllInterruptEnable , only disable the interrupts that are required for the EDMA transfer operation while keeping the error interrupts enabled. You can try removing LPSPI_IER_TEIE_MASK and LPSPI_IER_REIE_MASK.
View full article
Config Tools for i.MX Config Tools for i.MX 26.06  in this tool i.mx952 not working also 95 , error : cannot download the processor database. Re: Config Tools for i.MX Hi @onkarbhalerao, Thank you for contacting NXP Support. I have tested this on my side and did not observe any issues. Could you please double check your internet connection and try again? If the issue persists, you can manually download the required files using the MCUXpresso SDK Builder Best regards, Chavira
View full article
S32N55: How to build a blob image for fast wake-up boot. Hello Team, As we know, the S32N55 supports Fast Wake-up Boot. I tried building a blob image using the same format as Full Wake-up Boot, but the boot process failed. Could you please guide me on how to correctly build a blob image for Fast Wake-up Boot? Thank you! Best regards, Tangsheng. FSS_FW Priority: MEDIUM Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou, The team has picked up the case and will provide an answer as soon as possible.  Best regards, Radu  Re: S32N55: How to build a blob image for fast wake-up boot. Hello @RaduBraga  I noticed that this ticket has been closed. Is there any update on the progress?   Best regards, Tangsheng. Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou , I took over the case and will provide a response as soon as possible.   Best regards, Paul Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou , If you are supporting a Direct Customer, please provide: BSSM Contract: Yes / No Customer Company*: Project Name*: Customer Contact Point* (Name & Email): Software & Hardware Information: SW Package Info*: HW* (Board/Chipset/Platform): SW Version*: *required I am still working with the development team for this case Best regards, Paul Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou , Thank you for these details, I am working on this case and will provide an answer as soon as possible! Best regards, Paul Re: S32N55: How to build a blob image for fast wake-up boot. Hello @PaulB0bes  This case is not tied to any specific customer or project. However, I believe customers may encounter similar questions in the future, which is why I raised this request.   Best regards, Tangsheng. Re: S32N55: How to build a blob image for fast wake-up boot. Hello @PaulB0bes  Below are the detailed steps for testing.   1. built a small FSS image within AOSRAM memory region(reserved the IVT header), which only have a while loop in main.c 2. build the FSS Firmware image,  do I need to fill the FRB Threshold Reg? If so, how to fill it or any special thing need to be considered. 3. built the IVT blob image in IVT tool, with start address from 0x24800000 4. write the IVT blob image into flash at 0xD00000. 5. before the system enter sleep, copy the IVT blob image into AOSRAM, and configure the WKPU mode for FSS_WKUP0 as fast wake-up mode. 5. wakeup the system image via FSS_WAKUP0. The FSS could not reach the while(1) loop. It appears that a reset event was triggered during the wake-up process instead of a fast wake-up.   Thanks for your support!   Best regards, Tangsheng. Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou , It would help if you could share the exact steps you followed when you tried to build the blob image. I think it would be easier for us to identify the issue that way.   Best regards, Paul
View full article
S32N55:如何版本 blob 映像以实现快速唤醒启动。 你好,团队、 众所周知,S32N55 支持快速唤醒启动。 我尝试使用与完全唤醒启动相同的格式构建 blob 映像,但启动过程失败了。 你能否指导我如何正确版本 Fast Wake-up 启动的 blob 镜像? 谢谢! 顺祝商祺! 唐生。 FSS_FW 优先级:中等 Re: S32N55: How to build a blob image for fast wake-up boot. 你好@唐生_周、 该小组已受理此案,并将尽快给出答复。 致以最崇高的敬意, Radu Re: S32N55: How to build a blob image for fast wake-up boot. 你好@RaduBraga 我注意到该票已被关闭。有没有最新进展?   顺祝商祺! 唐生。 Re: S32N55: How to build a blob image for fast wake-up boot. 你好@Tangsheng_Zhou , 我已经接手此案,并将尽快给予答复。   顺祝商祺! 保罗 Re: S32N55: How to build a blob image for fast wake-up boot. 你好@Tangsheng_Zhou , 如果您正在为直接客户提供支持,请提供以下信息: BSSM合同:是/否 客户公司*: 项目名称*: 客户联系人*(姓名和邮箱): 软件和硬件信息: 软件软件包信息*: 硬件*(主板/芯片组/平台): 软件版本*: *必需的 我仍在与开发团队合作处理此案例。 顺祝商祺! 保罗 Re: S32N55: How to build a blob image for fast wake-up boot. 你好@PaulB0bes 此案与任何特定客户或项目无关。但是,我认为客户将来可能会遇到类似的问题,所以我提出了这个请求。   顺祝商祺! 唐生。 Re: S32N55: How to build a blob image for fast wake-up boot. 你好@Tangsheng_Zhou , 感谢您提供的详细信息,我正在处理此案,会尽快给您答复! 顺祝商祺! 保罗 Re: S32N55: How to build a blob image for fast wake-up boot. 你好@PaulB0bes 以下是详细的测试步骤。   1. 在 AOSRAM 内存区域内构建了一个小型 FSS 镜像(保留了 IVT 头部),该镜像的 main.c 文件中只有一个 while 循环。 2. 构建 FSS 固件镜像时,我需要填写 FRB 阈值寄存器吗?如果需要填写,则需要考虑如何填写或任何特殊事项。 3. 使用 IVT 工具构建 IVT blob 映像,起始地址为 0x24800000 4. 将 IVT blob 映像写入闪存的 0x D00000 地址。 5. 在系统进入睡眠状态之前,将 IVT blob 映像复制到 AOSRAM 中,并将 FSS_WKUP0 的 WKPU 模式配置为快速唤醒模式。 5. 通过 FSS_WAKUP0 唤醒系统映像。 FSS 无法到达 while(1) 环。看来在唤醒过程中触发了重置事件,而不是快速唤醒。   感谢您的支持!   顺祝商祺! 唐生。 Re: S32N55: How to build a blob image for fast wake-up boot. 你好@Tangsheng_Zhou , 如果您能分享一下您在尝试构建 blob 镜像时所遵循的具体步骤,那就太好了。我认为那样我们更容易找出问题所在。   顺祝商祺! 保罗
View full article
Imx6ull KSZ8041NL 以太网问题 你好呀 , 为了在我们的潜在项目中利用双以太网,我们将两个以太网PHY芯片连接到了Imx6ull处理器上。 其中一块 PHY 芯片是 KSZ8081,另一块 PHY 芯片是 KSZ8041,以下是我们的 DTS 配置: &fec1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet1>; phy-mode = "rmii"; phy-handle = <&ethphy0>; phy-reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; phy-reset-duration = <26>; phy-reset-post-delay=<20>; phy-supply = <&reg_peri_3v3>; 状态 = "正常"; }; &fec2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet2>; phy-mode = "rmii"; phy-handle = <&ethphy1>; phy-reset-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; //phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>; phy-reset-duration = <26>; phy-reset-post-delay=<20>; phy-supply = <&reg_peri_3v3>; 状态 = "正常"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy0:以太网物理层@1 { reg = <1>; micrel,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET_REF>; clock-names = "rmii-ref"; }; ethphy1:以太网物理层@3 { reg = <3>; micrel,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET2_REF>; clock-names = "rmii-ref"; }; }; }; pinctrl_enet1:enet1grp { fsl,pins = < MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0 MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0 MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0 MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 >; }; pinctrl_enet2:enet2grp { fsl,pins = < MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0 MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0 MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0 MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0 MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0 MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031 >; }; 内核日志中检测到了两个以太网物理层,而且当我们连接以太网电缆时,两个设备上也都能检测到链路。 但是,连接到 KSZ8081 phy 的以太网上可以接收到 IP 地址,而连接到 KSZ8084NL 的以太网上却无法分配 IP 地址。 在KSZ8041NL以太网接口(eth0)上观察到接收错误,以下是日志: root@sls-imx6ull14x14evk:~# ifconfig eth0 链路封装:以太网硬件地址 BA:9C:69:1F:76:3A 上行广播组播 MTU:1500 指标:1 接收数据包:0 个错误:1065 个丢弃:0 个溢出:0 个帧:1065 个 发送数据包:65,错误:0,丢弃:0,溢出:0,载波:0 碰撞次数:0 txqueuelen:1000 接收字节数:0 (0.0 B) 发送字节数:12024 (11.7 KiB) eth1 链路封装:以太网 硬件地址 42:19:11:7F:5E:89 inet addr:10.20.0.184广播地址:10.20.1.255掩码:255.255.254.0 inet6 地址:fe80::8248:9837:9647:2a00/64 范围:链路 广播运行中 多播 MTU:1500 指标:1 接收数据包:18 个,错误:0 个,丢弃:0 个,溢出:0 个,帧:0 个 发送数据包:23 个,错误:0 个,丢弃:0 个,溢出:0 个,载波:0 个 碰撞次数:0 txqueuelen:1000 RX 字节:2494 (2.4 KiB) TX 字节:3162 (3.0 KiB) lo Link encap:本地环回 inet addr:127.0.0.1掩码:255.0.0.0 inet6 地址: ::1/128 范围:主机 环路已启动,运行中,MTU:65536,指标:1 接收数据包:17 个,错误:0 个,丢弃:0 个,溢出:0 个,帧:0 个 发送数据包:17 个,错误:0 个,丢弃:0 个,溢出:0 个,载波:0 个 碰撞次数:0 txqueuelen:1000 RX 字节:2011 (1.9 KiB) TX 字节:2011 (1.9 KiB)   root@sls-imx6ull14x14evk:~# ethtool eth0 eth0 的设置: 支持的端口:[ TP MII ] 支持的链路模式:10baseT/半高、10baseT/全高 100baseT/半成品 100baseT/全成品 支持的暂停帧使用方式:对称 支持自动协商:是 支持的FEC模式:未报告 宣传的连接模式:10baseT/半成品 10baseT/全成品 100baseT/半成品 100baseT/全成品 广告中暂停帧的使用:对称 广告中提及的自动协商:是 已公布的FEC模式:未报告 链路伙伴宣传的链路模式:10baseT/半成品 10baseT/全成品 100baseT/半成品 100baseT/全成品 链接伙伴宣传的暂停帧使用情况:否 链接合作伙伴已宣传自动协商:是 链接伙伴宣传的FEC模式:未报告 速度:100Mb/s 复式:全套 自动协商:开启 端口:双绞线 PHYAD:3 收发器:外部 MDI-X:未知 支持唤醒:g 唤醒:d 检测到连接:是   我们还检查了时钟,它是 50MHz 的,生成正常,并且也输入到 KSZ8041NL 物理层。 简而言之,使用 KSZ8081 的 1 个以太网接口工作正常,但使用 KSZ8041NL 的 2 个以太网接口无法工作。 请给我们提供解决方案。我们还附上了以太网PHY硬件的截图供您参考。 i.MX6 全部 i.MX6UL Re: Imx6ull KSZ8041NL ethernet issue 您好,NXP团队, 我们提出的问题有任何更新吗?
View full article
I.MX6 VPU Encoding Features We are evaluating i.mx6 VPU for encoding to H.264 from camera image stream. As I am totally new to stream encoding in i.MX6, I am struck in choosing sensor. I am I have some doubts on that front. 1. What is the maximum resolution supported by VPU for H.264 encoding? 2. What is the maximum frame rate supported at maximum resolution for H.264 encoding? 3. What are input color space supported by VPU for H.264 encoding? 4. If you have less resolution say 640*480 pixels, can we get more frame rate compared to 1920*1080 pixels for H.264 encoding? 5. Is frame rate is limited by bit rate? 6. Is it possible to route stream from IPU to VPU for encoding? Thanks, Guna Graphics & Display i.MX6Quad Linux Multimedia Yocto Project Re: I.MX6 VPU Encoding Features Hi Artur is it possible to encode 1920x1080 30 FPS video while 1920x1080 30FPs video is decoded? Also no document specify this information if its true? Re: I.MX6 VPU Encoding Features Thank you so much Re: I.MX6 VPU Encoding Features 1. The horisontal resolution is limited to 1080 pixels except of the MJPEG BP profile where the maximum picture size can be up to 8192x8192 pixels. 2. There is no direct pixels/s vs operating frequency specification. Moreover, the VPU throughput is different for encoding and decoding operations. It can encode one 1920x1080@30fps stream and decode one 1920x1080@30fps stream plus one D1@30fps stream. Artur Re: I.MX6 VPU Encoding Features Artur Petukhov, Thank you for the response. Just to clarify, Does it mean that I cannot do 1600 x 1200 (UXGA) h264 encoding with VPU even if it runs @ 352Mhz? How to calculate the throughput for VPU operating frequency?. I read for 266Mhz operating the throughput is around 72,576,000 pixels/s. Can you help me on this? Re: I.MX6 VPU Encoding Features Q1. What is the maximum resolution supported by VPU for H.264 encoding? Q2. What is the maximum frame rate supported at maximum resolution for H.264 encoding? A1-2. The Video Processing Unit (VPU) of i.MX6 series processors can encode/decode a video streams at up to 1920x1080@30fps resolution/frame rate. Q3. What are input color space supported by VPU for H.264 encoding? A3. Supported input color space is YUV4:2:0 except of the MJPEG codec that supports 4:2:0, 4:2:2, 2:2:4, 4:4:4 and 4:0:0. Q4. If you have less resolution say 640*480 pixels, can we get more frame rate compared to 1920*1080 pixels for H.264 encoding? A4. Yes. Q5. Is frame rate is limited by bit rate? A5. Do you mean the bit rate of encoded video stream? If so, the answer is: there is no direct relation between frame rate and bit rate, the resulting bit rate mostly depends on the codec and encoding profile used. Q6. Is it possible to route stream from IPU to VPU for encoding? A6. Yes, it is possible using the frame buffer in system memory. For example, IPU stores the frames, captured by camera, to system memory using the double-buffer scheme, then VPU takes the frames to encode from there. Have a great day, Artur ----------------------------------------------------------------------------------------------------------------------- Note: If this post answers your question, please click the Correct Answer button. Thank you! ----------------------------------------------------------------------------------------------------------------------- Re: I.MX6 VPU Encoding Features Thank you. I am started playing with that. Re: I.MX6 VPU Encoding Features I can't give you the answer, you can contact the http://www.chipsnmedia.com/. All the reference I searched can't answer it either. http://www.chipsnmedia.com/data/goodsImages/1289972906&&CNM_Brochure_CODA960.pdf https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.chipsnmedia.com%2Fsupport%2Fdown%2Fcnm-codadx6-datashe… I suggest you try it on board. Re: I.MX6 VPU Encoding Features Du wu, If that's the case, then is it possible to do 640 x 480 @ 90 fps? Thanks, Guna Re: I.MX6 VPU Encoding Features #1 I don't care the maximum bitrate or maximum clock freq, I just think any regular "width*height*fps" under "1920*1080*30" will be ok for h264 encoding. #2 The i.MX platform must have "physical memory allocator api" which handle DMA and cache coherent. If "IPU output" and "VPU input" share the same memory and the same image format, no copy or convertion is required. Re: I.MX6 VPU Encoding Features Du wu, Thank you for the reply. I have some doubts, 1. For 4 &5,       If the limit is width * height * fps, then what is the maximum bit rate supported by VPU?.I cound not find that in their doc. As far as I know, the speed of operation of VPU can go up to 352Mhz. 2. For 6,         Can SDMA be used for this? If Yes, Is there any limitation with that? Thanks, Guna Re: I.MX6 VPU Encoding Features for short: #1,2 1920x1080@30fps #3 YUV422(NV12), YUV420 #4,5 i think the limit is "width*height*fps". #6 i think you may need format convertion or memcpy. for detail: http://www.nxp.com/webapp/Download?colCode=L4.1.15_1.1.0_LINUX_DOCS&Parent_nodeId=1337699481071706174845&Parent_pageType…
View full article
i.MX8MP_EVK:YOCTO 编译错误 do_package()(问题:tar & *at()) 您好, 以下是我的 Yocto 构建参数: 发布版本: imx-linux-walnascar 电路板支持包 版本: imx-6.12.49-2.2.0 机器: imx8mpevk 发行版: fsl-imx-xwayland 过去几个月我一直成功地使用这个版本环境。然而,我突然开始遇到附件中的错误。 为了排查问题,我彻底清理了构建环境,重新初始化了代码仓库( repo init ),再次同步了所有内容,并执行了一次全新的构建。但遗憾的是,问题依旧存在。 请查阅附件中的日志文件。我希望您能帮忙找出根本原因并提出解决方案。 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) bitbake imx-image-core Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 你使用的是哪个“bitbake 命令”? 我会进行核实。 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 感谢您的反馈, 我已检查过我的构建环境,它已经与您推荐的配置相符。 主机操作系统: Ubuntu 22.04.5 LTS (Jammy) GNU tar 版本: GNU tar 1.34 $ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.5 LTS" ... $ tar --version tar(GNU tar)1.34 然而,我仍然遇到同样的故障。 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 请检查 tar 版本,如果主机是 Ubuntu 24.04,而 tar 版本是 1.35。 在容器或虚拟机内构建: Ubuntu 22.04 LTS GNU tar 1.34 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 请查收以下文件, 这里我粘贴一些错误信息。 调试:正在执行 Python 配方 extend_recipe_sysroot 注意:直接依赖项为 ['/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/binutils/binutils-cross_2.44.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/gcc/gcc-cross_14.3.bb:do_populate_sysroot','/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/quilt/quilt-native_0.68.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-core/coreutils/coreutils_9.6.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/bison/bison_3.8.2.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/flex/flex_2.6.4.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/patch/patch_2.7.6.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/rpm/rpm_4.20.0.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-extended/bc/bc_1.08.1.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-kernel/kmod/kmod_34.1.bb:do_populate_sysroot'] 注意:已安装到系统根目录:[] 注意:由于 sysroot 中已存在以下软件包,因此跳过:['gettext-minimal-native', 'binutils-cross-aarch64', 'cmake-native', 'gcc-cross-aarch64', 'libtool-native', 'm4-native', 'quilt-native', 'texinfo-dummy-native', 'kern-tools-native', 'linux-libc-headers', 'file-native', 'openssl-native', 'coreutils-native', 'expat-native', 'ncurses-native', 'readline-native', 'util-linux-libuuid-native', 'zlib-native', 'bison-native', 'dwarfsrcfiles-native', 'elfutils-native', 'flex-native', 'git-native'、'gnu-config-native'、'json-c-native'、'libedit-native'、'lua-native'、'make-native'、'patch-native'、'perl-native'、'pkgconfig-native'、'pseudo-native'、'python3-native'、'rpm-native'、'bc-native'、'bzip2-native'、'libarchive-native'、'libidn2-native'、'lzlib-native'、'xz-native'、'zstd-native'、'kmod-native'、'acl-native'、'attr-native'、'curl-native'、'gdbm-native'、'gmp-native'、'gnutls-native' 'libtasn1-native', 'libcap-native', 'libffi-native', 'libgcrypt-native', 'libgpg-error-native', 'libmicrohttpd-native', 'libmpc-native', 'libunistring-native', 'mpfr-native', 'nettle-native', 'p11-kit-native', 'popt-native', 'sqlite3-native'] 调试:Python 函数 extend_recipe_sysroot 已完成 调试:正在执行 Python 函数 sstate_task_prefunc 调试:Python 函数 sstate_task_prefunc 已完成 调试:正在执行 Python 函数 do_package 调试:正在执行 Python 函数 package_setup_pkgv 调试:Python 函数 package_setup_pkgv 已完成 调试:正在执行 Python 函数 package_convert_pr_autoinc 调试:Python 函数 package_convert_pr_autoinc 已完成 调试:正在执行 Python 函数 package_prepare_pkgdata 注意:已安装到 pkgdata-sysroot:[] 调试:Python 函数 package_prepare_pkgdata 已完成 调试:正在执行 Python 函数 perform_packagecopy 错误:执行 exec_func_python() 自动生成的 Python 函数时出错: 导致此异常/失败的 Python 调用堆栈跟踪如下: 文件:'exec_func_python() autogenerated',行号:2,函数: 0001: *** 0002:perform_packagecopy(d) 0003: 文件:'/home/vvdn/LWT_Build/sources/poky/meta/classes-global/package.bbclass',行号:363,函数:perform_packagecopy 0359: rpath_replace (dvar, d) 0360:} 0361:perform_packagecopy[cleandirs] = "${PKGD} " 0362:perform_packagecopy[dirs] = "${PKGD} " *** 0363: 0364:python populate_packages() { 0365: oe.package.populate_packages(d) 0366:} 0367:populate_packages[dirs] = " ${D} " 文件:'/usr/lib/python3.10/subprocess.py'行号:421,函数:check_output 0417:否则: 0418:空 = b'' 0419: kwargs['input'] = 空 0420: *** 0421: 返回 run(*popenargs, stdout=PIPE, timeout=timeout, check=True, 0422: **kwargs).stdout 0423: 0424: 0425:class CompletedProcess(object): 文件:'/usr/lib/python3.10/subprocess.py'lineno: 526, function: run 0522: # 我们不调用 process.wait()作为。 __exit__它能帮我们做到这一点。 0523:提高 0524: retcode = process.poll() 0525:如果检查并返回代码: *** 0526: 引发 CalledProcessError(retcode, process.args, 0527: output=stdout, stderr=stderr) 0528: 返回 CompletedProcess(process.args, retcode, stdout, stderr) 0529: 0530: 异常:subprocess.CalledProcessError:命令“tar --exclude=./sysroot-only”-cf - -C /home/vvdn/LWT_Build/build/tmp/work/imx8mpevk-poky-linux/linux-imx/6.12.34+git/image -p -S .| tar -xf - -C /home/vvdn/LWT_Build/build/tmp/work/imx8mpevk-poky-linux/linux-imx/6.12.34+git/package' 返回非零退出状态 2。 子进程输出: 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 tar:./usr/lib:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 tar:./usr/lib:无法创建目录:地址错误 tar:./usr/lib/modules:无法创建目录:没有该文件或目录 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 我似乎没有权限下载该附件。 请您再发送一次好吗? Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 嗨@yipingwang 期待您能尽快提供调试方面的支持。
View full article
S32K358 + FreeRTOS: PendSV_Handler実行中にランダムなハードフォルトが発生 チームの皆さん、こんにちは。 FreeRTOSを実行しているS32K358で、ランダムなハードフォルトが発生しています。 アプリケーションは長時間正常に動作しますが、突然フリーズします。システムが実行を停止した後、ソフトウェア・ウォッチドッグ(SWT)はサービスされず、最終的にコントローラがリセットされます。 障害は即座に発生するわけではなく、約1~2時間の連続実行後に発生する。 障害発生後に停止すると、コールスタックには以下が表示されます。 PenSV_Handler() ↓ HardFault_Handler() レジスタ値: LR = 0xA5A5A5A5 PC = 0x00407BD9 LR = 0xA5A5A5A5は、有効な戻りアドレスというよりは、メモリ初期化パターンのように見えます。 その他の登録簿: R0 = 0x204011A8 R3 = 0x2040012C R12 = 0x20400010 ご提案やデバッグに関するアドバイスなど、何でもいただければ大変ありがたいです。 Re: S32K358 + FreeRTOS: Random HardFault during PendSV_Handler こんにちは、 @nirmal_masilamani さん。 FreeRTOSのコンテキスト切り替え時に保存されたタスクコンテキストが破損しているようです。 PendSVはFreeRTOSによってコンテキスト切り替えに使用されるため、PendSV_Handler()内でHardFaultが発生した場合、多くの場合、スケジューラが無効なタスクコンテキストを復元しようとしていることを意味します。 考えられる根本原因の一つは、タスクスタックオーバーフローです。タスクのスタックサイズを増やし、FreeRTOSのスタックオーバーフロー検出機能を有効にすることをお勧めします。 configCHECK_FOR_STACK_OVERFLOW 実装: vApplicationStackOverflowHook()。 さらに、uxTaskGetStackHighWaterMark()を使って各タスクの残りのスタック空間を定期的に監視することもできます。これにより、故障が発生する前にスタック限界に近いタスクを特定するのに役立ちます。 よろしくお願いいたします。 ダニエル
View full article
S32K358 SWAP ABのMCAL-XDRC構成 以下の3つの質問に答えるのを手伝ってください。 1. 現在、SWAP機能を使用する必要があります。RMモジュール内のXDRCメモリ構成において、フラッシュBブロック:0x800000-0xbffffffを定義する必要はありますか? 2. HSEが占有しているフラッシュメモリ領域0x7D4000-0x7FFFFFをメモリ構成から削除する必要がありますか? 3. core0をOSを実行するプライマリコア、core2をアルゴリズムを実行するセカンダリコアと定義します。次に、Domain_Assgnment_0にCM7_0、CM7_1、GMAC、uSDHC、eDMAを割り当て、Domain_Assgnment_1にCM7_2を割り当てました。これは正しいでしょうか?実際のアプリケーションでは、使用されていないマスターコアを構成から省略できますか? Re: S32K358 SWAP AB的MCAL-XDRC配置 こんにちは、@scott071209 1.アプリケーションまたはブートローダーは、パッシブパーティション内の画像の詳細を消去、プログラム、検証、読み込みを行う必要があります。つまり、パッシブパーティションもXRDCでカバーされる必要があるということだ。 2. AB_SWAPファームウェアの場合、XRDCはリセット時に自動的に設定され、HSE FWアクティブフラッシュエリア、HSE FWパッシブフラッシュエリア、HSE FWデータフラッシュ、HSE UTESTエリアを保護します。この目的にはディスクリプタ12〜15が使われ、この構成はロックされているため、ユーザーが変更することはできません。詳細はHSEファームウェアのリファレンスマニュアルのセクションで確認できます: “14.6.3.3デフォルトのMRC 0構成(AB_SWAP)」 したがって、HSE資源を自社のXRDC構成でカバーする必要はありません。 3. はい、そのようなセットアップを利用できます。マスターが使われていない場合は、設定で省略できます。 ただし、HSEを使用する場合は、ドメイン3もHSE用に構成する必要があります。これはHSEリソースを保護するためではなく、HSEにユーザーデータへのアクセス権を与え、暗号操作を行うためのものです。 S32K358には4つのドメインがあり、HSEは常に利用可能な最高位のドメインに割り当てられます。S32K358の場合はドメイン3です。これは固定されているので、変更できません。RTDの新しいバージョンでは、HSEマスターはXRDC構成でリストにすら含まれていません。なぜなら再構成ができないからです。ドメイン3にHSEのみを配置したい場合は、このドメインにマスターを割り当てる必要はありません。HSE(健康・安全・環境)は既に自動的に組み込まれています。 以前のRTDバージョンでは、HSEを他のドメインに割り当てることが可能でしたが、そのような設定は効果がありませんでした。そのため、削除されました。 よろしくお願いいたします。 ルーカス
View full article
面向 i.MX 的配置工具 此工具中的 i.MX 26.06 配置工具 i.mx952 也无法工作,错误为:无法下载处理器数据库。 Re: Config Tools for i.MX 你好@onkarbhalerao , 感谢您联系恩智浦技术支持。 我这边已经测试过了,没有发现任何问题。 请您检查一下网络连接,然后重试。 如果问题仍然存在,您可以使用MCUXpresso SDK Builder手动下载所需文件。 此致, 查维拉
View full article
PN7221はISO 14443-3Bを検出できません PN7221は PN7160/PN7220 - Android 16移植ガイドAN14880文書に従って移植しました。テスト中、ISO 14443-3B(NfcB)カードは検出できません。さらに、そのようなカードをタップすると、NFC機能が誤作動を起こし、どのカードも認識しなくなります。正常な動作に戻すには、NFC機能を一度オフにしてから再度オンにする必要があります。分析に必要な関連ログを以下に添付いたします。 ❯ 07-16 09:24:28.515 530 6384 D NxpTml : PN72xx - I2C読み込み成功..... 07-16 09:24:28.515 530 6384 D NxpNciR : len = 26 > 61051701010001FF010C0B00000000D103860500808001000000 07-16 09:24:28.515 530 6384 D NxpTml : PN72xx - 既読メッセージを投稿中..... 07-16 09:24:28.516 530 6387 D NxpHal : read 成功状態 = 0x0 07-16 09:24:28.516 530 6387 D NxpHal : NxpNci: RF インターフェース = フレームRF 07-16 09:24:28.516 530 6387 D NxpHal : NxpNci: プロトコル = 不明 07-16 09:24:28.516 530 6387 D NxpHal : NxpNci: Mode = B パッシブ投票 07-16 09:24:28.516 530 6387 D NxpHal : NCI NTF: RF_DEACTIVATED len=26 タイプ=1 07-16 09:24:28.517 530 6384 D NxpTml : PN72xx - 読書リクエスト..... 07-16 09:24:28.517 530 6384 D NxpTml : PN72xx - I2Cリードの呼び出し..... 07-16 09:24:28.517 1599 6381 D libnfc_nci: rw_t4t_send_to_lower: conn_id 下層へ送信 =0 07-16 09:24:28.517 530 542 I android.hardware.nfc2-service.nxp:書く 07-16 09:24:28.517 530 6385 D NxpTml : PN72xx - 書き込みリクエスト..... 07-16 09:24:28.517 530 6385 D NxpTml : PN72xx - I2C Writeの呼び出し..... 07-16 09:24:28.519 530 6385 D NxpNciX : len = 12 > 00000091D000000000000080100 07-16 09:24:28.519 530 6385 D NxpTml : PN72xx - I2C 書き込み成功..... 07-16 09:24:28.519 530 6385 D NxpTml : PN72xx - 新しい書き込みメッセージの投稿中..... 07-16 09:24:28.519 530 6385 D NxpTml : PN72xx - Tml Writer Thread実行中................ 07-16 09:24:28.519 530 6387 D NxpHal : write true status = 0x0 07-16 09:24:28.520 530 6384 D NxpTml : PN72xx - I2C読み取り成功..... 07-16 09:24:28.520 530 6384 D NxpNciR : len = 6 > 600603010001 07-16 09:24:28.520 530 6384 D NxpTml : PN72xx - 既読メッセージを投稿中..... 07-16 09:24:28.521 530 6387 D NxpHal : read, 成功した状態 = 0x0 07-16 09:24:28.521 530 6387 D NxpHal : NCI NTF: CORE_GENERIC_ERROR len=6 07-16 09:24:28.521 530 6384 D NxpTml : PN72xx - 読書リクエスト中..... 07-16 09:24:28.521 530 6384 D NxpTml : PN72xx - I2Cリードの呼び出し..... 07-16 09:24:28.523 530 6384 D NxpTml : PN72xx - I2C読み取り成功..... 07-16 09:24:28.523 530 6384 D NxpNciR : len = 5 > 0000020000 07-16 09:24:28.523 530 6384 D NxpTml : PN72xx - 既読メッセージの投稿..... 07-16 09:24:28.523 530 6387 D NxpHal : read 成功状態 = 0x0 07-16 09:24:28.524 1599 6381 I libnfc_nci: rw_t3Bt_sm_get_id (): sub_state:WAIT_ENDEF_FILE_CTRL_TLV (17) 07-16 09:24:28.524 1599 6381 D libnfc_nci: rw_t4t_send_to_lower: conn_id 下層へ送信 =0 07-16 09:24:28.524 530 542 I android.hardware.nfc2-service.nxp:書く 07-16 09:24:28.524 530 6385 D NxpTml : PN72xx - 書き込みリクエスト..... 07-16 09:24:28.524 530 6385 D NxpTml : PN72xx - I2C Write..... 07-16 09:24:28.524 530 6384 D NxpTml : PN72xx - 読書リクエスト中..... 07-16 09:24:28.524 530 6384 D NxpTml : PN72xx - I2Cリードの呼び出し..... 07-16 09:24:28.525 530 6385 D NxpNciX : len = 8 > 0000050036000008 07-16 09:24:28.525 530 6385 D NxpTml : PN72xx - I2C 書き込み成功..... 07-16 09:24:28.525 530 6385 D NxpTml : PN72xx - 新しい書き込みメッセージの投稿中..... 07-16 09:24:28.525 530 6385 D NxpTml : PN72xx - TMLライターThread実行中................ 07-16 09:24:28.525 530 6387 D NxpHal : write failed status = 0x0 07-16 09:24:28.527 530 6384 D NxpTml : PN72xx - I2C読み込み成功..... 07-16 09:24:28.527 530 6384 D NxpNciR : len = 6 > 600603010001 07-16 09:24:28.528 530 6384 D NxpTml : PN72xx - 既読メッセージを投稿中..... 07-16 09:24:28.528 530 6387 D NxpHal : read 成功状態 = 0x0 07-16 09:24:28.528 530 6387 D NxpHal : NCI NTF: CORE_GENERIC_ERROR len=6 07-16 09:24:28.530 530 6384 D NxpTml : PN72xx - 読書リクエスト..... 07-16 09:24:28.530 530 6384 D NxpTml : PN72xx - I2Cリードの呼び出し..... 07-16 09:24:28.531 530 6384 D NxpTml : PN72xx - I2C読み取り成功..... 07-16 09:24:28.532 530 6384 D NxpNciR : len = 14 > 00000B21CBA4729CB971669000000 07-16 09:24:28.532 530 6384 D NxpTml : PN72xx - 既読メッセージを投稿中..... 07-16 09:24:28.532 530 6387 D NxpHal : read 成功状態 = 0x0 07-16 09:24:28.533 1599 6381 I libnfc_nci: rw_t3Bt_sm_get_id (): sub_state:????不明のサブステート(18歳) 07-16 09:24:28.533 1599 6381 I libnfc_nci: nfa_rw_update_pupi_id: 07-16 09:24:28.534 530 6384 D NxpTml : PN72xx - 読書リクエスト..... 07-16 09:24:28.534 530 6384 D NxpTml : PN72xx - I2Cリードの呼び出し..... Re: PN7221 fails to detect ISO 14443-3B バージョン3.2.5にアップグレードしましたが、テスト結果は変わりません。 07-17 01:13:52.157 533 542 D NxpHal : デバイスで見つかったファームウェアバージョン = 0x30205 Re: PN7221 fails to detect ISO 14443-3B こんにちは、 @zhangkai さん。 3.2.5にアップデートしてください。fwファイルは以下のサイトから入手できます:nfc-NXPNFCC_FW/InfraFW/pn7220 at master ·NXP/NFC-NXPNFCC_FW Re: PN7221 fails to detect ISO 14443-3B 06-24 10:20:33.259 390 401 D NxpHal : デバイスで見つかったファームウェアバージョン = 0x302c4 Re: PN7221 fails to detect ISO 14443-3B こんにちは、 @zhangkai さん。 ファームウェアのバージョンは何ですか?もし3.2.5のような低いバージョンであれば、最新バージョンにアップデートして再度テストしてください。 それでもご不明な点がある場合は、ログ全体をご提供ください。 Re: PN7221 fails to detect ISO 14443-3B こんにちは、 @zhangkai さん。 libnfc-nci.confとlibnfc-nxp.confのファイルを提供してもらえますか?
View full article
IMXRT EDMAエラーIRQハンドラはSDKには実装されていません こんにちは、 SDK内のIMXRT EDMA APIは「ハッピーケース」割り込みを正しく処理しているようです。しかし、エラー割り込みを処理するための仕組みは見当たらないようだ。それだけでなく、すべてのDMAに対して1つのグローバルなDMA_ERROR_IRQHandlerが存在するようです。例えばDMA0とDMA1の両方を使っている場合、状況が「良好」な状態にあるときにDMA0/DMA1のIRQHandlerが呼び出され、SDKがどのDMAがハッピーインタラプトを受け取ったかを識別できます。しかし、DMAエラーが発生した場合、グローバルなエラー割り込みハンドラが1つしかないため、どのDMA(0、1、またはその他)でエラーが発生したかを簡単に知る方法はありません。 以前の質問で、LPUARTエラーIRQ処理について質問したのと同様です。なぜこれがSDKに組み込まれていて、DMAエラーを処理したり適切なコールバックを呼び出したりしないのでしょうか?今は、エラーがどのDMAにあるかを手作業で特定し、SDK外の特別な処理を呼ぶ方法を考えなければなりません。単にコールバックを呼んでもらうのではなく。 本番コードで使えるはずのSDKにしては、堅牢性の機能が欠けているように思えますし、多くの人はこれらのエラーがSDKによって処理されていると思い込んでいて、実際にはそうではないという事実を考えていないのだと思います。 -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK @nxp16様、 どのi.MX RTデバイスをお使いですか?DMA0とDMA1の話ですが、2つのDMAコントローラペリフェラルではなく、2つのDMAチャネルのことを指していますか? すべての i.MX RTデバイスに2つのeDMAコントローラーがあるわけではありません。例えば: i.MX RT1180には2つのeDMAコントローラが含まれています。スタートアップファイル(例:startup_mimxrt1189_cm33.c)には、DMA_ERROR_IRQHandlerとDMA4_ERROR_IRQHandlerの2つのDMAエラーハンドラがあります。 i.MX RT1050にはeDMAコントローラが1つしかありません。起動ファイル(例えば、startup_mimxrt1052.c)では、DMAエラーハンドラはDMA_ERROR_IRQHandlerという1つだけです。 一般的に、DMAエラーは比較的まれなイベントです。ハードウェアアーキテクチャの観点からは、チャネルエラーの状態はモジュールレベルのエラー要求に集約され、DMAエラー割り込みを引き起こします。したがって、ソフトウェアは各チャネルのエラーステータスレジスタ(例えばCHn_ES)を調べ、どの特定のチャネルがエラーを引き起こしたかを特定しなければなりません。 よろしくお願いいたします。 シェリー・チャン Re: IMXRT EDMA error IRQ handler is not implemented in the SDK すみません、チャネルのことを言いました。私はIMXRT1172を使用しています。 もし使っていた周辺機器に問題があった場合、DMAエラーは起こるのではないでしょうか?つまり、LPSPIとDMAを組み合わせた場合、SPIエラーが発生するとDMAエラーも発生するのではないでしょうか?そうでない場合、DMA使用時のSPIエラーはSPIエラー割り込みをトリガーしますか? ありがとうございます -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK @nxp16様、 いいえ。DMA使用中に周辺エラーが発生しても、必ずしもDMAコントローラ自体がエラーを報告するわけではありません。ほとんどの場合、SPIエラーとDMAエラーは2つの別々のステータスおよび割り込み機構で処理されます。 DMAは、DMA、バス、または転送層のエラーのみを報告します。LPSPIにおけるプロトコルレベルまたはFIFO関連のエラーは、LPSPIペリフェラル自身のステータスフラグやエラー割り込みを通じて処理されるべきです。DMAモードで動作させた場合でも、すべてのSPIエラーが自動的にDMAエラーに変換されるわけではありません。 よろしくお願いいたします。 シェリー・チャン Re: IMXRT EDMA error IRQ handler is not implemented in the SDK やはりそうだったか。その場合、SDKの転送APIはさらに堅牢性が低くなります。SDK外でペリフェラルやDMAエラーを処理しなければならない場合、デフォルトのIRQハンドラをやや巧妙にオーバーライドしたり、エラープロセッシング後もSDKハンドラーに呼び出すようにするなど、かなりの追加作業が必要です。これらの機能がSDKの転送APIに含まれていないのは非常に落胆します。 Re: IMXRT EDMA error IRQ handler is not implemented in the SDK @nxp16様、 ご懸念は理解できますし、SDKトランスファーAPIと別にペリフェラルエラーを扱うことで必要なアプリケーションレベルのコード量が増えることに同意します。ご意見ありがとうございます。皆さんのご意見はSDKチームにお伝えします。 よろしくお願いいたします。 シェリー・チャン Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 実際は、思っていたよりもひどい。EDMA LPSPI転送APIを使用すると、LPSPI_MasterTransferEDMAが呼び出す関数LPSPI_PrepareTransferEDMAがすべてのSPI割り込みを無効にするため、SPIエラーを捕捉できなくなります。そのため、エラー割り込みを呼び出し前に有効にすることは不可能で、再度無効化され、SPI EDMA転送がすでに進行中なので遅すぎます。これはこのAPIの重大なバグです。 -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK はい、今のところはそれが回避策として私が取らざるを得なかった方法です。しかし、SDKファイルの編集はあまり良い解決策ではありません。残念ながらSDKの更新時にファイルが変更される可能性があるからです。 ありがとうございます -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK @nxp16様、 ご指摘ありがとうございます。 LPSPI_PrepareTransferEDMA(LPSPI_Type *base)の実装を確認したところ、LPSPI_DisableInterrupts(base, (uint32_t)kLPSPI_AllInterruptEnable)が呼び出されていることが分かりました。 回避策として、このドライバのセクションを変更して、送信エラー割り込みや受信エラー割り込みを無効化しないようにすることも検討できます。つまり、 kLPSPI_AllInterruptEnable を無効にするのではなく、EDMA転送操作に必要な割り込みのみを無効にし、エラー割り込みは有効のままにする。 LPSPI_IER_TEIE_MASKを外してみてLPSPI_IER_REIE_MASKてみてください。
View full article
Question about C16 capacitor rating in MRF300AN 27MHz reference design Hello NXP Support Team, I am currently reviewing the MRF300AN 27MHz reference design and have a question regarding capacitor C16 on the output side. According to the BOM I have (e.g., from the Farnell datasheet), C16 is specified as a 39,000 pF (39 nF) / 50V chip capacitor (ATC part 200B393KT50XT). Given that the MRF300AN operates at a 50V drain voltage and the output stage handles high RF power (up to 300W+), I am concerned that a 50V-rated capacitor in this position might be insufficient for reliable long-term operation. My questions are: Is the 50V rating for C16 in the BOM correct, or could it be a typo? What is the exact function of C16 in this circuit? Is it part of the output matching network, a DC blocking capacitor, or a bypass/decoupling capacitor? If it is indeed a DC blocking or matching capacitor in the RF output path, wouldn't a higher voltage rating (e.g., 100V or higher) be more appropriate to handle voltage transients and standing waves? I would greatly appreciate your clarification on this matter. Thank you for your time and support. Best regards, Re: Question about C16 capacitor rating in MRF300AN 27MHz reference design Hello fengyuqi Good day! The 300W does not directly determine the voltage stress on a capacitor. The capacitor voltage rating must be compared against the actual RF voltage across that capacitor, not against the amplifier output power. C16 is not necessarily seeing the full RF output voltage. From the reference design BOM, C16 belongs to the supply decoupling / RF bypass network, not directly across the 50 Ω output connector I hope this information has helped you, please let me know if you need help with anything else. Have a great day and best of luck.
View full article
Imx6ull KSZ8041NL ethernet issue Hello There , To utilize dule ethernet for one of our potential project , We have connected 2 Ethernet phy with Imx6ull processor , One phy is KSZ8081 and one phy is KSZ8041 , below is our DTS configuration : &fec1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet1>; phy-mode = "rmii"; phy-handle = <&ethphy0>; phy-reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; phy-reset-duration = <26>; phy-reset-post-delay=<20>; phy-supply = <&reg_peri_3v3>; status = "okay"; }; &fec2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet2>; phy-mode = "rmii"; phy-handle = <&ethphy1>; phy-reset-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; //phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>; phy-reset-duration = <26>; phy-reset-post-delay=<20>; phy-supply = <&reg_peri_3v3>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy0: ethernet-phy@1 { reg = <1>; micrel,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET_REF>; clock-names = "rmii-ref"; }; ethphy1: ethernet-phy@3 { reg = <3>; micrel,led-mode = <1>; clocks = <&clks IMX6UL_CLK_ENET2_REF>; clock-names = "rmii-ref"; }; }; }; pinctrl_enet1: enet1grp { fsl,pins = < MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0 MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0 MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0 MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 >; }; pinctrl_enet2: enet2grp { fsl,pins = < MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0 MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0 MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0 MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0 MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0 MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031 >; }; Both The Ethernet Phys are getting detected in kernel logs and also when we connect ethernet  cable , link is also getting detected on both. but Ip is arriving on ethernet which is connected to KSZ8081 phy , the IP is not getting assigned with the Ethernet which is connected to KSZ8084NL. and there is rx errors are observed in KSZ8041NL Ethernet which is eth0 , below are the logs : root@sls-imx6ull14x14evk:~# ifconfig eth0      Link encap:Ethernet  HWaddr BA:9C:69:1F:76:3A           UP BROADCAST MULTICAST  MTU:1500  Metric:1           RX packets:0 errors:1065 dropped:0 overruns:0 frame:1065           TX packets:65 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:0 (0.0 B)  TX bytes:12024 (11.7 KiB) eth1      Link encap:Ethernet  HWaddr 42:19:11:7F:5E:89           inet addr:10.20.0.184  Bcast:10.20.1.255  Mask:255.255.254.0           inet6 addr: fe80::8248:9837:9647:2a00/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:18 errors:0 dropped:0 overruns:0 frame:0           TX packets:23 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:2494 (2.4 KiB)  TX bytes:3162 (3.0 KiB) lo        Link encap:Local Loopback           inet addr:127.0.0.1  Mask:255.0.0.0           inet6 addr: ::1/128 Scope:Host           UP LOOPBACK RUNNING  MTU:65536  Metric:1           RX packets:17 errors:0 dropped:0 overruns:0 frame:0           TX packets:17 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:2011 (1.9 KiB)  TX bytes:2011 (1.9 KiB)   root@sls-imx6ull14x14evk:~# ethtool eth0 Settings for eth0:         Supported ports: [ TP    MII ]         Supported link modes:   10baseT/Half 10baseT/Full                                 100baseT/Half 100baseT/Full         Supported pause frame use: Symmetric         Supports auto-negotiation: Yes         Supported FEC modes: Not reported         Advertised link modes:  10baseT/Half 10baseT/Full                                 100baseT/Half 100baseT/Full         Advertised pause frame use: Symmetric         Advertised auto-negotiation: Yes         Advertised FEC modes: Not reported         Link partner advertised link modes:  10baseT/Half 10baseT/Full                                              100baseT/Half 100baseT/Full         Link partner advertised pause frame use: No         Link partner advertised auto-negotiation: Yes         Link partner advertised FEC modes: Not reported         Speed: 100Mb/s         Duplex: Full         Auto-negotiation: on         Port: Twisted Pair         PHYAD: 3         Transceiver: external         MDI-X: Unknown         Supports Wake-on: g         Wake-on: d         Link detected: yes   We have also checked the clock which is 50MHz , which is generated properly and also coming into phy KSZ8041NL. In short 1 Ethernet with KSZ8081 is working properly but 2nd Ethernet not working with KSZ8041NL. Please suggest us solution. we have also attached screenshot of both Ethernet phy Hardware  for your reference . i.MX6 All i.MX6UL Re: Imx6ull KSZ8041NL ethernet issue Hello NXP Team , Is there any update for us for our asked query ?
View full article
关于 MRF300AN 27MHz 参考设计中 C16 电容额定值的问题 您好,NXP支持团队, 我目前正在审查 MRF300AN 27MHz 参考设计,对输出端的电容 C16 有一个疑问。 根据我手头的物料清单(例如,来自 Farnell 的数据手册),C16 被指定为 39,000 pF (39 nF) / 50V 的贴片电容(ATC 零件号 200B393KT50XT) 。鉴于 MRF300AN 的工作漏极电压为 50V,且输出级需处理高射频功率(高达 300W 以上),我担心在此位置使用 50V 额定值的电容可能不足以保证长期可靠运行。 我的问题是: 物料清单中 C16 的额定电压为 50V 是否正确,还是可能是笔误? 在这个电路中,C16 的具体作用是什么?它是输出匹配网络的一部分、直流阻隔电容,还是旁路/去耦电容? 如果它确实是射频输出路径中的直流阻隔或匹配电容,那么使用更高电压额定值(例如 100V 或更高)的电容来处理电压瞬变和驻波岂不是更合适? 非常感谢您能就此事作出澄清。感谢您的时间和支持。 顺祝商祺! Re: Question about C16 capacitor rating in MRF300AN 27MHz reference design 风雨绮你好 再会! 300W 并不能直接决定电容上的电压应力。 电容的额定电压必须与该电容两端的实际射频电压进行比较,而不是与放大器的输出功率进行比较。 C16 不一定能看到完整的射频输出电压。 根据参考设计物料清单,C16 属于电源去耦/射频旁路网络,而不是直接跨接在 50 Ω 输出连接器上。 希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。 祝你今天过得愉快,一切顺利。
View full article
i.MX8M Plus DDR4-3200 EVK Design file and DDR4 layout guide Hi , We want to design our product with i.MX8M Plus+DDR4.  Can NXP provide the design file(sch & .brd) of i.MX8M Pluse+DDR4-3200 and DDR4 layout giude doc to us? Re: i.MX8M Plus DDR4-3200 EVK Design file and DDR4 layout guide I am working on same approch.  FYI. The AI Robot Platform Based on i.MX 8M Plus  The "I-MX8MPLUS-ALROBOT-FORM" is DDR4 reference design.  You have to contact NXP to get access to those.  Re: i.MX8M Plus DDR4-3200 EVK Design file and DDR4 layout guide @seungyeon I already email and attach it to you, please have a check.
View full article
SDK 中未实现 IMXRT EDMA 错误 IRQ 处理程序。 您好, SDK 中的 IMXRT EDMA API 似乎能够正确处理“正常情况”中断。然而,似乎没有任何处理错误中断的机制。不仅如此,似乎所有 DMA 都只有一个全局的 DMA_ERROR_IRQHandler。因此,如果您同时使用 DMA0 和 DMA1,当一切正常时,DMA0/DMA1 IRQHandler 将被调用,SDK 可以区分哪个 DMA 收到了正常中断。但是,如果出现 DMA 错误,由于只有一个全局错误中断处理程序,因此没有简单的方法可以知道错误发生在哪个 DMA(0 或 1 或其他)上。 就像我之前关于 LPUART 错误 IRQ 处理的问题一样。为什么 SDK 没有内置处理 DMA 错误并调用相应回调的功能?现在我必须手动确定错误发生在哪个 DMA 上,并在 SDK 之外调用特殊处理,而不是让它为我调用回调。 对于一个本应在生产代码中使用的 SDK 来说,似乎缺少很多健壮性功能,我敢打赌大多数人只是假设这些错误是由 SDK 在底层处理的,而没有考虑到它们实际上并没有被处理。 -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 尊敬的@nxp16 , 您使用的是哪款 i.MX RT 设备?当您提到 DMA0 和 DMA1 时,您指的是两个 DMA 通道,还是两个 DMA 控制器外设? 并非所有 i.MX RT 设备都具有两个 eDMA 控制器。例如: i.MX RT1180 包含两个 eDMA 控制器。在启动文件(例如 startup_mimxrt1189_cm33.c)中,您可以找到两个 DMA 错误处理程序:DMA_ERROR_IRQHandler 和 DMA4_ERROR_IRQHandler。 i.MX RT1050 仅包含一个 eDMA 控制器。在启动文件(例如 startup_mimxrt1052.c)中,只有一个 DMA 错误处理程序:DMA_ERROR_IRQHandler。 一般来说,DMA 错误是相对不常发生的事件。从硬件架构的角度来看,通道错误状态被聚合为模块级错误请求,从而触发 DMA 错误中断。因此,该软件必须检查每个通道的错误状态寄存器(例如,CHn_ES),以确定哪个特定通道导致了错误。 顺祝商祺! 张雪莉 Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 抱歉,我指的是频道。我使用的是 IMXRT1172。 如果与之连接的外设出现问题,难道不会发生DMA错误吗?也就是说,如果是 LPSPI 和 DMA,那么任何 SPI 错误都会导致 DMA 错误吗?如果不是,那么在使用DMA时,SPI错误是否会触发SPI错误中断? 谢谢! -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 尊敬的@nxp16 , 不。在使用DMA时发生的外围设备错误并不一定意味着DMA控制器本身会报告错误。大多数情况下,SPI 错误和 DMA 错误由两个独立的状态和中断机制处理。 DMA 只报告 DMA 层、总线层或传输层错误。LPSPI 中的协议级或 FIFO 相关错误应通过 LPSPI 外设自身的状态标志和错误中断来处理。以 DMA 模式运行并不会自动将所有 SPI 错误转换为 DMA 错误。 顺祝商祺! 张雪莉 Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 我猜也是这样。在这种情况下,SDK 的传输 API 就更不可靠了。必须在 SDK 之外处理外围设备和 DMA 错误,这需要相当多的额外工作,包括对默认 IRQ 处理程序进行一些变通的覆盖,并确保它们在处理任何错误后仍然调用 SDK 处理程序。令人沮丧的是,这些内容并未包含在 SDK 传输 API 中。 Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 尊敬的@nxp16 , 我理解您的担忧,我也同意将外围错误状态的处理与 SDK 传输 API 分开处理可能会增加所需的应用程序级代码量。感谢您的反馈。我会将您的意见转达给SDK团队。 顺祝商祺! 张雪莉 Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 实际上,情况比我想象的还要糟糕。使用 EDMA LPSPI 传输 API 无法捕获 SPI 错误,因为 LPSPI_MasterTransferEDMA 调用的函数LPSPI_PrepareTransferEDMA会禁用所有 SPI 中断。因此,在调用它之前不可能启用错误中断,因为它会再次禁用它们,而之后就太晚了,因为 SPI EDMA 传输已经开始了。这是该API的一个重大漏洞。 -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 是的,这正是我目前不得不采取的权宜之计。然而,编辑 SDK 文件并不是一个好的解决方案,因为不幸的是,它们可能会随着 SDK 的更新而改变。 谢谢! -m Re: IMXRT EDMA error IRQ handler is not implemented in the SDK 尊敬的@nxp16 , 谢谢你指出这一点。 我检查了LPSPI_PrepareTransferEDMA(LPSPI_Type *base) 的实现,发现它调用了LPSPI_DisableInterrupts(base, (uint32_t)kLPSPI_AllInterruptEnable): 作为一种变通方法,您可以考虑修改驱动程序的这一部分,使其不禁用发送错误中断和接收错误中断。换句话说,不要禁用 kLPSPI_AllInterruptEnable ,而只需禁用 EDMA 传输操作所需的中断,同时保持错误中断启用即可。 您可以尝试移除LPSPI_IER_TEIE_MASK 和 LPSPI_IER_REIE_MASK。
View full article
MCAL-XDRC Configuration of S32K358 SWAP AB Please help me answer these three questions: 1. I currently need to use the SWAP function. In the XDRC memory configuration within the RM module, do I still need to define the flash B-block: 0x800000-0xbfffff? 2. Does the flash space 0x7D4000-0x7FFFFF occupied by HSE need to be deleted from the memory configuration? 3. I define core0 as the primary core, running the OS, and core2 as the secondary core, running algorithms. Then, I allocated CM7_0, CM7_1, GMAC, uSDHC, and eDMA in Domain_Assgnment_0; and allocated CM7_2 in Domain_Assgnment_1. Is this correct? In practical applications, can the unused master core be omitted from the configuration? Re: S32K358 SWAP AB的MCAL-XDRC配置 Hi @scott071209  1. The application or bootloader will need to: erase, program, validate and read details about the image in passive partition. That means passive partition should be also covered by XRDC. 2. In case of AB_SWAP firmware, XRDC is automatically configured during reset to protect HSE FW active flash area, HSE FW passive flash area, HSE FW data flash and HSE UTEST area. Descriptors 12-15 are used for this purpose and this configuration is locked, so it can’t be modified by user. Details can be found in HSE Firmware reference manual in section: “14.6.3.3 Default MRC 0 configuration (AB_SWAP)” So, you don’t need to cover HSE resources by your own XRDC configuration. 3. Yes, you can use such setup. If a master is not used, you can omit it in the configuration. But if you use HSE, you will need to configure also domain 3 for HSE. This is not to protect HSE resources, this is to give access rights to HSE to access user data to be able to perform cryptographic operation. S32K358 has four domain and HSE is always assigned to highest available domain. In case of S32K358, it’s domain 3. It’s hardwired, this cannot be changed. In newer version of RTD, HSE master is not even available in the list in XRDC configuration because it can’t be reconfigured. If you want to have only HSE in domain 3, you do not need to assign any master to this domain. HSE is already there automatically. In older RTD versions, it was possible to assign HSE to other domains but such configuration had no effect. Therefore it was removed. Regards, Lukas
View full article
S32K358 + FreeRTOS: Random HardFault during PendSV_Handler Hi Team, I am facing a random HardFault issue on an S32K358 running FreeRTOS. The application runs normally for a long duration and then suddenly hangs. After the system stops executing, the Software Watchdog (SWT) is not serviced and eventually resets the controller. The failure is not immediate—it occurs after approximately 1 to 2 hours of continuous execution When halted after the failure, the call stack shows: PendSV_Handler() ↓ HardFault_Handler() Register values: LR = 0xA5A5A5A5 PC = 0x00407BD9 LR = 0xA5A5A5A5 looks like a memory initialization pattern rather than a valid return address. Other registers: R0 = 0x204011A8 R3 = 0x2040012C R12 = 0x20400010 Any suggestions or debugging recommendations would be greatly appreciated. Re: S32K358 + FreeRTOS: Random HardFault during PendSV_Handler Hi @nirmal_masilamani, It looks like the task context saved during the FreeRTOS context switch has been corrupted. PendSV is used by FreeRTOS for context switching, therefore, if the HardFault occurs inside PendSV_Handler(), it often means the scheduler is attempting to restore an invalid task context. One possible root cause is a task stack overflow. I would recommend increasing the stack size of the tasks and enabling FreeRTOS stack overflow detection: configCHECK_FOR_STACK_OVERFLOW Implement: vApplicationStackOverflowHook(). Additionally, you can periodically monitor the remaining stack space of each task using uxTaskGetStackHighWaterMark(). This can help identify tasks that are running close to their stack limits before the fault occurs. Regards, Daniel
View full article