Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
S32K324上のFlexIOを使用したSENT TX こんにちは、皆さん S32K324 に SENT プロトコルを実装しようとしています。IDE 内に FlexIO 上の SENT RX の例があります。 しかし、SENT TX が表示されません。これにはFlexIOを使用したいと思います。このトピックに関するサンプルプロジェクトはありますか?よろしくお願いします。 よろしくお願いいたします。 Re: SENT TX using FlexIO on S32K324 こんにちは@ilx123さん、 通常、SENT 信号は外部センサによって送信され、MCU によって受信されますが、これらが当社が提供する唯一のデモです。ただし、SPC プロトコルを実装する場合は、eMIOS コンポーネントをCAN。コミュニティ関連の投稿をいくつか紹介します。 S32K344 を使用した SPC および SENT プロトコル - NXP コミュニティ FLEXIOまたはEMIOSを使用したSENT TXエミュレーション - NXPコミュニティ よろしくお願いします、 ジュリアン
查看全文
在 VIV_VIDEO_EVENT_SET_CROP 或其他 mmap 操作中出现 isp_media_server 段故障 我目前正在使用恩智浦 IMX8MPLUS,并尝试为 MT9V024 摄像头传感器启用 ISP。 我目前的设置如下: 带有 IMAGE_INSTALL:append =" kernel-module-isp-vvcam gstreamer1.0 gstreamer1.0-plugins-base 的 Yocto 核心镜像gstreamer1.0-plugins-goodgstreamer1.0-plugins-badv4l-utils isp-imx libtinyxml2 media-ctl fmt". Linux 5.15.71 Kirkstone 是一个无头版本 在外部,我版本: - isp-imx-4.2.2.20.0 - isp-vvcam (lf-5.15.y_2.2.0) 然后我将生成的文件发送到板。 我目前的瓶颈是,当我运行 gst-用上市,不用发布-1.0-v v4l2src 设备=/dev/video0!"video/x-raw,format=YUY2,width=752,height=480" !队伍视频转换 !theoraenc!oggmux !filesink location=test_image.ogv isp_media_server 在 VIV_VIDEO_EVENT_SET_CROP 情况下崩溃。更具体地说,它在这里崩溃了: ---(源 isp-imx-4.2.2.20.0/mediacontrol/daemon/V4l2Event.cpp)-- case VIV_VIDEO_EVENT_SET_CROP: { ALOGI("VIV_VIDEO_EVENT_SET_CROP"); // 我添加这个是为了调试。 如果 (bufMap.find(event.addr)== bufMap.end()){ bufMap[event.addr]= ::mmap(NULL, VIV_JSON_BUFFER_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, eventDevice, event.addr); } struct viv_rect *rect = (struct viv_rect *)bufMap[event.addr];// gdb 指向这一行。 // 这里的失败很奇怪,因为 v4l2-ctl --all -d /dev/video0 运行良好(查看日志)。 ----- --- 当我执行任何其他操作,如 v4l2-ctl -d 0 -c viv_ext_ctrl='{ : ; :false}' 时,它也会崩溃。 为了测试,我对代码进行了大量修改: case VIV_VIDEO_EVENT_EXTCTRL:{ ALOGI("VIV_VIDEO_EVENT_EXTCTRL: Event received."); ALOGI("VIV_VIDEO_EVENT_EXTCTRL: event.addr = 0x%llx", (long long)event.addr); ALOGI("VIV_VIDEO_EVENT_EXTCTRL: eventDevice =%d", eventDevice); ALOGI("VIV_VIDEO_EVENT_EXTCTRL:VIV_JSON_BUFFER_SIZE =%zu", (size_t)VIV_JSON_BUFFER_SIZE); { struct stat st; i f (fstat (eventDevice, & st) == -1) { perror (" fstat 失败 "); } else {p rintf (" EventDevice 大小:%ld 字节\n ",(长度)st.st_size); printf("Trying to mmap at offset:%lld\n", (long long)event.addr); } } { struct v4l2_requestbuffers req = {0}; req.count = 1; req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; req.memory = V4L2_MEMORY_MMAP; 如果 (ioctl(eventDevice, VIDIOC_REQBUFS,&req) == -1) { ALOGE("VIDIOC_REQBUFS failed:%s", strerror(errno)); } else { ALOGI("Requested%u buffers, got%u", req.count, req.count); } struct v4l2_buffer buf = {0}; buf.index = 0; buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_MMAP; if (ioctl(eventDevice, VIDIOC_QUERYBUF,&buf) == 0) { // if request buffer succeded ALOGI("Buffer offset from VIDIOC_QUERYBUF: 0x%x", buf.m.offset); } if (event.addr% getpagesize() != 0) { ALOGE("event.addr is not page-aligned:0x%llx", (long long)event.addr); break; } if (fcntl(eventDevice, F_GETFD) == -1){ ALOGI("Invalid File descriptor"); } void *test_map = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, eventDevice, 0); if (test_map == MAP_FAILED) { ALOGE("Test mmap failed with fd=%d, errno=%d (%s)", eventDevice, errno, strerror(errno)); } else { ALOGI("Test mmap succeeded.地址:%p", test_map); munmap(test_map, 4096); } long page_size = getpagesize (); off_t small_offset = page_size;//尝试偏移量 4096 size_t small_size = page_size;//4096 字节 void* second_test_map = mmap(NULL, small_size, PROT_READ | PROT_WRITE, MAP_SHARED, eventDevice, small_offset); if (second_test_map == MAP_FAILED) { ALOGE("第二次测试 mmap 失败:fd=%d, offset=0x%llx, errno=%d (%s)", eventDevice, (long long)small_offset, errno, strerror(errno)); } else { ALOGI("Second test mmap succeeded.地址:%p (offset=0x%llx)", second_test_map, (long long)small_offset); munmap(second_test_map, small_size); } } void *mapped_json_buffer = NULL; // 为毫米映射结果使用临时指针 ALOGI("Calling mmap(NULL,%u, PROT_READ|PROT_WRITE, MAP_SHARED,%d, 0x%llx)", VIV_JSON_BUFFER_SIZE, eventDevice, (long long)event.addr); // 检查地址是否已经映射到 bufMap auto it = bufMap.find(event.addr); if (it == bufMap.end()){ ALOGI("VIV_VIDEO_EVENT_EXTCTRL:在 bufMap 中找不到 event.addr。Attempting mmap..."); // Not found, attempt to mmap mapped_json_buffer = ::mmap(NULL, VIV_JSON_BUFFER_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, eventDevice, event.addr); if (mapped_json_buffer == MAP_FAILED) { // CRITICAL ERROR: mmap failed ALOGE("VIV_VIDEO_EVENT_EXTCTRL:FAILED to mmap memory for event.addr=0x%llx、fd=%d,size=%zu。errno=%d (%s)", (long long)event.addr、eventDevice, (size_t)VIV_JSON_BUFFER_SIZE, errno, strerror(errno)); } // mmap 成功,存储在 bufMap ALOGI("VIV_VIDEO_EVENT_EXTCTRL: mmap 成功。映射地址:0x%p", mapped_json_buffer); bufMap[event.addr].= mapped_json_buffer; } else { // 已经映射,从 bufMap 获取 ALOGI("VIV_VIDEO_EVENT_EXTCTRL: event.addr found in bufMap." ); mapped_json_buffer = it->second; } ALOGI("VIV_VIDEO_EVENT_EXTCTRL: Mapped buffer pointer: 0x%p", mapped_json_buffer); // 在使用指针之前再次检查指针是否有效 if (mapped_json_buffer == MAP_FAILED || mapped_json_buffer == NULL) { ALOGE("VIV_VIDEO_EVENT_EXTCTRL:在 mmap/lookup 之后,映射缓冲区无效 (0x%p)。跳过 JSON 解析。" 、mapped_json_buffer); } Json:: Reader reader; //现在,安全地使用 mapped_json_buffer STD::string str = (char *)mapped_json_buffer; //此行崩溃 --- 第二张测试图失败,这让我觉得是在试图映射一个空白空间。 -------- 这是我的启动序列 cd c d build-out/sdk 导出 ld_library_path=$pwd:$LD_LIBRARY_PATH 导出 GST_DEBUG=4 systemctl 停止 imx8-isp.service export ISP_LOG_LEVEL=8 rmmod vvcam-video rmmod vvcam-dwe rmmod vvcam-isp rmmod imx8-media-dev.ko insmod mt9v024.ko insmod vvcam-isp.ko insmod vvcam-dwe.ko insmod vvcam-video.ko # 这将把先前的驱动程序设置为媒体 insmod imx8-media-dev.ko ./isp_media_server摄像机 0& 然后使用之前提到的命令(gts 或 v4l2) --- 我几乎没有修改 OS08a20_8M_10_1080p_hdr.xml 和 sensor_dwe_os08a20_1080P_config.json,因此我得到了我的自定义文件,但我认为这应该足以获得图像,即使质量不好,我将分辨率改为 720x480p, 文件概览: root @imx8mp:~/版本-out/sdk# ls MT9V024_8M_10_480p_linear.xml libadpcc.so libcam_device.so libhal.so libsom_ctrl.so OS08a20_8M_10_1080p_hdr.xml libadpf.so libcam_engine.so libi2c_drv.so libversion.so OS08a20_8M_10_1080p_linear.xml libaec.so libcameric_drv.so libibd.so libvom_ctrl.so OS08a20_8M_10_4k_hdr.xml libaee.so libcameric_reg_drv.so libisi.so libvvdisplay_shared.so OS08a20_8M_10_4k_linear.xml libaf.so libcim_ctrl.so libjsoncpp.so mt9v024.drv Sensor0_Entry.cfg libaflt.so libcommon.so libjsoncpp.so.1.9.0 mt9v024.ko Sensor0_Entry_mt9v024.cfg libahdr.so libcppnetlib-client-connections.so libjsoncpp.so.21 os08a20.drv Sensor0_Entry_os08a20.cfg libappshell_ebase.so libcppnetlib-client-connections.so.0 libmedia_server.so os08a20.ko Sensor1_Entry.cfg libappshell_hal.so libcppnetlib-client-connections.so.0.13.0 libmim_ctrl.so ov2775.ko Sensor1_Entry_mt9v024.cfg libappshell_ibd.so libcppnetlib-server-parsers.so libmipi_drv.so run.sh Sensor1_Entry_os08a20.cfg libappshell_oslayer.so libcppnetlib-server-parsers.so.0 libmom_ctrl.so start_isp.sh VSI_Monitor.cfg libavs.so libcppnetlib-server-parsers.so.0.13.0 libmt9v024.so test_image.ogv basler-camera-driver-vvcam.ko libawb.so libcppnetlib-uri.so libmt9v024.so.1 video_test dewarp_config libawdr3.so libcppnetlib-uri.so.0 libmt9v024.so.1.0.0 vvcam-dwe.ko imx8-media-dev.ko libbase64.so libcppnetlib-uri.so.0.13.0 libos08a20.so vvcam-isp.ko isp_media_server libbufferpool.so libdewarp_hal.so libos08a20.so.1 vvcam-video.ko liba2dnr.so libbufsync_ctrl.so libebase.so libos08a20.so.1.0.0 vvext liba3dnr.so libcam_calibdb.so libfpga.so liboslayer.so \root@imx8mp:~/版本-out/sdk# ls dewarp_config/ sensor_dwe_bypass_480P_config.json sensor_dwe_os08a20_1080P_config.json sensor_dwe_os08a20_4K_config.json root @imx8mp:~/版本-out/sdk# cat dewarp_config/sensor_dwe_bypass_480p_config.json { " dewarpConfigArray":[ { " source_image":{ " width": 752, " height": 480 }、 "dewarpType" :"LENS_CORRECTION, FISHEYE_EXPAND, SPLIT_SCREEN", " dewarpType" :"fisheye_dewarp" 、 "标度" :{ " roix": 0, " roiy": 0, " factor": 1.0 }、 "split" :{ " horizon_line": 240, " vertical_line_up": 367, " vertical_line_down" :367 }、 "bypass": true, " hflip": false, " vflip": false、 "camera_matrix": [ 3.9177894938743270e+003, 0., 1.9716642989691159e+003, 0.,3.9177894938743270e+003、1.1024451486734267e+003, 0., 0., 1. ], " distortion_coeff": [ -1.3019040624278982e-001, 2.2621318183135611e-001,1.2109476203374344e-003, 9.4317229120640680e-004,-7.1053958306120402e-001 ], " perspective": [1.0, 0, 0, 0, 1, 0, 0, 1]. } ] } root@imx8mp:~/版本-out/sdk# cat Sensor0_Entry.cfg name="mt9v024" drv = "mt9v024.drv" 模式= 0 [mode.0] xml ="MT9V024_8M_10_480p_linear.xml" dwe = " dewarp_config/Sensor_dwe_bypass_480p_config.json " root @imx8mp:~/版本-out/sdk# --- 这就是我的媒体的样子(我记得我试过另一个 isp 项目,我也有 media1,但那是在 yocto scarthgap 中,所以我不知道这里是否应该一样): root @imx8mpmk5:~/build-out/sdk# media-ctl-p-d /dev/media0 媒体控制器 API 版本 5.15.71 媒体设备信息 驱动程序 mxc-md 型号 FSL 捕获媒体设备 串行 总线信息 硬件修订版 0 x0 驱动程序版本 5.15.71 设备拓扑 -实体 1:mxc-mipi-csi2.0(8 个焊盘,1 个链接) 类型节点子类型 V4L 标志 0 设备节点名称 /dev/v4l-subdev2 pad0:Sink <-" mt9v024 2-0048 ": 0 [启用,不可变] pad1:Sink pad3:Sink p ad4:来源 pad5:来源 pad6:来源 pad7:来源 pad7:来源 pad7:来源 pad7:来源 pad7:来源 pad7 -实体 10:mt9v024 2-0048(1 个焊盘,1 个链接) 类型 V4L2 子开发子类型传感器标志 0 设备节点名称 /dev/v4l-subdev3 pad0:来源 [fmt: unknown/0x0]-> " mxc-mipi-cs i2.0 ": 0 [启用,不可变] root @imx8mpm:~/build-out/sdk# media-ctl-p-d /dev/media1 无法枚举 /dev/media1 (-2) ---- 我希望有人能提示我如何进一步调试这个问题,或者指出哪个元器件正在生成这个问题。 Re: isp_media_server segmentation fault at VIV_VIDEO_EVENT_SET_CROP or other mmap operations 嘿,我认为 isp-imx-4.2.2.20.0 没有上述迁移问题。 我使用以下方法修复了它: ./build-all-isp.sh 版本部分 V4L2 而不 是 /build-all-isp.sh 版本部分 我正在阅读 yocto scarthgap 的手册,默认模式是 V4L2,所以我是在原生模式而不是 V4L2 下构建,因为在 isp-imx-4.2.2.20.0 中,默认模式是 " 原生传感器 "。 Re: isp_media_server segmentation fault at VIV_VIDEO_EVENT_SET_CROP or other mmap operations Hello 与https://docs.nxp.com/bundle/AN13712/page/topics/start_isp_media_server.html 将提取的 isp-imx保留在你的资源库中,用于定制驱动程序的开发。然而,使用差异工具时,并没有发现.so的差异文件从isp-imx-4.2.2.6.0迁移到 isp-imx-4.2.2.11.0 的过程中。因此,他们保持与isp-imx-4.2.2.6.0相同,并面临与IMX8M-Plus 相机集成和使用 ISP 中所述相同的问题。 此致
查看全文
S32G3 PFE 外部时间戳模式 你好 我正在开发 S32G-VNP-RDB3 板,我想将其配置为 pfe1 和 pfe2 接口上的 PTP 边界时钟。 运行 `ptp4l -H -i pfe1 -i pfe2 -m` (使用 BSP44.0)就会出现这个错误: ptp4l[2178.575]: selected /dev/ptp2 as PTP clock ptp4l[2178.576]: port 2 (pfe2): PHC device mismatch ptp4l[2178.576]: port 2 (pfe2): /dev/ptp2 requested, ptp3 attached ptp4l[2178.576]: failed to open port pfe2 failed to create a clock 这没有问题,因为 ptp4l 要求接口使用相同的硬件时钟。S32G_PFE_LNX_DRV_UM 第 2.3.1.2 节解释了时钟树的配置,即"EMAC0 是时间源,为 GMAC、EMAC1 和 EMAC2" 供电(图中虚线)。   要应用此配置(如本章所述),我将三台设备(使用 yocto 构建映像时)修改如下: diff --git a/image/s32g-pfe.dtsi b/image/s32g-pfe-new.dtsi index 94f886b..0a6ba1c 100644 --- a/arch/arm64/boot/dts/freescale/s32g-pfe.dtsi +++ b/arch/arm64/boot/dts/freescale/s32g-pfe.dtsi @@ -53,6 +53,7 @@ "pfe-shared-pool", "pfe-bdr-pool"; nxp,fw-class-name = "s32g_pfe_class.fw"; nxp,fw-util-name = "s32g_pfe_util.fw"; + nxp,pfeng-emac-ts-ext-modes = , ; nxp,pfeng-ihc-channel = ; status = "disabled"; @@ -175,4 +176,3 @@ }; }; }; - 在引导日志中,我看到了这个: [ 8.716896] pfeng 46000000.pfe pfe1 (uninitialized): Subscribe to HIF1 [ 8.723466] pfeng 46000000.pfe pfe1 (uninitialized): Host LLTX disabled [ 8.730319] pfeng 46000000.pfe pfe1 (uninitialized): Enable HIF1 [ 8.736399] pfeng 46000000.pfe pfe1 (uninitialized): setting MAC addr: 00:04:9f:be:ef:01 [ 8.744584] pfeng 46000000.pfe pfe1 (uninitialized): PTP HW addend 0x80000000, max_adj configured to 46566128 ppb [ 8.754886] pfeng 46000000.pfe: IEEE1588: Using external timestamp input [ 8.761903] pfeng 46000000.pfe pfe1 (uninitialized): Registered PTP HW clock successfully on EMAC1 [ 8.771626] pfeng 46000000.pfe pfe1: registered [ 8.776283] pfeng 46000000.pfe pfe2 (uninitialized): Subscribe to HIF2 [ 8.782837] pfeng 46000000.pfe pfe2 (uninitialized): Host LLTX disabled [ 8.789684] pfeng 46000000.pfe pfe2 (uninitialized): Enable HIF2 [ 8.795771] pfeng 46000000.pfe pfe2 (uninitialized): setting MAC addr: 00:04:9f:be:ef:02 [ 8.803945] pfeng 46000000.pfe pfe2 (uninitialized): PTP HW addend 0x80000000, max_adj configured to 46566128 ppb [ 8.814257] pfeng 46000000.pfe: IEEE1588: Using external timestamp input [ 8.821221] pfeng 46000000.pfe pfe2 (uninitialized): Registered PTP HW clock successfully on EMAC2 [ 8.830823] pfeng 46000000.pfe pfe2: registered 但是,`ethtool` 仍然为每个 pfe 接口报告不同的 ptp 硬件时钟: root@s32g399ardb3:~# ethtool -T pfe0 ... PTP Hardware Clock: 1 ... root@s32g399ardb3:~# ethtool -T pfe1 ... PTP Hardware Clock: 2 ... root@s32g399ardb3:~# ethtool -T pfe2 ... PTP Hardware Clock: 3 ... 我从 `ptp4l -H -i pfe1 -i pfe2 -m` 中得到了相同的输出结果。 我在配置中遗漏了什么?pfe 固件中是否有需要重新编译的地方? Re: S32G3 PFE External Timestamp Mode 你好,@NidasioAlberto、 太好了,这正是我得出的结论。 如果您需要更多支持,请告诉我,我会尽最大努力帮助您。 鉴于这篇文章的长度,如果你需要关注这个话题,请创建一个新帖子,你可以参考这篇文章来跟踪上下文。 谢谢! Re: S32G3 PFE External Timestamp Mode 谢谢@alejandro_e,我会尝试修补 PFE 驱动程序。 Re: S32G3 PFE External Timestamp Mode 你好,@NidasioAlberto、 我的理解是,ethtool输出中的时钟数是 “虚拟设备” 的ID,不一定反映模块的内部配置。 对于每台设备,都会注册不同的时钟设备,它发生在这里 linu x-pfeng/pfeng-ptp.c #L247 例如,使用基本 BSP44 映像,您可以看到所有 PFE_EMAC 实例都注册了 PTP 时钟: root@s32g399ardb3:~# dmesg | grep "Registered PTP HW clock successfully on EMAC" [ 9.525257] pfeng 46000000.pfe pfe0 (uninitialized): Registered PTP HW clock successfully on EMAC0 [ 9.593027] pfeng 46000000.pfe pfe1 (uninitialized): Registered PTP HW clock successfully on EMAC1 [ 9.653784] pfeng 46000000.pfe pfe2 (uninitialized): Registered PTP HW clock successfully on EMAC2 在linux-pfeng/pfeng-netif.c#L1544 中,每个接口的时钟寄存器过程都会重复进行。 您可以修改源代码,使所有接口使用相同的虚拟时钟。这与我之前分享的信息有关: 如果所有 PFE_EMAC 接口都注册了相同的时钟,那么就可以对所有感兴趣的接口使用一个 ptp4l 实例。 有关详细信息,您可以使用以下命令: root@s32g399ardb3:~# ls -l /sys/class/ptp/ total 0 lrwxrwxrwx 1 root root 0 Oct 9 15:51 ptp0 -> ../../devices/platform/soc/46000000.pfe/ptp/ptp0 lrwxrwxrwx 1 root root 0 Oct 9 15:52 ptp1 -> ../../devices/platform/soc/46000000.pfe/ptp/ptp1 lrwxrwxrwx 1 root root 0 Oct 9 15:52 ptp2 -> ../../devices/platform/soc/46000000.pfe/ptp/ptp2 lrwxrwxrwx 1 root root 0 Oct 9 15:59 ptp3 -> ../../devices/platform/soc/4033c000.ethernet/ptp/ptp3 root@s32g399ardb3:~# ls /sys/class/ptp/ ptp0 ptp1 ptp2 ptp3 root@s32g399ardb3:~# ls /sys/class/ptp/ptp0/ clock_name dev device max_adjustment max_vclocks n_alarms n_external_timestamps n_periodic_outputs n_programmable_pins n_vclocks power pps_available subsystem uevent root@s32g399ardb3:~# cat /sys/class/ptp/ptp0/clock_name pfeng ptp root@s32g399ardb3:~# cat /sys/class/ptp/ptp0/dev 251:0 root@s32g399ardb3:~# cat /sys/class/ptp/ptp0/max_vclocks 20 最后一部分与以下结构相匹配linux/include/linux/ptp_clock_kernel.h#L166。 如果这些信息对您有帮助,请告诉我 Re: S32G3 PFE External Timestamp Mode 感谢@alejandro_e这么快回复我。 我理解内部团队的意思。 我不明白的是,为什么在为 pfe1 和 pfe2 配置"外部时间戳模式" 时,与 pfe1 和 pfe2 相关的硬件时钟与 pfe0 不一样,而仍然是各自独立的时钟。我指的是 pfe 驱动程序向 Linux 以及 ptp4l 公开的内容。 我所期望的是,不要再看到这些了: root@s32g399ardb3:~# ethtool -T pfe0 ... PTP Hardware Clock: 1 ... root@s32g399ardb3:~# ethtool -T pfe1 ... PTP Hardware Clock: 2 ... root@s32g399ardb3:~# ethtool -T pfe2 ... PTP Hardware Clock: 3 ... 我看到了这个: root@s32g399ardb3:~# ethtool -T pfe0 ... PTP Hardware Clock: 1 ... root@s32g399ardb3:~# ethtool -T pfe1 ... PTP Hardware Clock: 1 ... root@s32g399ardb3:~# ethtool -T pfe2 ... PTP Hardware Clock: 1 ...  Re: S32G3 PFE External Timestamp Mode 你好,@NidasioAlberto、 我从内部团队收到了以下反馈意见: ” 如果 PFE_EMAC1 和 PFE_EMAC2 共享来自 PFE_EMAC0 的时间戳,则不支持调整 PFE_EMAC1 和 PFE_EMAC2 的 PTP 时间,可以认为 PTP 时间寄存器以只读模式工作。并反映 PFE_EMAC0 的 PTP 时间。在这种情况下,为了同步时间,应使用 PFE_EMAC0。 “ 如果这些信息对您的问题有帮助,请告诉我 Re: S32G3 PFE External Timestamp Mode 感谢@alejandro_e的跟进和将问题升级。我会等待反馈的。 Re: S32G3 PFE External Timestamp Mode 你好@NidasioAlberto 您在时钟方面遇到的问题,即使用"外部时间戳模式" 和使用 ptp4l 获得错误配置的问题,不在我的专业范围之内。我将与内部团队联系,以便在此问题上获得更好的支持。这可能需要一些时间,感谢您的耐心等待。 关于 ptp4l 文档,请查看以下内容: 第20章 使用 ptp4l 配置 PTP | 系统管理员指南 | Red Hat Enterprise Linux | 7 | Red Hat 文档 不过,这与恩智浦不提供的 ptp4l 程序有关,因此除了我们目前提供的支持外,我们无法提供更多支持。不便之处,敬请原谅。 关于本回复的第一个主题,我会给您回复。 Re: S32G3 PFE External Timestamp Mode 从GitHub 上的 PFE 驱动程序软件仓库中,我看到管理外部时间戳模式的代码是由@jpetrous 提交的,也许他能帮上忙 Re: S32G3 PFE External Timestamp Mode 通过运行两个独立的 ptp4l 实例(使用 `-s` 选项更能启用客户端模式),两个接口可以同时成为客户端。在这种情况下,两个接口的外设硬件时钟同步后,phc2sys 应使用哪一个来同步系统时钟? 我想实现的是,在多个端口上运行一个 ptp4l 实例,同步一个硬件时钟。我想实现一个边界时钟,它在一个端口上与上游主端口同步,并在其他端口上作为主端口提供自己的时钟。 ptp4l 可在多个接口上运行。LinuxPTP 文档是这么说的,而且我也用 SJA1110 交换机实现了我想做的事情。我的做法是启用 SJA 的 DSA 驱动程序,并运行 `ptp4l -i p2 -i p3 -2 -m`。在 linux 中,DSA 驱动程序暴露了交换机接口,它们具有相同的硬件时钟(ethtool 也报告了这一点,显示时钟为 4)。由于这两个端口具有相同的硬件时钟,ptp4l 可以同时使用它们。在这个配置中,我看到ptp4l 通过两个接口中的一个选择一个主控程序,如果该主控程序失效,则从另一个接口选择新的主控程序。如果BMCA算法选择这样做,那么板本身就可以成为主板。有了这个,我还可以运行 `phc2sys -a -rr -m` 来自动将系统时钟同步到硬件时钟(如果板是从机),或者如果它充当特级主时钟,则硬件时钟与系统时钟同步。 由于我为 pfe1 和 pfe2 启用了"外部时间戳模式" (如我第一篇文章所述),因此 pfe1 和 pfe2 的硬件时钟由 pfe0 的硬件时钟产生。通过运行您提供的两个ptp4l 实例(仅客户端模式),当ptp4l 需要调整硬件时钟时,会出现错误。 root@s32g399ardb3:~# ptp4l -i pfe2 -2 -m ptp4l[72513.760]: selected /dev/ptp3 as PTP clock ptp4l[72513.796]: port 1 (pfe2): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[72513.796]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[72513.796]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[72514.342]: port 1 (pfe2): new foreign master 00049f.fffe.096f15-1 ptp4l[72518.342]: selected best master clock 00049f.fffe.096f15 ptp4l[72518.343]: port 1 (pfe2): LISTENING to UNCALIBRATED on RS_SLAVE ptp4l[72520.342]: master offset -1593121442 s0 freq +227123 path delay 788 ptp4l[72521.349]: failed to adjust the clock: Operation not supported ptp4l[72522.342]: master offset -1593112737 s0 freq +231478 path delay -211 ptp4l[72523.349]: failed to adjust the clock: Operation not supported 这确实是有感知,因为如果我告诉板 pfe1 和 pfe2 的硬件时钟源自 pfe0,那么我就无法修改它们。 我的问题是"外部时间戳模式" 启用 pfe1 和 pfe2 后,为什么在 Linux 中 pfe1 和 pfe2 外设与硬件时钟 1 无关,而是与它们的时钟(分别为 2 和 3)有关。我的意思是,在 SJA1110 的 DSA 驱动程序中,不同的接口与相同的硬件时钟(本例中为 `/dev/ptp4`)相关。详情请参阅我的第一个帖子。那么,这是一个错误,还是我需要配置其他东西?也许我缺少的设备树中还有其他东西要修改? 是否也可以参考一些文档?比如,如果 ptp4l 不支持多端口,我在哪里可以找到这方面的记录? 另外,非常感谢@alejandro_e的帮助。 Re: S32G3 PFE External Timestamp Mode 你好,@NidasioAlberto、 谢谢你的澄清,我没有正确理解你的问题。 为方便起见,我在下面的示例中使用了 end0 和 pfe2,但使用 pfe1 和 pfe2 也能达到同样的效果。 每条 ptp4l 命令只能支持一个接口,因此需要运行两条命令,具体方法如下: ptp4l -2 -H -i pfe2 -s -m > /var/log/ptp4l_pfe2.log & ptp4l -2 -H -i end0 -s -m > /var/log/ptp4l_end0.log & 每条命令末尾的&将把每条命令的执行发送到后台,因此你将获得终端的控制权。输出结果将保存在每条命令中指定的文件中,文件名可以随意命名,我选择这个名字是为了方便。 例如: s32g399ardb3 login: root root@s32g399ardb3:~# ip addr add 192.168.0.131/24 dev pfe2 root@s32g399ardb3:~# ip addr add 192.168.0.130/24 dev end0 root@s32g399ardb3:~# ptp4l -2 -H -i pfe2 -s -m > /var/log/ptp4l_pfe2.log & ptp4l -2 -H -i end0 -s -m > /var/log/ptp4l_end0.log & [1] 455 [2] 456 root@s32g399ardb3:~# jobs [1]- Running ptp4l -2 -H -i pfe2 -s -m > /var/log/ptp4l_pfe2.log & [2]+ Running ptp4l -2 -H -i end0 -s -m > /var/log/ptp4l_end0.log & root@s32g399ardb3:~# cat /var/log/ptp4l_pfe2.log ptp4l[79.716]: selected /dev/ptp2 as PTP clock ptp4l[79.744]: port 1 (pfe2): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[79.744]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[79.745]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[85.948]: selected local clock 00049f.fffe.beef02 as best master root@s32g399ardb3:~# cat /var/log/ptp4l_end0.log ptp4l[79.716]: selected /dev/ptp3 as PTP clock ptp4l[79.760]: port 1 (end0): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[79.760]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[79.760]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[85.911]: selected local clock b2ecbb.fffe.ef0375 as best master root@s32g399ardb3:~# 首先,我为每个接口分配了一个 IP,然后为每个接口调用了 ptp4l,最后在终端上显示了日志文件的内容。 为此,我将设备同时连接到 P3B(PFE2)和 P3A(GMAC0),否则可能会出现一些错误日志。 请告诉我这是否解决了你的问题。 Re: S32G3 PFE External Timestamp Mode 感谢@alejandro_e 的回答,但我的问题仍然存在。我试着进一步解释一下。 S32G3 的 PFE 外设有 3 个接口,一个连接到 SJA1110 交换机,另外两个公开在板上(图中的 PFE_MAC0 和 PFE_MAC1)。 我的目标应用程序包括通过两个接口将客户端连接到板,并通过PTP与它们同步。因此,我需要 ptp4l 同时运行两个接口,而不是只分别运行 pfe1 或 pfe2。 从ptp4l 工具的 LinuxPTP 文档中,如果我想使用硬件时间戳,我读到了这一点。 由 -i 选项和配置文件指定的所有端口必须连接到同一个 PTP 硬件时钟 (PHC)。 因此,出于这个原因,我需要配置板,使两个接口使用相同的硬件时钟。 Re: S32G3 PFE External Timestamp Mode 你好,@NidasioAlberto、 感谢您与我们联系。我完成了 BSP44 用户指南中描述的步骤,我能够毫无问题地配置 PTP 时间戳,我使用了预编译的映像,它应该与 yocto 版本相同。虽然命令语法不同,但我使用了 ptp4l -2 -H -i end0 -m -s 输出结果如下 root@s32g399ardb3:~# ptp4l -2 -H -i pfe2 -m -s ptp4l[331.563]: selected /dev/ptp2 as PTP clock ptp4l[331.600]: port 1 (pfe2): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[331.600]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[331.600]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[337.781]: selected local clock 00049f.fffe.beef02 as best master ptp4l[385.758]: port 1 (pfe2): link down ptp4l[385.758]: port 1 (pfe2): LISTENING to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED) ptp4l[385.788]: port 1 (pfe2): assuming the grand master role ptp4l[385.788]: port 1 (pfe2): master state recommended in slave only mode ptp4l[385.788]: port 1 (pfe2): defaultDS.priority1 probably misconfigured 断开以太网电缆连接后,出现链接中断信息。 在此之前,我只需要用下面的方法配置 P3A 端口的 IP: ip addr add 192.168.0.131/24 dev pfe2 我把它连接到我的 Window 11 电脑上。 如果使用 PFE1,应该会得到相同的结果: ptp4l -2 -H -i pfe1 -m -s 请告诉我是否正确理解了您的问题
查看全文
FRDM-MC-LVPMSM 你好 如果将 15V 改为 VM,并将 12V 连接到 J6,是否可以用来驱动 12V 无刷直流电机? 此致, 珍妮 Re: FRDM-MC-LVPMSM 我们不是电机制造商。请联系 maxon 或 Teknic 以获得支持。 Re: FRDM-MC-LVPMSM 嗨,塞莱斯特、 我们使用的电机是maxon 200142,配有双通道 2048 编码器和霍尔传感器。 比较 Teknic M-2310P-LN-04K 和 maxon 200142,它们都有永磁转子,都有霍尔传感器和编码器。 为什么 Teknic M-2310P-LN-04K 适合正弦控制,而 maxon 200142 适合陷波控制? 能否请您解释一下? 此致, 珍妮 Re: FRDM-MC-LVPMSM 你好@JennyC、 不,我建议你直接使用 FRDM-MC-LVBLDC|FRDM开发平台|恩智浦半导体。 FRDM-MC-LVPMSM 和 FRDM-MC-LVBLDC 之间的区别不仅仅在于电源。 希望能帮到你。 BRS 西莱斯特 -------------------------------------------------------------------------------------------------------------------- 注:如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。Thank you! --------------------------------------------------------------------------------------------------------------------
查看全文
我开始使用 LPC Expresso IDE 软件为 LPC2478 控制器编码 我已经免费做了所有事情,但是当我运行代码时会出现这个问题所以请指导我 16:19:29 **** 增量配置版本调试项目 led_blink **** make-r all bash.exe:警告:找不到 /tmp,请创建!构建文件:../src/main.c bash.exe:警告:找不到 /tmp,请创建!调用:MCU C 编译器 arm-none-eabi-gcc-DDEBUG-D__CODE_RED-D __REDLIB__-O0-fno-common-g3-Wall-c-fmessage-length=0-fno-builtin-function-sections-fdata-sections-mcpu=arm7tdmi-specs=redlib.specs-MMD-MP " src/main.d "-MT"src/main.o"-MT"src/main.d"-o"src/main.o""../src/main.c"bash.exe:警告:找不到 /tmp,请创建!../src/main.c:1:64: fatal error:LPC24xx.h:无此文件或目录 编译已终止。make:*** [src/main.o]错误 1 16:19:30 版本完成(花了 300 毫秒) LPCXpresso论坛 Re: I am starting with LPC Expresso IDE software for coding LPC2478 controller Hi@VijayaJangam1 FT232RL 是一款 USB 至 UART 桥接芯片。 它只提供用于通信的串行端口连接。 它无法提供硬件调试,因为它不支持 ARM 调试协议。 如果是调试,我建议连接 LPC-Link2。 BR 哈利 Re: I am starting with LPC Expresso IDE software for coding LPC2478 controller 您好,先生, 我将 LPC24xx.h但我在调试过程中遇到了问题,没有正确调试项目,下一步该怎么办,请指示。我已将文件发送给您,其中提到了所有事情 感谢您的支持         Re: I am starting with LPC Expresso IDE software for coding LPC2478 controller 感谢您的支持 Re: I am starting with LPC Expresso IDE software for coding LPC2478 controller 你好@VijayaJangam1 1."bash.exe:warning: could not find /tmp" 表示您的 Windows 环境中没有 /tmp 目录。 我想你可以尝试创建一个 tmp 文件夹。 2.致命错误:LPC24xx.h:无此文件或目录 表示您的项目找不到 LPC2478 MCU 头文件。 我认为您可以尝试在项目设置中添加包含路径,或者 将该文件复制到项目的 include 目录中。 BR 哈利
查看全文
处理器间通信:rpmsg_char + tinycbor 我正在开发 i.MX8MMSoC,希望使用TinyCBOR库的rpmsg_char通道管理两个内核之间的通信。我找不到任何恩智浦的 rpmsg_char 驱动程序,只有标准的imx_rpmsg_tty,虽然它运行良好,但我"怀疑" ,与 rpmsg_char 相比,它的开销更大。 您对选择有什么看法?您有什么意见或建议吗?" 谢谢 核心与内存 Re: Inter-Processor communication: rpmsg_char + tinycbor 你好@gigi1291 希望你一切都好。 实际上,在我们的电路板支持包中你可以找到 rpmsg_char.c驱动程序,但遗憾的是,我们没有与 SDK 集成的示例。 您可以将适用于 cortex M 的 MCUXpresso SDK 中的多核示例作为参考。 顺祝商祺! 萨拉斯
查看全文
High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Hi, I'm experiencing significantly higher CPU usage after upgrading my application from Qt5 to Qt6 on an i.MX6 SoloX platform using the Vivante GPU with a Yocto-based BSP. With Qt5, the application typically consumed around 40% CPU, but after migrating to Qt6, the usage has nearly doubled to ~80%. This issue is reproducible even with official Qt6 example applications. I have verified that the application is utilizing the OpenGL backend, so hardware acceleration appears to be in use. Is this elevated CPU usage expected behavior with Qt6 on the i.MX6SX platform? Are there any known optimizations, GPU driver configurations, or Qt6-specific settings that could help reduce CPU load? Any guidance or suggestions would be greatly appreciated. Regards, Manoj S Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Hello  Vivante support Qt6 but your linux version is not supported by NXP you should go with your vendor. Regards Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Hi, We are using yocto scarthgap version, the machine is var-som-imx6. The kernel version is v6.1.138, and the Qt version is v6.8.3. The kernel-moduleimx-gpu-viv version is v6.4.11.p2.4.  Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU This looks like ai generated slop.  And the link you provide is just some religious subreddit. Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Yes, elevated CPU usage with Qt6 on the i.The MX6 SoloX platform is a known issue. Qt6 introduces a more demanding rendering pipeline, and the Vivante GPU on SoloX has limited capabilities, which can lead to higher CPU load even with OpenGL acceleration. Suggested optimizations: - Use Qt Quick Compiler to precompile QML. - Enable framebuffer compression and Vivante GPU tuning via BSP. - Consider lazy loading and scene graph caching strategies. - Use Qt Quick Controls 2 instead of legacy controls for better performance. More insights are discussed in this NXP community thread. Best Regards, Thomas Henry Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Hello, Which yocto are you using? since 6.6.52 works with QT6, don.t try to update since the gpu version works according to the qt you have installed. Regards
查看全文
语音处理框架 - 链接中断 在研究如何在 imx 8m plus npu 上实现唤醒词检测/文本转语音功能时,我发现了这个页面,据说其中包含用于此目的的现成框架。 但是,自动语音识别和对话式人工智能的链接已经断开。有人知道相关章节被移到哪里了吗? Re: Voice processing frameworks - broken links 你好 逐渐地,所有语音处理模块(唤醒词、ASR、LLM、TTS)都将作为 Gstreamer 插件提出,以简化语音部署。 请通过 [email protected] 联系我们获取预版本。 到目前为止,我们已经为唤醒词、ASR、人工智能降噪以及人工智能回声消除和降噪提供了单独的插件。 Re: Voice processing frameworks - broken links 感谢你的回复,这个 imx-voiceui 仓库不再有效吗? Re: Voice processing frameworks - broken links 很抱歉。 语音网页正在更新。 同时,您可以参考我们的 eIQ Gen AI 流程 github :https://github.com/nxp-appcodehub/dm-eiq-genai-flow-demonstrator?tab=readme-ov-file 很快,我们将提出 ASR 和 TTS 作为单独的 GStreamer 插件。
查看全文
S32K14W-Q064 再リファレンスボード上の CAN の例 こんにちは、 S32K14W-Q064 リファレンス ボードで CAN 通信をテストしています。私はS32DSバージョン3.6.3を使用していますおよびAUTOSAR R21-11 RTD 3.0.0ここで推奨されています。 「CAN_example_S32K144W」や「FlexCAN_Ip_example_S32K144W」などの例をいくつか確認しようとしていますが、機能しません。 追加の構成やテスト コードなどの情報を教えていただけますか?前もって感謝します。 Re: CAN Example on S32K14W-Q064 rerefence board こんにちは@vincent841 UJA116x の CAN 機能はデフォルトで有効になっているSO、CAN 機能を評価するために設定する必要はありません。 TJA1145 には構成が必要ですが、このトランシーバ用のドライバのサンプル コードがありません。 UJA116x または JTA1145 に関する質問がある場合は、新しいトピックを作成してください。 Re: CAN Example on S32K14W-Q064 rerefence board @Senlent返信ありがとうございます。もう1つ質問があります。 リファレンスボード( S32K14W-Q064)上にCANトランシーバとしてUJA1169TK(CAN0)とTJA1145(CAN1)があるのを見つけました。 これらのデバイスでは、CAN 通信用に追加の構成が必要ですか?もしSOなら、関連するモジュールやサンプルコードを共有していただけますか? よろしくお願いします。 Re: CAN Example on S32K14W-Q064 rerefence board こんにちは@vincent841 デモ「 FlexCAN_Ip_example_S32K144W 」はFlexCANループバックモードで動作しますが、いくつかの変更が必要です。 1.flexcan0の動作モードを通常モードに変更します。 2.flexcan0のポートを追加
查看全文
Android Tag Writer NTAG 424 DNA I'm using TagWriter to configure an SDM image, but the CMAC offset is incorrect no matter how I set it. I'm also using it according to the documentation, but it's still incorrect. Could you please explain this to me? Re: Android Tag Writer NTAG 424 DNA Hello, I would like to ask why when I use tag info to check the card information, the first time I swipe the card, it shows NXP, but after I change the data, it shows suspected pirated. And sometimes when I swipe other cards, they show NXP, and sometimes they show pirated. Re: Android Tag Writer NTAG 424 DNA Hello @umi2025 Could you please describe what is the procedure you have followed? Please, refer to TagWriter User Manual; Chapter 4 describes the procedure for enabling and configuring the Mirroring features by using this app. Additionally, I will recommend using RFIDDiscover, which is a tool for testing and configuring the tags and cards based on our devices. It is also recommended using PEGODA Contactless Smart Card Reader | NXP Semiconductors together with this tool. Something important to remark is that RFID Discover is secured under NDA and must be requested from the Secure Resources. Regards, Eduardo.
查看全文
Controlling mmcblk0 Devices in Xen on S32G274ARDB2 Hi, I am working with the S32G274ARDB2 image, where I have enabled Xen hypervisor support as per the guidelines in the Linux BSP 38.0 User Manual. After building the image, I observed the following output from the `lsblk` command in the Xen environment: NAME                 MAJ:MIN   RM   SIZE     RO     TYPE     MOUNTPOINTS mmcblk0          179:0          0    14.8G     0       disk |-mmcblk0p1    179:1           0    64M      0       part |-mmcblk0p2   179:2          0   980M     0       part      / |-mmcblk0p3   179:3          0   980M     0       part `-mmcblk0p4   179:4          0   980M     0       part I would like to understand how to manage the number of `mmcblk0` devices (partitions) exposed to Xen. Specifically, I need guidance on the following:   1. How can I restrict the number of `mmcblk0` partitions visible to Xen or specific domains (e.g., Dom0 or DomU)? 2. Is it possible to add or control the number of `mmcblk0` partitions dynamically within Xen, and if so, what configurations or tools should I use? 3. Are there specific device tree settings, Xen configuration files, or U-Boot commands that I should modify to achieve this control?   Any references to relevant documentation, configuration examples, or steps to achieve this would be greatly appreciated. Please let me know if additional details about my setup are required.   Thank you for your support. Re: Controlling mmcblk0 Devices in Xen on S32G274ARDB2 Hello @hulk101, Were you able achieve your goal with the information I provided? If so, please select my last reply as an accepted solution, if not, please let me know if you encounter any errors. Thanks!  Re: Controlling mmcblk0 Devices in Xen on S32G274ARDB2 Hello @hulk101, Xen is not an NXP product and therefore I cannot offer you much support about it. However, here is some information that you might find useful. Dom0 has default access to all hardware resources, this includes SD/eMMC partitions (mmcblk0p1, mmcblk0p2, mmcblk0p3, ...), although it might be possible to restrict access to Dom0 I would not recommend it since Dom0 is intended to create all other domains (like Domu). DomU does not have access to all hardware resources by default, for example for partitions, you can dynamically attach them by running: xl block-attach domu1 phy:/dev/mmcblk0p3 xvdb w or to detach them: xl block-detach domu1 xvdb You can also add those commands in the configuration files of the configuration file of domu1. Please note that the commands might change slightly depending on the partitions needed and the domain names. This way the partition will appear in domu1 in: /dev/xvdb There are some configuration you can perform in the device tree, however for the requirements you have it does not seem that it would be the correct approach, however, please check https://wiki.xenproject.org/wiki/Device_tree. Let me know if you have more questions. 
查看全文
J-TraceとMIMXRT1060EVKの問題 私は過去数年間、MIMXRT1060EVK 回路のカスタムバリエーションを使用して約 6 つの異なるプロジェクトを実行してきましたが、最近は MIMXRT1170EVKB に取り組んでいます。とにかく、アップデートのために 1060 に戻ってきたSO、MIMXRT1060EVK の埃を払い、J-TRACE プローブを接続して、いつもどおりにダウンロードを試みました。私は次の.jlinkを使用しますスクリプト: eoe 1 device=MIMXRT1062xxx6A speed 4000 si SWD r h loadbin bootimage.bin,0x60000000 go exit 次の出力が表示されます。 SEGGER J-Link Commander V6.88b (Compiled Nov 27 2020 16:43:11) DLL version V6.88b, compiled Nov 27 2020 16:42:59 J-Link Command File read successfully. Processing script file... J-Link Commander will now exit on Error J-Link connection not established yet but required for command. Connecting to J-Link via USB...O.K. Firmware: J-Trace PRO V3 Cortex-M compiled Dec 10 2024 10:55:40 Hardware version: V3.00 S/N: 753002602 License(s): RDI, FlashBP, FlashDL, JFlash, GDB IP-Addr: DHCP (no addr. received yet) Emulator has RAWTRACE capability VTref=3.273V Selecting 4000 kHz as target interface speed Selecting SWD as current target interface. Target connection not established yet but required for command. Device "MIMXRT1062XXX6A" selected. Connecting to target via SWD InitTarget() start InitTarget() _TargetHalt: CPU halted InitTarget() end InitTarget() start InitTarget() _TargetHalt: CPU halted InitTarget() end InitTarget() start InitTarget() _TargetHalt: CPU halted InitTarget() end InitTarget() start InitTarget() _TargetHalt: CPU halted InitTarget() end Cannot connect to target. Script processing completed. なお、私は J-Trace を他のボードでも使用しましたが、問題なく動作しました。3 つの電源入力をすべて試してみましたが、すべて同じ結果になりました。J47-J48を削除しました。この評価ボードを使用してからしばらく経ちましたが、故障したのではないかと思い始めています。この原因について他に考えられることはありますか? ありがとうございます Re: Problems with J-Trace and MIMXRT1060EVK @Gavin_Jia返信ありがとうございます... はい、それらのジャンパーは常に取り外されています。組み込みデバッガーは使用していませんが、プロセッサにアクセスできるかどうかを確認するために、最後の手段として試してみる必要があると思います... 「応答なし」タイプのメッセージも表示される場合は、ボードが故障していると考えられます。どうなるかお知らせします。 Re: Problems with J-Trace and MIMXRT1060EVK こんにちは@EdSutter 、 NXP MIMXRTシリーズにご興味をお持ちいただきありがとうございます。 搭載デバッガーを使用してみましたか?少なくとも、まずボードがイメージを書き込み、適切にデバッグCANことを確認する必要があります。また、外部デバッガーを使用する場合は、J47 ~ J50 の両方を外して再試行することをお勧めします。 よろしくお願いします、 ギャビン
查看全文
Copy: Function inlining in S32K3 RTD This post is a copy from here Contact name: Aldo Strofaldi Contact email: [email protected] Company: KIEKERT Hi team, I am currently discussing with a customer about the function inlining inside the RTDs. Customer is using IAR compiler with 'forced' compiler options, and mentions the following:  I am using the IAR compiler with forced compiler options that by default disable the native inlining, so a declaration like this: static inline foo (void) will not be treated as inline by the compiler. I already mentioned that NXP's RTDs are tested with IAR with specific compiler settings, and that compiler specific behavior should be declared inside Compiler.h; however, he says that is not a solution, and that the ASR Specification of Compiler Abstraction states otherwise: I understand that I can replicate the compiler options used by NXP, but that it not a solution for us since we cannot change them, and also this is not what AUTOSAR states in the Specification of Compiler Abstraction: I should not be 'forced' to use specific compiler options to make inlining work, but instead through the use of the Compiler Abstraction I can tune the behavior specifying the needed attributes based on the compiler I am using. As I stated above, from what I can see from the source code of the MCALs, there are functions that are not declared by using the compiler abstraction macros like INLINE or LOCAL_INLINE, for example: since they don't use the INLINE or LOCAL_INLINE macros, I cannot use my Compiler.h abstractions. I can see he is referencing C40_Ip functions. I believe that IP (non-AUTOSAR) layer is not constraint by SWS and ASR specification, is my understanding correct? Final solution should be to follow release notes' compiler options and defining their workaround for the static inline macros, correct?  Thank you in advanced. Best regards, Julián Priority: MEDIUM RTD Source: NXP Internal Re: Copy: Function inlining in S32K3 RTD Hi @Luis_Garabo  It noted in our BaseNXP Userm anual: This ASR requirement is not applicable for RTD package
查看全文
IW610 の「ダウンロードする権限が十分あります」という警告メッセージが表示されます こんにちは、チームの皆さん 私たちは、NXP から IW610X チップを入手し、WIFI/BLE 統合の一環として imx91 プロセッサに取り組んでいます。データシートとその他のリファレンスマニュアル ( https://www.nxp.com/docs/en/release-note/RN00104.pdf ) を確認しました。それは明確に述べられている ソフトウェア – IW610 製造ファームウェア リリースですが、そのリンクにリダイレクトされ、ダウンロードに同意するをクリックします。警告メッセージが表示されます: IW610 の関連ドライバを提供していただけますか。また、基本的なテストを実行するためのユーザー マニュアルはありますか。 よろしくお願いします。 ロビー
查看全文
S32K3 を初期化するときに、MCU_SetMode(0) を呼び出した後に Uart_Init を呼び出すと、HardFault がトリガーされます。 S32K312の電源が投入され初期化されると、まずMcu_SetMode(0)を呼び出し、次にUart_Initを呼び出してUart0を初期化します。この時点ではUart0レジスタ(IP_LPUART_0:0x40328000u)は読み取りも書き込みもできないため、HardFault状態になります。 呼び出しスタックは次のとおりです。 Uart_Init(NULL_PTR); Uart_Ipw_Init(チャネル、Uart_apConfig[CoreId]->Configs[u8ChLoop]->UartChannelConfig); Lpuart_Uart_Ip_Init(HwUnit、Config->UserConfig->LpuartUserConfig); Lpuart_Uart_Ip_SetOversamplingRatio(Base、(uint32)UserConfig->BaudOverSamplingRatio -1U); Base->BAUD = (Base->BAUD & ~LPUART_BAUD_OSR_MASK) | LPUART_BAUD_OSR(OverSamplingRatio); Mcu_SetMode(0)をコメントアウトすると、Uart0を正常に初期化でき、システムは正常に動作します。 公式の Uart デモである Uart_Example_S32K312 と比較したところ、Uart3 が使用されている一方で、Uart0 も読み取りおよび書き込みが不可能な状態であることがわかりました。 MCU_SetMode(0) によって Uart0 のレジスタがアクセス不能になるのはなぜですか? Mcu_SetMode(0)をコメントアウトするとシステムの動作に影響がありますか? Re: S32K3,初始化时调用Mcu_SetMode(0)后,再调用Uart_Init就会进HardFault 私のシナリオでは、システムは電源投入時に初期化され、スリープモードではなくRUNモードに入り、スタンバイモードに入ります。Mcu_SetMode(0)は0 = McuModeSettingConf_Runに設定されています。 LPUARTのPeripheral Clock Enableオプションを有効にしていない場合、Mcu_SetMode(0)行をコメントアウトするだけでUart_InitでHardFaultが発生しません。なぜでしょうか? Re: S32K3,初始化时调用Mcu_SetMode(0)后,再调用Uart_Init就会进HardFault Mcu_SetMode は電源モードを切り替えるために使用されます。通常、低電力モードに入る前に呼び出され、低電力モードで不要な周辺機器をオフにします。 S32K3 低消費電力管理 AN とデモ [RTD400 & 500 MCAL & IP] S32K3 低消費電力管理 AN とデモ これらのプロジェクトには、さまざまな電源モード構成の例が含まれています。 Re: S32K3,初始化时调用Mcu_SetMode(0)后,再调用Uart_Init就会进HardFault こんにちは、ロビン。 RTDはS32DS3.4 + RTDS32K3XX 2.0.0を使用しています。問題はMcuPeripheral -> Peripheral Clock Enableを有効にしていなかったことでしたが、有効にすることで問題は解決しました。 Mcu_SetMode(0)をコメントアウトするとなぜこの問題は解決するのでしょうか?Uartも正常に動作します。 Mcu_SetMode(0)をコメントアウトするとシステム動作に影響しますか? 正常に動作するようです。 Re: S32K3,初始化时调用Mcu_SetMode(0)后,再调用Uart_Init就会进HardFault こんにちは どのバージョンの S32K3 RTD を使用していますか? S32K3 RTD 3.0.x 以降のバージョンには、S32K312 の例は含まれません。 S32K3 RTD 6.00の例Uart_Example_S32K344を確認したところ、Mcu_SetMode(0)の後にUart_Initが呼び出されています。 /* Initialize the Mcu driver */ Mcu_Init(NULL_PTR); Mcu_InitClock(0); #if (MCU_NO_PLL == STD_OFF) while ( MCU_PLL_LOCKED != Mcu_GetPllStatus() ) { /* Busy wait until the System PLL is locked */ } Mcu_DistributePllClock(); #endif Mcu_SetMode(0); /* Initialize Mcl module */ Mcl_Init(NULL_PTR); /* Initialize all pins using the Port driver */ Port_Init(NULL_PTR); /* Initialize IRQs */ Platform_Init(NULL_PTR); /* Initializes an UART driver*/ Uart_Init(NULL_PTR); S32K312EVB-Q172 UARTの A2 の応答セクションでLPUART0が有効になっているかどうかを確認してください。例が機能していません: McuPeripheral -> Peripheral Clock Enable。 よろしくお願いします、 ロビン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「解決策として承認」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 ---------------------------------------------------------------------------------
查看全文
S32G399 SGMII 接口驱动程序问题 你好,我有一个问题。目前,我正在调整 S32G 的 SERDES 接口。SERDES1 的两个通道连接到一个 PHY(VSC8572)。我遇到的问题是网络端口不稳定。我正在测试 SGMII 眼图信号。来自 S32G399(PHY 侧附近的交流电容)的 TX 信号的眼图低电平为 150mV。来自 S32G399(CPU 端附近的交流电容)的 RX 信号的最低电压为 328mV。 RX: 德克萨斯州: 回复: S32G399 SGMII interface driver issue 你好@龙岗素、 感谢您提供的信息。我的理解是,无法完成 SGMII 操作,也就是说,您已使用以太网电缆将您的 PHY 连接到另一台设备但无法连接,对吗? 关于寄存器,你提到你得到的是 0x0400,其中只有第 10 位处于打开状态,但是,从数据表的截图中,我看到第 10 位是保留的,你是否有其他说明问题的指标? 我还建议您同时联系 PHY 供应商,以获得更好的支持。 预先致谢 回复: S32G399 SGMII interface driver issue 我按照硬件设计手册做了以下工作: 1.Serdes1 的时钟设置为 125 MHz,PHY 也设置为 125 MHz。 2。交流耦合电容设计为0.1uF,并放置在接收端附近。 3.PCIE1_REXT 引脚设计时使用一个 100 欧姆的电阻器连接到地面。 我目前面临的问题是 当 SGMII 连接失败时,通过 MDIO 查询 PHY vsc8572 的 Mac SerDes PCS 状态,结果为 = 0x0400,表明未检测到 MAC。 回复: S32G399 SGMII interface driver issue 你好@龙岗素、 感谢您与我们联系。关于您的问题,请查阅以下文件S32G3 - 硬件设计指南用户指南,特别是其中的某些章节: 10.2 SerDes 通信 10.2.2 SGMII 建议 10.2.4 PCIe/SGMII 设计建议 13.3 高速路由建议 您也可以查看 RDB3 原理图作为设计的参考。 请注意,信号完整性话题不属于我的专业领域,所以我可能帮不了你什么。不过,我会尽力支持你。 当您提到"网络端口不稳定"请说明您是通过哪些测试得出这一结论的? 谢谢! 回复: S32G399 SGMII interface driver issue 请问有什么方法可以提高 CPU 的驱动能力?
查看全文
材料申报全文链接 你好 客户要求提供材料声明。我们的销售人员分享了其中的一些信息,但以下名单仍未公布。您能帮我们提供完整的材料申报链接吗? 014-22210-00 恩智浦(FRS) MCIMX6U5DVM10AC 014-30488-00 恩智浦(NXP) CBTL08GP053EVY 014-23477-00 恩智浦(FRS) MCIMX6Y2DVM05AB 014-26686-03 恩智浦(FRS) mimx8qx5avlfzac 014-20568-00 恩智浦(FRS) MCIMX6S5DVM10AC 014-32039-00 恩智浦(FRS) MK20DX256VLL7 014-33781-00 恩智浦(NXP) LM75BDP,118 014-27157-00 恩智浦(FRS) MIMX8MM6CVTKZAA 014-33783-00 NXP TJA1051T,118 014-31789-00 恩智浦(FRS) MCIMX6Y2DVM09AB 014-27794-00 恩智浦(FRS) mimx8qp5avuffab 014-32934-00 恩智浦(NXP) PCA9601D,118 014-29722-00 恩智浦(FRS) mimx8ml8cvnkzab 014-30712-00 恩智浦(NXP) PTN5110NHQZ 014-0585-00 恩智浦(FRS) MC9S08QE8CLC 014-33082-00 恩智浦(NXP) PCA9601D,118 014-20616-00 恩智浦(FRS) MCIMX6Q6AVT08AD 014-30418-00 恩智浦(FRS) MC33PF8200ESES 014-26076-01 恩智浦(FRS) MC33PF8100EQESR2 014-27243-01 恩智浦(FRS) MC33PF8100Ccesr2 015-23953-00 恩智浦(NXP) BFU660F,115 014-30490-00 恩智浦(NXP) NX20P0407UKAZ 014-23572-00 恩智浦(NXP) SC16IS762IBS,128 015-0013-13 恩智浦(NXP) BGU7007,115 014-30491-00 恩智浦(NXP) NX5P3090UKZ 014-33773-00 NXP LPC4078FBD208,551 014-32728-00 恩智浦(NXP) NVT4858HKZ 014-33081-00 恩智浦(NXP) PCA9698BS,118 016-0006-00 恩智浦(NXP) BAP64-02,115 014-30487-00 恩智浦(NXP) PTN5150AHXMP
查看全文
S32K310 K341 RTD600 C40_Ip_Cfg.hブロックサイズがHSE SRMと一致しない お客様: 中国武漢三環社、カーシートコントローラにS32K310を採用 こんにちは、チーム RM758225-RM00286 HSE-Bファームウェアリファレンス・マニュアル - V2.5(2.5).pdfから、S32K310、K341 ABスワップメモリ範囲の状況が特殊であることがわかります。 K3 RM メモリにはブロック 1 はありませんが、HSE RM には AB_SWAP 用のブロック 1 があります。 HSE RM に含まれているように、S32DS RTD600 関連ドライバ:C40_Ip_Cfg.h にも Block1 が含まれている必要があると考えられます。 RTD600、C40_Ip_Cfg.hの追加にご協力くださいK310、K341 フラッシュ ブロック 1 関連のアドレスと SXXX 番号が含まれています。ありがとうございます。 RTD Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは@alexmarin ご指摘の通り、 K394、K374、K364(ブロック2はフルメモリでは使用不可、ABスワップでは使用可能)、K336、K356(ブロック3はフルメモリでは使用不可、ABスワップでは使用可能)です。RTDでも同じ問題が発生します。 こんにちは@ZhengLinさん このCASEについて何かコメントはありますか?これは AE と HSE 内部でも提起されています。 https://community.nxp.com/t5/S32K3-Internal-Community/S32K310-K341-RTD600-C40-Ip-Cfg-h-ブロックサイズがHSE-SRMと一致せず/mp/2158886#M14368 HSE 側が対応できない場合は、RM ドキュメントに変更を加えることはCANでしょうか?ありがとう よろしくお願いいたします。 kerry Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは@kerryzhou 、 alexmarin の回答に基づいて、デザインチーム/ドキュメント チームから確認を得て、A/B スワップのメモリ レイアウトを Soc RM に追加してください。その後、コードを変更するためのチケットを SW チームに作成します。 よろしくお願いいたします。 ニ Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM もう 1 つ、フル メモリ レイアウトでブロックが無効になっているすべてのファントムの RTD 実装を確認してください。同じ問題が発生すると思われます: K394、K374、K364 (ブロック 2 はフル メモリでは使用不可、AB スワップでは使用可能)、K336、K356 (ブロック 3 はフル メモリでは使用不可、AB スワップでは使用可能)。 Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは、 S32K3 HSE の SW アーキテクト、Alex Marin です。 AB スワップとフル メモリ レイアウトに関する必要な詳細はすべて HSE B RM に記載されていると考えています。 当社は SOC RM を所有していないため、そこに AB スワップ メモリ レイアウトの説明を追加することはできません。 歴史的に、SOC RM にはすべてのバリアントの Full mem レイアウトのみが含まれていました。おそらくそれは変わる必要がある。 最後に、ここでは HSE チームにアクション項目は見当たりません、と申し上げます。 敬具 アレックス Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは@Nhi_Nguyen 、 ご返信ありがとうございます! HSE パッシブ領域では、パッシブ領域を操作するための HSE サービスは必要ありません。HSE は AB スワップ サービスを実行するだけで済みますが、OTA では、アクティブ領域でフラッシュ ドライバを使用してパッシブ領域に書き込む必要があり、そのためには RTD を使用する必要があります。SO、RTD にパッシブ領域のフラッシュ アドレスを追加して、HSE 用に追加する必要があると考えられます。 こんにちは@ZhengLinさん Zheng Lin さん、HSE チームへのチケットの発行にご協力ください。その後、HSE チームが RTD チームに、K310 と K341 について、パッシブ フラッシュ アドレス ブロック 1 のドライバ コードを追加するようリクエストする必要があります。 本当にSOありがとう! よろしくお願いいたします。 kerry Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは@kerryzhou 、 RTD の観点から見ると、次の場合にのみこの要求をサポートできます。 - RTD ドライバ コードは HSE RM ではなく RM に基づいています。SO、ブロック 1 (0x00480000 - 0x004FFFFF) が S32K310 でサポートされ、ブロック 1 (0x00500000 - 0x005FFFFF) が S32K341 でサポートされ、Excel ファイルとメモリの章を含む RM からの情報が変更されることをデザイン チームから確認してください。つまり、ブロック 1 は A/B スワップ HSE だけでなく、すべての人が使用CANます。 - HSE のドキュメントから、次のような情報が得られました。 ブロック 1 (0x00480000 - 0x004FFFFF) は S32K310 でサポートされ、ブロック 1 (0x00500000 - 0x005FFFFF) は S32K341 でサポートされ、パッシブ パーティションです。上記の説明から、A/B スワップはアクティブ パーティションとパッシブ パーティションを交換してパッシブ パーティションにアクセスするサービスを提供するようです。私はHSEで働いていないSO、このトピックにHSE_FWタグを追加してHSEチームに問い合わせてCAN。分析後、HSEがRTDのブロック1を使用する必要がある場合は、RTDチームにリクエストできます。 よろしくお願いいたします。 ニ
查看全文
Where can I find the fuse map for the i.MX93 I am looking for the "Device Fuse Map" documentation for the i.MX93. It is mentioned in the Edgelock secure enclave user guide, edgelock enclave hardware security module API, code signing tool user guide. The i.MX93 application processor reference manual contains a chapter on Fusemap, but does not specify more than the boot related fuses. My expectation is that this fuse-map contains the locations of the SRK hash and also explain the related bits on enabling secure boot and close the device. My goal is to create a key-provisioning tool which runs under Linux on the target, which is used to fuse the SRKS (due to not having access to the serial console or boot pins after manufacturing), but I want to be very sure that I am programming the correct addresses via the HSM. Linux Security Re: Where can I find the fuse map for the i.MX93 Thank you. Microsoft Edge seems not to support showing those attachments, so had to install Acrobat Reader. Re: Where can I find the fuse map for the i.MX93 Fuse map is an excel form which can be viewed by changing item from the left panel of i.MX93 application processor reference manual as shown below. There are more information provided, such as SRK fuse, if you access to i.MX93 application processor security reference manual. As the fuse information you require are SRK Hash and enabling secure boot, you can refer to the guide - secure_boot  Regards Harvey
查看全文
Refreshing S32DS3.4 License Hi,  my S32DS3.4 License is expiring in 2 days. Could you please extend it? Thanks I attach below my license details: S32 Design Studio for S32 Platform ActivationId: 7A0A-B30D-154C-A283 Evaluation Days: 2 Feature Version: 3.4 Feature Status: Evaluation (2 days) Re: Refreshing S32DS3.4 License Hi, The license has been extended. Please refresh the license. Hope it helps. Stan
查看全文