Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
使用 OV5648 的 IMX8MP 在拍照时会锁定 你好我正在尝试将OV5648传感器添加到IMX8MP 上。以下是我的 dts 配置 ov5648_osc: camera-clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <24000000>; clock-output-names = "ov5648_xvclk"; }; ... ov5648_0: cam_ov5648_0@36 { compatible = "ovti,ov5648"; reg = <0x36>; clocks = <&ov5648_osc>; clock-names = "xvclk"; powerdown-gpios = <&io_expander 1 GPIO_ACTIVE_LOW>; dovdd-supply = <&ov5648_0_dovdd>; dvdd-supply = <&ov5648_0_dvdd>; status = "okay"; csi_id = <0>; #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; ov5648_0_mipi_ep: endpoint { remote-endpoint = <&mipi_csi_0_in>; link-frequencies = /bits/ 64 <210000000 168000000>; data-lanes = <1 2>; clock-lanes = <0>; }; }; }; ... &mipi_csi_0 { status = "okay"; clock-frequency = <168000000>; port { mipi_csi_0_in: endpoint { remote-endpoint = <&ov5648_0_mipi_ep>; // imx8-mipi-csi2-sam.c doesn't care it's usually <1 2>... data-lanes = <2>; csis-hs-settle = <13>; csis-clk-settle = <2>; csis-wclk; }; }; }; ... &isi_0 { status = "okay"; cap_device { status = "okay"; }; m2m_device { status = "disabled"; }; }; 我正在尝试使用以下命令拍摄照片 v4l2-ctl -d /dev/video2 -v width=1280,height=720,pixelformat=YUYV --stream-mmap --stream-count=1 --stream-to=photo.raw 我还向 dmesg 中添加了一些调试输出。 [ 224.928864] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1107 [ 224.940895] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_power:2472 on 1 [ 224.950246] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_resume:2434 [ 224.959057] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_sensor_power:1870 on 1 [ 225.004545] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_sensor_init:1797 [ 225.037496] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_power:2480 ov5648_resume ret 0 [ 225.053146] input fmt RGB4 [ 225.055866] output fmt YUYV [ 225.058682] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1118 mxc_isi_config_parm ret 0 f[ 225.073740] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1124 vb2_ioctl_streamon ret 0 [ 225.087962] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:124 media_graph_walk_init ret 0 [ 225.102609] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_stream:2146 enable 1 [ 225.112697] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret 0 ov5648 2-0036 ov5648 2-0036 [ 225.140978] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret 0 mxc-mipi-csi2.0 mxc-mipi-csi2.0 [ 225.158893] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret -515 mxc_isi.0 mxc_isi.0 [ 225.175873] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1136 mxc_isi_pipeline_enable ret -515 [ 225.190760] /drivers/media/v4l2-core/v4l2-ioctl.c:__video_do_ioctl:3145 info->func() ret 0 [ 225.200349] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3490 trace() [ 225.208805] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3515 in_compat_syscall() [ 225.218306] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3532 video_put_user() [ 225.227569] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3438 [ 225.235336] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3458 check_array_args() [ 225.244760] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3482 func() [ 225.253136] /drivers/media/v4l2-core/v4l2-ioctl.c:__video_do_ioctl:3133 info->func() 该日志的末尾显示了 v4l 命令处于等待状态时,代码在何处被锁定。我还使用 strace 运行了该命令,结果如下: ioctl(3, VIDIOC_QBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, index=2, memory=V4L2_MEMORY_MMAP, m.offset=0xceb922f0, length=1, bytesused=0, flags=V4L2_BUF_FLAG_MAPPED|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC|V4L2_BUF_FLAG_TSTAMP_SRC_EOF, ...}) = 0 ioctl(3, VIDIOC_QBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, index=3, memory=V4L2_MEMORY_MMAP, m.offset=0xceb922f0, length=1, bytesused=0, flags=V4L2_BUF_FLAG_MAPPED|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC|V4L2_BUF_FLAG_TSTAMP_SRC_EOF, ...}) = 0 ioctl(3, VIDIOC_G_FMT, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, fmt.pix_mp={width=1280, height=720, pixelformat=v4l2_fourcc('Y', 'U', 'Y', 'V') /* V4L2_PIX_FMT_YUYV */, field=V4L2_FIELD_NONE, colorspace=V4L2_COLORSPACE_SRGB, plane_fmt=[{sizeimage=1843200, bytesperline=2560}], num_planes=1}}) = 0 ioctl(3, VIDIOC_STREAMON, [V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE]) = 0 pselect6(4, NULL, NULL, [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) ioctl(3, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE 你可以看到它正在等待 VIDIOC_DQBUF。我确信相机能正确地从LP模式切换到HS模式。 看来 MIPI CSI 从未发出过数据已接收的信号。 我正在使用 linux-imx 内核中的 staging 驱动程序。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: IMX8MP with OV5648 lock on taking photo 我发现,当我启动流时,CSI中断计数器会增加 25: 365486 0 0 0 GICv3 49 Level 32e40000.csi 26: 0 0 0 0 GICv3 48 Level 32e00000.isi 不过,ISI中断仍保持为0。 我还启用了mxc-mipi-csi2上的调试输出,看起来SOT上出现了错误。 [ 2231.150985] mxc-mipi-csi2.0: mipi_csis_s_stream: 1, state: 0x0 [ 2231.151200] mxc-mipi-csi2.0: mipi_csis_imx8mp_phy_reset: bus fmt is 8 bit! [ 2231.151240] mxc-mipi-csi2.0: fmt: 0x3001, 1280 x 720 [ 2231.151270] mxc-mipi-csi2.0: SOT Error: 1 [ 2231.151275] mxc-mipi-csi2.0: status: 00030000 [ 2231.151294] mxc-mipi-csi2.0: SOT Error: 2 [ 2231.151298] mxc-mipi-csi2.0: status: 00030000 [ 2231.151317] mxc-mipi-csi2.0: SOT Error: 3 [ 2231.151321] mxc-mipi-csi2.0: status: 00030000 [ 2231.151337] mxc-mipi-csi2.0: SOT Error: 4 [ 2231.151341] mxc-mipi-csi2.0: status: 00030000 [ 2231.151360] mxc-mipi-csi2.0: SOT Error: 5 [ 2231.151367] mxc-mipi-csi2.0: status: 00010000 [ 2231.151383] mxc-mipi-csi2.0: SOT Error: 6 [ 2231.151389] mxc-mipi-csi2.0: status: 00010000 [ 2231.151407] mxc-mipi-csi2.0: SOT Error: 7 [ 2231.151413] mxc-mipi-csi2.0: status: 00010000 [ 2231.151440] mxc-mipi-csi2.0: SOT Error: 8 [ 2231.151444] mxc-mipi-csi2.0: status: 00010000 Re: IMX8MP with OV5648 lock on taking photo 您需要根据所连接的摄像头模块的日期速率更新 dts 中的 csis-hs-settle 属性。更多详情请参阅应用笔记 AN13857,第 3.2.5 节。 https://www.nxp.com/webapp/Download?colCode=AN13857
記事全体を表示
IMX8MP with OV5648 lock on taking photo Hello. I'm trying to add OV5648 sensor to IMX8MP. Here is my dts setup ov5648_osc: camera-clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <24000000>; clock-output-names = "ov5648_xvclk"; }; ... ov5648_0: cam_ov5648_0@36 { compatible = "ovti,ov5648"; reg = <0x36>; clocks = <&ov5648_osc>; clock-names = "xvclk"; powerdown-gpios = <&io_expander 1 GPIO_ACTIVE_LOW>; dovdd-supply = <&ov5648_0_dovdd>; dvdd-supply = <&ov5648_0_dvdd>; status = "okay"; csi_id = <0>; #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; ov5648_0_mipi_ep: endpoint { remote-endpoint = <&mipi_csi_0_in>; link-frequencies = /bits/ 64 <210000000 168000000>; data-lanes = <1 2>; clock-lanes = <0>; }; }; }; ... &mipi_csi_0 { status = "okay"; clock-frequency = <168000000>; port { mipi_csi_0_in: endpoint { remote-endpoint = <&ov5648_0_mipi_ep>; // imx8-mipi-csi2-sam.c doesn't care it's usually <1 2>... data-lanes = <2>; csis-hs-settle = <13>; csis-clk-settle = <2>; csis-wclk; }; }; }; ... &isi_0 { status = "okay"; cap_device { status = "okay"; }; m2m_device { status = "disabled"; }; }; I'm trying to take photo with following command v4l2-ctl -d /dev/video2 -v width=1280,height=720,pixelformat=YUYV --stream-mmap --stream-count=1 --stream-to=photo.raw I have also added some debug prints to dmesg. [ 224.928864] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1107 [ 224.940895] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_power:2472 on 1 [ 224.950246] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_resume:2434 [ 224.959057] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_sensor_power:1870 on 1 [ 225.004545] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_sensor_init:1797 [ 225.037496] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_power:2480 ov5648_resume ret 0 [ 225.053146] input fmt RGB4 [ 225.055866] output fmt YUYV [ 225.058682] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1118 mxc_isi_config_parm ret 0 f[ 225.073740] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1124 vb2_ioctl_streamon ret 0 [ 225.087962] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:124 media_graph_walk_init ret 0 [ 225.102609] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_stream:2146 enable 1 [ 225.112697] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret 0 ov5648 2-0036 ov5648 2-0036 [ 225.140978] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret 0 mxc-mipi-csi2.0 mxc-mipi-csi2.0 [ 225.158893] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret -515 mxc_isi.0 mxc_isi.0 [ 225.175873] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1136 mxc_isi_pipeline_enable ret -515 [ 225.190760] /drivers/media/v4l2-core/v4l2-ioctl.c:__video_do_ioctl:3145 info->func() ret 0 [ 225.200349] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3490 trace() [ 225.208805] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3515 in_compat_syscall() [ 225.218306] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3532 video_put_user() [ 225.227569] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3438 [ 225.235336] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3458 check_array_args() [ 225.244760] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3482 func() [ 225.253136] /drivers/media/v4l2-core/v4l2-ioctl.c:__video_do_ioctl:3133 info->func() End of this log shows where the code locks while v4l command waits on. I have also started the command with strace and I see: ioctl(3, VIDIOC_QBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, index=2, memory=V4L2_MEMORY_MMAP, m.offset=0xceb922f0, length=1, bytesused=0, flags=V4L2_BUF_FLAG_MAPPED|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC|V4L2_BUF_FLAG_TSTAMP_SRC_EOF, ...}) = 0 ioctl(3, VIDIOC_QBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, index=3, memory=V4L2_MEMORY_MMAP, m.offset=0xceb922f0, length=1, bytesused=0, flags=V4L2_BUF_FLAG_MAPPED|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC|V4L2_BUF_FLAG_TSTAMP_SRC_EOF, ...}) = 0 ioctl(3, VIDIOC_G_FMT, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, fmt.pix_mp={width=1280, height=720, pixelformat=v4l2_fourcc('Y', 'U', 'Y', 'V') /* V4L2_PIX_FMT_YUYV */, field=V4L2_FIELD_NONE, colorspace=V4L2_COLORSPACE_SRGB, plane_fmt=[{sizeimage=1843200, bytesperline=2560}], num_planes=1}}) = 0 ioctl(3, VIDIOC_STREAMON, [V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE]) = 0 pselect6(4, NULL, NULL, [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) ioctl(3, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE You can see it waits on the VIDIOC_DQBUF. I'm sure camera transitions from the LP mode into HS mode correctly. Looks like the MIPI CSI never signals that the data has been received. I'm using staging drivers from linux-imx kernel. i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: IMX8MP with OV5648 lock on taking photo I'm seeing that the csi interrupt counter goes up when i start the stream 25: 365486 0 0 0 GICv3 49 Level 32e40000.csi 26: 0 0 0 0 GICv3 48 Level 32e00000.isi The ISI interrupts however stay at 0. I have also enabled debug prints on the mxc-mipi-csi2 and it looks like I'm getting errors on the SOT [ 2231.150985] mxc-mipi-csi2.0: mipi_csis_s_stream: 1, state: 0x0 [ 2231.151200] mxc-mipi-csi2.0: mipi_csis_imx8mp_phy_reset: bus fmt is 8 bit! [ 2231.151240] mxc-mipi-csi2.0: fmt: 0x3001, 1280 x 720 [ 2231.151270] mxc-mipi-csi2.0: SOT Error: 1 [ 2231.151275] mxc-mipi-csi2.0: status: 00030000 [ 2231.151294] mxc-mipi-csi2.0: SOT Error: 2 [ 2231.151298] mxc-mipi-csi2.0: status: 00030000 [ 2231.151317] mxc-mipi-csi2.0: SOT Error: 3 [ 2231.151321] mxc-mipi-csi2.0: status: 00030000 [ 2231.151337] mxc-mipi-csi2.0: SOT Error: 4 [ 2231.151341] mxc-mipi-csi2.0: status: 00030000 [ 2231.151360] mxc-mipi-csi2.0: SOT Error: 5 [ 2231.151367] mxc-mipi-csi2.0: status: 00010000 [ 2231.151383] mxc-mipi-csi2.0: SOT Error: 6 [ 2231.151389] mxc-mipi-csi2.0: status: 00010000 [ 2231.151407] mxc-mipi-csi2.0: SOT Error: 7 [ 2231.151413] mxc-mipi-csi2.0: status: 00010000 [ 2231.151440] mxc-mipi-csi2.0: SOT Error: 8 [ 2231.151444] mxc-mipi-csi2.0: status: 00010000 Re: IMX8MP with OV5648 lock on taking photo You need to update csis-hs-settle property in the dts according to the date rate of the connected camera module. More details can be found in the application note AN13857, section 3.2.5. https://www.nxp.com/webapp/Download?colCode=AN13857
記事全体を表示
IMX8MP、OV5648ロックオンで撮影 こんにちは。IMX8MPにOV5648センサーを追加しようとしています。これが私のDTS設定です ov5648_osc: camera-clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <24000000>; clock-output-names = "ov5648_xvclk"; }; ... ov5648_0: cam_ov5648_0@36 { compatible = "ovti,ov5648"; reg = <0x36>; clocks = <&ov5648_osc>; clock-names = "xvclk"; powerdown-gpios = <&io_expander 1 GPIO_ACTIVE_LOW>; dovdd-supply = <&ov5648_0_dovdd>; dvdd-supply = <&ov5648_0_dvdd>; status = "okay"; csi_id = <0>; #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; ov5648_0_mipi_ep: endpoint { remote-endpoint = <&mipi_csi_0_in>; link-frequencies = /bits/ 64 <210000000 168000000>; data-lanes = <1 2>; clock-lanes = <0>; }; }; }; ... &mipi_csi_0 { status = "okay"; clock-frequency = <168000000>; port { mipi_csi_0_in: endpoint { remote-endpoint = <&ov5648_0_mipi_ep>; // imx8-mipi-csi2-sam.c doesn't care it's usually <1 2>... data-lanes = <2>; csis-hs-settle = <13>; csis-clk-settle = <2>; csis-wclk; }; }; }; ... &isi_0 { status = "okay"; cap_device { status = "okay"; }; m2m_device { status = "disabled"; }; }; 以下のコマンドで写真を撮ろうとしています v4l2-ctl -d /dev/video2 -v width=1280,height=720,pixelformat=YUYV --stream-mmap --stream-count=1 --stream-to=photo.raw dmesgにデバッグ用の出力もいくつか追加しました。 [ 224.928864] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1107 [ 224.940895] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_power:2472 on 1 [ 224.950246] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_resume:2434 [ 224.959057] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_sensor_power:1870 on 1 [ 225.004545] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_sensor_init:1797 [ 225.037496] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_power:2480 ov5648_resume ret 0 [ 225.053146] input fmt RGB4 [ 225.055866] output fmt YUYV [ 225.058682] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1118 mxc_isi_config_parm ret 0 f[ 225.073740] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1124 vb2_ioctl_streamon ret 0 [ 225.087962] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:124 media_graph_walk_init ret 0 [ 225.102609] ov5648 2-0036: /drivers/media/i2c/ov5648.c:ov5648_s_stream:2146 enable 1 [ 225.112697] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret 0 ov5648 2-0036 ov5648 2-0036 [ 225.140978] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret 0 mxc-mipi-csi2.0 mxc-mipi-csi2.0 [ 225.158893] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_pipeline_enable:149 v4l2_subdev_call s_stream ret -515 mxc_isi.0 mxc_isi.0 [ 225.175873] isi-capture 32e00000.isi:cap_device: /drivers/staging/media/imx/imx8-isi-cap.c:mxc_isi_cap_streamon:1136 mxc_isi_pipeline_enable ret -515 [ 225.190760] /drivers/media/v4l2-core/v4l2-ioctl.c:__video_do_ioctl:3145 info->func() ret 0 [ 225.200349] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3490 trace() [ 225.208805] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3515 in_compat_syscall() [ 225.218306] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3532 video_put_user() [ 225.227569] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3438 [ 225.235336] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3458 check_array_args() [ 225.244760] /drivers/media/v4l2-core/v4l2-ioctl.c:video_usercopy:3482 func() [ 225.253136] /drivers/media/v4l2-core/v4l2-ioctl.c:__video_do_ioctl:3133 info->func() このログの末尾には、v4l コマンドが待機している間にコードがロックされる箇所が示されています。straceコマンドも実行してみたところ、以下のようになりました。 ioctl(3, VIDIOC_QBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, index=2, memory=V4L2_MEMORY_MMAP, m.offset=0xceb922f0, length=1, bytesused=0, flags=V4L2_BUF_FLAG_MAPPED|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC|V4L2_BUF_FLAG_TSTAMP_SRC_EOF, ...}) = 0 ioctl(3, VIDIOC_QBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, index=3, memory=V4L2_MEMORY_MMAP, m.offset=0xceb922f0, length=1, bytesused=0, flags=V4L2_BUF_FLAG_MAPPED|V4L2_BUF_FLAG_QUEUED|V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC|V4L2_BUF_FLAG_TSTAMP_SRC_EOF, ...}) = 0 ioctl(3, VIDIOC_G_FMT, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, fmt.pix_mp={width=1280, height=720, pixelformat=v4l2_fourcc('Y', 'U', 'Y', 'V') /* V4L2_PIX_FMT_YUYV */, field=V4L2_FIELD_NONE, colorspace=V4L2_COLORSPACE_SRGB, plane_fmt=[{sizeimage=1843200, bytesperline=2560}], num_planes=1}}) = 0 ioctl(3, VIDIOC_STREAMON, [V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE]) = 0 pselect6(4, NULL, NULL, [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) ioctl(3, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE VIDIOC_DQBUFで待機していることがわかります。カメラがLPモードからHSモードに正しく切り替わることは間違いないと思います。 MIPI CSIは、データが受信されたことを決して通知しないようです。 私はlinux-imxカーネルのステージングドライバを使用しています。 i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: IMX8MP with OV5648 lock on taking photo ストリームを開始すると、CSI割り込みカウンタが上昇することがわかります。 25: 365486 0 0 0 GICv3 49 Level 32e40000.csi 26: 0 0 0 0 GICv3 48 Level 32e00000.isi しかし、ISI割り込みは0のままです。 mxc-mipi-csi2 のデバッグ出力も有効にしましたが、SOT でエラーが発生しているようです。 [ 2231.150985] mxc-mipi-csi2.0: mipi_csis_s_stream: 1, state: 0x0 [ 2231.151200] mxc-mipi-csi2.0: mipi_csis_imx8mp_phy_reset: bus fmt is 8 bit! [ 2231.151240] mxc-mipi-csi2.0: fmt: 0x3001, 1280 x 720 [ 2231.151270] mxc-mipi-csi2.0: SOT Error: 1 [ 2231.151275] mxc-mipi-csi2.0: status: 00030000 [ 2231.151294] mxc-mipi-csi2.0: SOT Error: 2 [ 2231.151298] mxc-mipi-csi2.0: status: 00030000 [ 2231.151317] mxc-mipi-csi2.0: SOT Error: 3 [ 2231.151321] mxc-mipi-csi2.0: status: 00030000 [ 2231.151337] mxc-mipi-csi2.0: SOT Error: 4 [ 2231.151341] mxc-mipi-csi2.0: status: 00030000 [ 2231.151360] mxc-mipi-csi2.0: SOT Error: 5 [ 2231.151367] mxc-mipi-csi2.0: status: 00010000 [ 2231.151383] mxc-mipi-csi2.0: SOT Error: 6 [ 2231.151389] mxc-mipi-csi2.0: status: 00010000 [ 2231.151407] mxc-mipi-csi2.0: SOT Error: 7 [ 2231.151413] mxc-mipi-csi2.0: status: 00010000 [ 2231.151440] mxc-mipi-csi2.0: SOT Error: 8 [ 2231.151444] mxc-mipi-csi2.0: status: 00010000 Re: IMX8MP with OV5648 lock on taking photo コネクテッドカメラモジュールの日付レートに応じてDTSのcsis-hs-settleプロパティを更新する必要があります。詳細はアプリケーションノートAN13857、セクション3.2.5に記載されています。 https://www.nxp.com/webapp/Download?colCode=AN13857
記事全体を表示
S32K312 迷你板不可用 S32K312 迷你板在 S32 设计工作室 3.6 的示例代码中不可用。我也已经安装了所有的驱动程序。请帮帮我。 Re: S32K312 mini board is not available 嗨,@Turtledove  根据您共享的屏幕截图,目前似乎没有安装任何软件包。 S32K3 设备的 RTD 可以从 S32K3 标准软件中下载,位于: 汽车软件-S32K3/S32M27x-Cortex-M 的实时驱动程序。下载完成后,可按照《如何使用 S32 Design Studio 3.6.0 下载、安装和配置 RTD 5.0.0》主题中描述的步骤进行安装。 关于 FRDM-A-S32K312 的示例,RTD 封装中目前没有专门针对该主板提供的示例。此外,在最新版本中,没有针对 S32K312 设备的专用示例。但是,您仍然可以使用其他 S32K3 衍生物的示例作为参考。 尽管 RTD 包中未提供示例,但应用程序代码中心提供了 FRDM-A-S32K312 的应用程序示例。你可以在那里搜索这个特定的设备,将显示所有可用的示例。   BR、VaneB
記事全体を表示
PN7462AU FreeRTOS: Unable to switch from heap_3 to heap_4, system stuck + heap usage visibility Hi Team, I am using the PN7462AU platform with FreeRTOS, and the SDK example is configured to use heap_3.c. I am facing memory overflow issues and would like to better understand the heap configuration. Since heap_3 uses the standard library's malloc()/free(), functions such as xPortGetFreeHeapSize() and heap statistics are not available. To gain visibility into heap usage and potentially increase the available heap, I tried switching from heap_3.c to heap_4.c by disabling heap_3.c and enabling heap_4.c. However, the application gets stuck during startup after making this change. I have the following questions: Is it safe and recommended to switch from heap_3 to heap_4 on PN7462AU? How can I determine the amount of memory currently available to heap_3? Since heap_3 does not support xPortGetFreeHeapSize(), what are the recommended methods to monitor heap usage and detect memory exhaustion? What additional configuration changes are required when migrating from heap_3 to heap_4 (e.g., configTOTAL_HEAP_SIZE, linker script changes, memory regions, etc.)? Any guidance or examples specific to PN7462AU and FreeRTOS would be appreciated. Thank you Core and Memory Re: PN7462AU FreeRTOS: Unable to switch from heap_3 to heap_4, system stuck + heap usage visibility Hello @uday_gowda, The NFC reader library offers examples that shows the implementation of FreeRTOS with the PN7462 that could be helpful. Also, I can recommend see the AN11784, it provides guidance on integrating an RTOS with the PN7462, that you can take by reference. MCUXpresso IDE also includes several debugging features for FreeRTOS based applications. In particular, the "Heap Usage view" can help you in this case. Additional details are available in the chapter 3.6 of MCUXpresso IDE 25.06 FreeRTOS Debug Guide. Finally, please take in mind that the PN7462 only have 12k of the SRAM. BR Habib
記事全体を表示
AM/FM tuner tef6686 application circuit needed I need AM/FM tuner tef6686 application circuit, could you give me, also could you give all related information, I am designing a circuit based on it -Thanks -Alok  Re: AM/FM tuner tef6686 application circuit needed Dear Ahmishra, I have a confidential TEF668XA datasheet with an example application circuit. This can be shared only under a valid NDA with NXP. Please create a new ticket here with your company email and also share your NDA number. If you do not have the NDA yet, and you would like to sign a new one, please create a new request for the NDA here and our representative for NDA matters will help you with the process.  With Best Regards, Jozef
記事全体を表示
MPC5647 Flash Inaccessibility We are using the MPC5647 device. Using Trace32, we programmed an application into the internal Flash memory area. Immediately after the programming process started (or just after it completed), the power to the target hardware was turned off. After this event, the Flash memory in the application area could no longer be accessed. When accessing the Flash through Trace32, the memory contents appear as either "????????" or "FFFFFFFF". We suspect that the power was removed before the Flash programming operation had completely finished. In this condition, the application Flash area becomes unusable, and the Flash can only be recovered by performing the factory recovery procedure described in AN4521_MPC56xx C90FL Flash Recovery.pdf. After executing the recovery procedure, the Flash becomes usable again. We would like to understand the following: What could cause this behavior? Why does an unexpected power-off during Flash programming result in the Flash block becoming inaccessible? Why is it not possible to simply reprogram the Flash? Why is the recovery/factory initialization procedure required before the Flash can be programmed again? Is this related to an invalid ECC state, an incomplete erase operation, or another internal Flash controller condition? Any detailed explanation regarding the internal Flash mechanism would be greatly appreciated. Re: MPC5647 Flash Inaccessibility Hello, After this event, the Flash memory in the application area could no longer be accessed. When accessing the Flash through Trace32, the memory contents appear as either "????????" or "FFFFFFFF". We suspect that the power was removed before the Flash programming operation had completely finished. That points to corrupted flash scenario. In this condition, the application Flash area becomes unusable, and the Flash can only be recovered by performing the factory recovery procedure described in AN4521_MPC56xx C90FL Flash Recovery.pdf. After executing the recovery procedure, the Flash becomes usable again. Definitely a flash corruption cause by power loss during programming. Flash is full of ECC faults that is why you see ????? in Trace. Why does an unexpected power-off during Flash programming result in the Flash block becoming inaccessible? Simply if you do not finish programming or erase you will have miss match in flash data with ECC syndrome. Why is the recovery/factory initialization procedure required before the Flash can be programmed again? Standard program command expects a clean erased block After interruption: controller sees invalid state → rejects commands So: erase/program sequence never starts correctly access may be blocked or return dummy data Is this related to an invalid ECC state, an incomplete erase operation, or another internal Flash controller condition? to ECC due to power loss. Best regards, Peter
記事全体を表示
S32K312 mini board is not available S32K312 mini board is not available in example code of S32 design studio 3.6.  I have installed all the drivers as well. Kindly help me out. Re: S32K312 mini board is not available Hi @Turtledove  Based on the screenshot you shared, it appears that no software packages are currently installed. The RTD for S32K3 devices can be downloaded from S32K3 Standard Software, under: Automotive SW - S32K3/S32M27x - Real-Time Drivers for Cortex-M. Once downloaded, it can be installed following the steps described in the thread How To Download, Install and Configure the RTD 5.0.0 with S32 Design Studio 3.6.0. Regarding examples for the FRDM-A-S32K312, there are currently no examples specifically provided for this board within the RTD package. Also, in the most recent release, there are no dedicated examples for the S32K312 device. However, you can still use examples from other S32K3 derivatives as a reference. Although examples are not provided within the RTD packages, application examples for the FRDM-A-S32K312 are available in the Application Code Hub. You can search for this specific device there, and all available examples will be displayed.   BR, VaneB
記事全体を表示
AM/FMチューナーtef6686アプリケーション回路が必要 AM/FMチューナーのTEF6686アプリケーション回路図が必要なのですが、提供していただけませんか?また、関連するすべての情報も提供していただけると助かります。それを基に回路を設計しています。 -ありがとう -アロック Re: AM/FM tuner tef6686 application circuit needed 親愛なるアミシュラ様、 私は、TEF668XAの機密データシートと、それに記載されているアプリケーション回路例を所有しています。これは、NXPとの有効な秘密保持契約(NDA)の下でのみ共有可能です。会社のメールアドレスを使用して、こちらから新規チケットを作成してください。また、NDA番号も併せてご共有ください。まだNDAをお持ちでない場合、または新規にNDAに署名をご希望の場合は、こちらからNDAの新規申請を作成してください。NDA担当者が手続きをサポートいたします。 敬具、 ヨゼフ
記事全体を表示
FRDM-MCXA156 “MCU-LINK”端口无法工作 你好。 我刚收到 FRDM-MCXA156。当我将USB线插入MCU-Link端口时,我的Windows 10系统没有任何反应。我已经检查了系统的设备管理器;没有显示任何新设备。 LED D12 和 D6 在闪烁;D7 亮着。 我已经安装了 LinkServer_26.5.59。 还有其他我可以做的事情吗? 谢谢。 蔡。 开发板 MCXA Re: FRDM-MCXA156 'MCU-LINK' port not work 你好@phantomgz, 感谢您的发帖。  请参照 UM12121 文档中“"”第 3.4 节的内容,更新 mcu-link 固件。使用固件更新工具" 更新 MCU-Link 固件: Celeste_Liu_0-1781605664353.png 建议您使用 Linkserver_26.3.123 中的最新脚本: Celeste_Liu_1-1781605748462.png 希望对您有帮助。 BR 塞莱斯特 Re: FRDM-MCXA156 'MCU-LINK' port not work 用于安装 3.3 MCU-Link 固件更新实用程序的 UM12121 FRDM-MCXA156 主板用户手册 UG10219 LinkServer 与 MCUXpresso IDE 的集成
記事全体を表示
FRDM-MCXA156 'MCU-LINK' port not work Hi. I just got FRDM-MCXA156. When I plug the USB cable into the MCU-Link port, my Windows 10 system doesn't have any response. I have checked the system's Device Manager;  there isn't any new device shown up.   LEDs D12 and D6 are blinking; D7 is on. I have installed LinkServer_26.5.59. does any other thing I can do? thx. Cai. Development Board MCXA Re: FRDM-MCXA156 'MCU-LINK' port not work Hello @phantomgz , Thanks for your post.  Please update the mcu-link firmware with referring to UM12121, section "3.4 Updating MCU-Link firmware using firmware update utility": Celeste_Liu_0-1781605664353.png I recommend you using the latest script in Linkserver_26.3.123: Celeste_Liu_1-1781605748462.png Hope it helps. BR Celeste Re: FRDM-MCXA156 'MCU-LINK' port not work UM12121 FRDM-MCXA156 Board User Manual for 3.3 MCU-Link firmware update utility installation UG10219 LinkServer Integration with MCUXpresso IDE
記事全体を表示
MPC5647 フラッシュへのアクセス不可 私たちはMPC5647というデバイスを使用しています。 Trace32を使用して、アプリケーションを内部フラッシュメモリ領域にプログラムしました。プログラミング処理が開始された直後(または完了した直後)、対象ハードウェアへの電源が切断された。 この事象発生後、アプリケーション領域のフラッシュメモリにアクセスできなくなった。Trace32 を介して Flash にアクセスすると、メモリの内容は「???????」または「FFFFFFFF」と表示されます。フラッシュメモリへのプログラミング処理が完全に完了する前に電源が切断されたのではないかと推測されます。 この状態では、アプリケーションフラッシュ領域は使用できなくなり、フラッシュはAN4521_MPC56xx C90FL Flash Recovery.pdfに記載されている工場出荷時復旧手順を実行することによってのみ復旧できます。復旧手順を実行すると、フラッシュメモリは再び使用可能になります。 私たちは以下の点について理解を深めたいと考えています。 この現象の原因は何でしょうか? フラッシュプログラミング中に予期せぬ電源オフが発生すると、なぜフラッシュブロックにアクセスできなくなるのでしょうか? なぜフラッシュメモリを単純に再プログラムすることができないのでしょうか? フラッシュメモリを再度プログラムする前に、リカバリ/工場出荷時設定への初期化手順が必要なのはなぜですか? これは、無効なECC状態、不完全な消去操作、またはその他の内部フラッシュコントローラの問題に関連していますか? 内部フラッシュ機構に関する詳細な説明をいただければ大変ありがたいです。 Re: MPC5647 Flash Inaccessibility こんにちは、 この事象発生後、アプリケーション領域のフラッシュメモリにアクセスできなくなった。Trace32 を介して Flash にアクセスすると、メモリの内容は「???????」または「FFFFFFFF」と表示されます。フラッシュメモリへのプログラミング処理が完全に完了する前に電源が切断されたのではないかと推測されます。 それはフラッシュメモリの破損を示唆している。 この状態では、アプリケーションフラッシュ領域は使用できなくなり、フラッシュはAN4521_MPC56xx C90FL Flash Recovery.pdfに記載されている工場出荷時復旧手順を実行することによってのみ復旧できます。復旧手順を実行すると、フラッシュメモリは再び使用可能になります。 間違いなく、プログラミング中の停電によってフラッシュメモリが破損した原因です。フラッシュメモリにはECC障害がたくさんあるため、トレースに「????」と表示されます。 フラッシュプログラミング中に予期せぬ電源オフが発生すると、なぜフラッシュブロックにアクセスできなくなるのでしょうか? 簡単に言うと、プログラミングや消去を完了しないと、フラッシュデータに不一致が生じ、ECC症候群が発生します。 フラッシュメモリを再度プログラムする前に、リカバリ/工場出荷時設定への初期化手順が必要なのはなぜですか? 標準プログラムコマンドは、完全に消去されたブロックを想定しています。 中断後: コントローラが無効な状態を検出したため、コマンドを拒否します。 SO: 消去/プログラムシーケンスが正しく開始されない アクセスがブロックされるか、ダミーデータが返される場合があります。 これは、無効なECC状態、不完全な消去操作、またはその他の内部フラッシュコントローラの問題に関連していますか? 停電によりECCに切り替わります。 よろしくお願いいたします。 ピーター
記事全体を表示
MCXN547 - 运行时从IFR(CMPA)加载以太网MAC地址的最佳方法是什么? 你好 我们正在基于 MCXN547 芯片并采用 Zephyr RTOS 4.3.0 开发一款产品。作为出厂配置流程的一部分,我们使用 MCUXpresso 安全配置工具将每单位唯一的 EUI64 编程到 IFR 的 CMPA 区域(地址为 “0x01004190”)。从这个 EUI64 中,我们得出了 6 字节的以太网 MAC 地址。 我们希望以太网驱动程序在启动时自动使用这个 MAC 地址,而不是设备树中的静态 “本地 mac 地址”。 我们已验证,位于 `0x01004190` 的 CMPA 区域可在运行时通过内存映射访问直接读取(`devmem` 已确认这一点)。 我们的问题是:有什么推荐的方法,可以让 `nxp,enet-qos-mac` 驱动程序(MCXN547 使用的)在启动时从 IFR/CMPA 中的自定义位置读取 MAC 地址? 我们了解到,经典的 `nxp,enet-mac` 驱动程序支持 `nvmem-cells` 功能,但我们不确定 `nxp,enet-qos-mac` 驱动程序是否也支持或能够实现此功能,以及 MCXN547 的正确设备树配置应如何设置。 如果能得到恩智浦(NXP)或社区的任何指导或示例,我们将不胜感激。 运行环境: - MCU:MCXN547 - Zephyr:4.3.0(恩智浦分支 nxp-v4.3.0) -驱动程序:`驱动程序/以太网/eth_nxp_enet_qos/eth_nxp_enet_qos/eth_nxp_enet_qos_mac.c`-IDE:VS Code + mcuxPresso 扩展程序-配置:M CUXpresso 安全配置工具 MCX N Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? 如果你愿意尝试其他方案,可以试试内置 TCP/IP 协议栈的 Mongoose。Mongoose 允许您将 MG_SET_MAC_ADDRESS 重新定义为您自己的自定义函数。 尝试一下, 1. 在项目配置中禁用 Zephyr TCP/IP 2. 创建 mongoose/ 目录,并将 mongoose.c 文件复制到该目录。和 mongoose.h来自https://github.com/cesanta/mongoose 3. 创建 mongoose_config.h 文件由此: #实用主义 // 请参阅https://mongoose.ws/documentation/#build-options #define MG_ARCH MG_ARCH_ARMGCC #define MG_OTA MG_OTA_MCXN #define MG_ENABLE_TCPIP 1 #define MG_ENABLE_DRIVER_MCXN 1 #define MG_ENABLE_CUSTOM_MILLIS 1 // extern void my_function(unsigned char *mac); // #define MG_SET_MAC_ADDRESS(mac) my_function(mac) 4. 实现“uint64_t mg_millis(void)”函数,返回自启动以来经过的毫秒数。 创建一个运行 mongoose 的 Zephyr 任务,并为其分配 8kb 的堆栈空间: struct mg_mgr mgr; mg_mgr_init(&mgr); for (;;) mg_mgr_poll(&mgr, 1); 就到此为止吧。将 printf 重定向到 UART 以查看调试日志。此外,Mongoose 还内置了支持 CRA 的 OTA 更新功能, https://mongoose.ws/ota/ 有一个针对略有不同的MCU的版本测试项目, https://github.com/cesanta/mongoose/tree/master/tutorials/nxp/frdm-mcxn947-make-baremetal-builtin- 关闭 mongoose 仓库,然后在该目录中输入“make”进行构建,这需要安装 make 和 ARM GCC。 Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? 嗨@Jorini 谢谢你的帖子! 您可以按照 Zephyr 文档中的说明,选择在运行时更改 MAC 地址: MAC 地址配置 — Zephyr 项目文档 请告诉我这些信息是否有帮助! Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? 谢谢你们两位的建议! 关于 mac_config.html 方法:我们研究过,并认为这是 Zephyr 实现此功能的“简洁”方法。但是,这需要修改 eth_nxp_enet_qos_mac.c 以调用 net_eth_mac_load(),向 nxp,enet-qos-mac 绑定添加 nvmem-cells 支持,并为 CMPA/IFR 区域提供 nvmem 提供程序——这些在 Zephyr 4.3 的 MCXN547 中都不存在。所以,虽然这是正确的长期方向,但今天并不直接适用。 关于 Mongoose:对于从零开始的新项目来说,这是一个有趣的选择,但就我们而言,这意味着要替换整个 Zephyr 网络协议栈并重写我们所有的网络代码(DHCP、TLS、HTTP、OTA、基于套接字的云通信)。鉴于我们已经有了可行的解决方案,这个成本并不合理。 我们最终采用的方案(在生产环境中运行良好)是在应用程序代码中使用两个 SYS_INIT 钩子,而无需对驱动程序进行任何更改: 1. POST_KERNEL 优先级 83:在驱动程序以优先级 82 初始化后立即覆盖 ENET QoS 硬件寄存器(MAC_ADDRESS0_HIGH/LOW,地址为 0x40100300/304)。这样可以确保 MAC 芯片过滤掉地址正确的帧。 2. 应用程序优先级 1:更新 Zephyr 软件网络接口表(net_if link_addr)。如果没有这第二步,Zephyr 的 IP 协议栈会默默地丢弃所有传入的帧,因为软件 MAC 地址与硬件 MAC 地址不匹配。 感谢您
記事全体を表示
FRDM-MCXA156の「MCU-LINK」ポートが動作しません こんにちは。 FRDM-MCXA156を入手しました。USBケーブルをMCU-Linkポートに接続しても、Windows 10システムは全く反応しません。システムのデバイスマネージャーを確認しましたが、新しいデバイスは表示されていませんでした。 LED D12とD6が点滅しています。D7は点灯しています。 LinkServer_26.5.59をインストールしました。 他に私にできることはありますか? THX。 蔡。 開発ボード MCXA Re: FRDM-MCXA156 'MCU-LINK' port not work こんにちは、 @phantomgz さん、 投稿ありがとうございます。 UM12121の「3.4」の項を参照して、mcu-linkファームウェアを更新してください。ファームウェアアップデートユーティリティを使用したMCU-Linkファームウェアのアップデート: Celeste_Liu_0-1781605664353.png Linkserver_26.3.123 の最新スクリプトを使用することをお勧めします。 Celeste_Liu_1-1781605748462.png お役に立てば幸いです。 BR セレステ Re: FRDM-MCXA156 'MCU-LINK' port not work UM12121 FRDM-MCXA156ボードユーザーマニュアル(3.3 MCU-Linkファームウェアアップデートユーティリティのインストール用) UG10219 LinkServerとMCUXpresso IDEの統合
記事全体を表示
S32K312ミニボードは入手できません S32K312ミニボードは、S32デザインスタジオ3.6のサンプルコードには含まれていません。ドライバもすべてインストール済みです。どうか助けてください。 Re: S32K312 mini board is not available こんにちは、 @Turtledove ご提供いただいたスクリーンショットを見る限り、現在ソフトウェアパッケージはインストールされていないようです。 S32K3デバイス用のRTDは、S32K3標準ソフトウェアの以下の場所からダウンロードできます。 オートモーティブ SW - S32K3/S32M27x - Cortex-M 用リアルタイム・ドライバ。ダウンロード後、 S32 Design Studio 3.6.0 を使用した RTD 5.0.0 のダウンロード、インストール、構成方法に関するThreadに記載されている手順に従ってインストールできます。 FRDM-A-S32K312のサンプルに関しては、現在RTDパッケージ内にこのボード専用のサンプルは含まれていません。また、最新リリースでは、S32K312デバイス専用のサンプルは含まれていません。ただし、他のS32K3派生製品の例を参考にすることは可能です。 RTDパッケージにはサンプルは含まれていませんが、FRDM-A-S32K312のアプリケーションサンプルはアプリケーションコードハブで入手できます。そこでこの特定のデバイスを検索すると、利用可能なすべての例が表示されます。   BR、VaneB
記事全体を表示
需要AM/FM调谐器tef6686的应用电路 我需要AM/FM调谐器TEF6686的应用电路,您能提供给我吗?另外,能否一并提供所有相关信息?我正在基于此设计一个电路。 -谢谢 -阿洛克  Re: AM/FM tuner tef6686 application circuit needed 亲爱的阿米什拉, 我有一份包含应用电路示例的机密版 TEF668XA 数据手册。此信息仅可在与恩智浦(NXP)签订有效保密协议(NDA)的情况下分享。请在此处使用您的公司邮箱提交一个新工单,并附上您的保密协议编号。如果您尚未签署保密协议(NDA),且希望签署一份新的协议,请在此提交新的保密协议申请,我们的保密协议事务专员将协助您完成相关流程。  致以最崇高的敬意 约瑟夫
記事全体を表示
MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? Hello, We are developing a product based on the MCXN547 with Zephyr RTOS 4.3.0. As part of our factory provisioning process, we program a unique EUI64 per unit into the CMPA region of the IFR (at address `0x01004190`), using the MCUXpresso Secure Provisioning Tool. From this EUI64 we derive the 6-byte Ethernet MAC address. We would like the Ethernet driver to automatically use this MAC address at boot, instead of a static `local-mac-address` in the devicetree. We have verified that the CMPA region at `0x01004190` is directly readable at runtime via memory-mapped access (`devmem` confirmed this). Our question: What is the recommended approach to have the `nxp,enet-qos-mac` driver (used by the MCXN547) read the MAC address from a custom location in the IFR/CMPA at startup? We are aware that the classic `nxp,enet-mac` driver supports `nvmem-cells` for this purpose, but we are not sure if this is also supported or achievable with the `nxp,enet-qos-mac` driver, and what the correct devicetree configuration would be for the MCXN547. Any guidance or example from NXP or the community would be greatly appreciated. Environment: - MCU: MCXN547 - Zephyr: 4.3.0 (NXP fork nxp-v4.3.0) - Driver: `drivers/ethernet/eth_nxp_enet_qos/eth_nxp_enet_qos_mac.c` - IDE: VS Code + MCUXpresso extension - Provisioning: MCUXpresso Secure Provisioning Tool MCXN Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? If you're willing to try an alternative route, you can try Mongoose with its built-in TCP/IP stack. Mongoose allows you to redefine MG_SET_MAC_ADDRESS to your custom function. To try, 1. Disable Zephyr TCP/IP in your project conf 2. Create mongoose/ directory, and copy mongoose.c and mongoose.h from https://github.com/cesanta/mongoose 3. Create mongoose_config.h with this: #pragma once // See https://mongoose.ws/documentation/#build-options #define MG_ARCH MG_ARCH_ARMGCC #define MG_OTA MG_OTA_MCXN #define MG_ENABLE_TCPIP 1 #define MG_ENABLE_DRIVER_MCXN 1 #define MG_ENABLE_CUSTOM_MILLIS 1 // extern void my_function(unsigned char *mac); // #define MG_SET_MAC_ADDRESS(mac) my_function(mac) 4. Implement "uint64_t mg_millis(void)" to return number of milliseconds since boot. Make a Zephyr task that runs mongoose, give it 8kb stack: struct mg_mgr mgr; mg_mgr_init(&mgr); for (;;) mg_mgr_poll(&mgr, 1); And that should be it.  Redirect printf to UART to see debug logs. Also, Mongoose gives you CRA-ready OTA built-in, https://mongoose.ws/ota/ There is a pre-built test project for a slightly different MCU, https://github.com/cesanta/mongoose/tree/master/tutorials/nxp/frdm-mcxn947-make-baremetal-builtin - close mongoose repo and type "make" in that directory to build, that needs make and ARM GCC installed. Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? Hi @Jorini  Thank you for the post! You could follow the Zephyr documentation using the option to change the MAC address at runtime: MAC Address Configuration — Zephyr Project Documentation Please let me know if this information helps!  Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? Thank you both for the suggestions! Regarding the mac_config.html approach: we looked into it and agree it is the "clean" Zephyr way to do this. However, it requires modifying eth_nxp_enet_qos_mac.c to call net_eth_mac_load(), adding nvmem-cells support to the nxp,enet-qos-mac binding, and having an nvmem provider for the CMPA/IFR region — none of which exist in Zephyr 4.3 for the MCXN547. So while it is the right long-term direction, it is not directly applicable today. Regarding Mongoose: it is an interesting option for new projects starting from scratch, but in our case it would mean replacing the entire Zephyr network stack and rewriting all our networking code (DHCP, TLS, HTTP, OTA, socket-based cloud communication). The cost is not justified given that we already have a working solution. What we ended up doing — and it works correctly in production — is using two SYS_INIT hooks in our application code, with no changes to the driver: 1. POST_KERNEL priority 83: overwrite the ENET QOS hardware registers (MAC_ADDRESS0_HIGH/LOW at 0x40100300/304) right after the driver initializes at priority 82. This ensures the MAC chip filters frames with the correct address. 2. APPLICATION priority 1: update the Zephyr software network interface table (net_if link_addr). Without this second step, Zephyr's IP stack silently discards all incoming frames because the SW MAC does not match the HW MAC. Thanks you
記事全体を表示
MPC5647 闪存无法访问 我们使用的是 MPC5647 设备。 我们使用Trace32,将一个应用程序编程写入了内部闪存区域。编程过程刚开始(或刚一完成),目标硬件的电源就被切断了。 此事件发生后,便无法再访问应用区域中的闪存。通过Trace32访问Flash时,内存内容显示为"????????" ,或者"FFFFFFFF" 。我们怀疑是在Flash编程操作尚未完全结束之前就切断了电源。 在此情况下,应用闪存区域将无法使用,且只能通过执行 AN4521_MPC56xx C90FL Flash Recovery.pdf 中所述的出厂恢复程序来恢复闪存。执行恢复操作后,闪存即可再次使用。 我们希望了解以下内容: 是什么原因导致了这种现象? 为什么在闪存编程过程中发生意外断电会导致无法访问该闪存块? 为什么不能直接对闪存进行重新编程呢? 为什么在重新对闪存进行编程之前,必须先执行恢复/出厂初始化操作? 这是否与无效的 ECC 状态、不完整的擦除操作,还是其他闪存控制器内部状况有关? 如果能对Flash的内部工作原理进行详细说明,我们将不胜感激。 Re: MPC5647 Flash Inaccessibility 你好 此事件发生后,便无法再访问应用区域中的闪存。通过Trace32访问Flash时,内存内容显示为"????????" ,或者"FFFFFFFF" 。我们怀疑是在Flash编程操作尚未完全结束之前就切断了电源。 这表明闪存可能已损坏。 在此情况下,应用闪存区域将无法使用,且只能通过执行 AN4521_MPC56xx C90FL Flash Recovery.pdf 中所述的出厂恢复程序来恢复闪存。执行恢复操作后,闪存即可再次使用。 这肯定是编程过程中因断电导致的闪存损坏。闪存中存在大量ECC错误,这就是为什么你在跟踪信息中看到“?????”的原因。 为什么在闪存编程过程中发生意外断电会导致无法访问该闪存块? 简而言之,如果您未完成编程或进行了擦除,闪存数据将出现不匹配,并伴随ECC症状。 为什么在重新对闪存进行编程之前,必须先执行恢复/出厂初始化操作? 标准程序命令期望获得一个已彻底擦除的块 中断后: 控制器检测到无效状态 → 拒绝命令 因此: 擦除/编程序列始终无法正确启动 访问可能被阻止或返回虚假数据 这是否与无效的 ECC 状态、不完整的擦除操作,还是其他闪存控制器内部状况有关? 因电源中断而进入ECC状态。 顺祝商祺! Peter
記事全体を表示
MCXN547 - 実行時にIFR(CMPA)からイーサネットMACアドレスをロードする最適な方法は? こんにちは、 当社は、MCXN547とZephyr RTOS 4.3.0をベースとした製品を開発しています。工場出荷時のプロビジョニングプロセスの一環として、MCUXpressoセキュアプロビジョニングツールを使用して、ユニットごとに固有のEUI64をIFRのCMPA領域(アドレス`0x01004190`)にプログラムします。このEUI64から、6バイトのイーサネットMACアドレスを導き出します。 イーサネットドライバが、デバイスツリー内の静的な`local-mac-address`ではなく、起動時にこのMACアドレスを自動的に使用するようにしたいと考えています。 メモリマップドアクセスにより、`0x01004190`のCMPA領域が実行時に直接読み取り可能であることを確認しました(`devmem`で確認済み)。 私たちの質問:MCXN547で使用される`nxp,enet-qos-mac`ドライバが、起動時にIFR/CMPA内のカスタム位置からMACアドレスを読み取るための推奨される方法は何ですか? 従来の`nxp,enet-mac`ドライバがこの目的のために`nvmem-cells`をサポートしていることは承知していますが、`nxp,enet-qos-mac`ドライバでもこれがサポートされているか、または実現可能かどうか、またMCXN547の正しいデバイスツリー構成が何になるのかは不明です。 NXP社またはコミュニティからのアドバイスや事例をいただければ大変ありがたいです。 環境: - MCU: MCXN547 - Zephyr: 4.3.0(NXPフォーク nxp-v4.3.0) - ドライバ: `drivers/ethernet/eth_nxp_enet_qos/eth_nxp_enet_qos_mac.c` - IDE: VS Code + MCUXpresso拡張機能 - プロビジョニング: MCUXpresso セキュアプロビジョニングツール MCX N Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? もし別の方法を試す気があるなら、内蔵TCP/IPスタックを持つMongooseを試してみるのも良いでしょう。Mongooseでは、MG_SET_MAC_ADDRESSを独自の関数に再定義できます。 試みるために、 1. プロジェクトコンバージョンでZephyrのTCP/IPを無効にする 2. mongoose/ディレクトリを作成し、mongoose.cをコピーしますおよび mongoose.hhttps://github.com/cesanta/mongooseより 3. mongoose_config.h を作成します。これを使って: #pragma once // https://mongoose.ws/documentation/#build-optionsを参照してください #define MG_ARCH MG_ARCH_ARMGCC #define MG_OTA MG_OTA_MCXN #define MG_ENABLE_TCPIP 1 #define MG_ENABLE_DRIVER_MCXN 1 #define MG_ENABLE_CUSTOM_MILLIS 1 // extern void my_function(unsigned char *mac); // #define MG_SET_MAC_ADDRESS(mac) my_function(mac) 4. ブートからのミリ秒数を返す「uint64_t mg_millis(void)」を実装します。 Mongooseを実行するZephyrタスクを作成し、8kbスタックを与えてください: struct mg_mgr mgr; mg_mgr_init(&mgr); for (;;) mg_mgr_poll(&mgr, 1); これで全てです。デバッグログを表示するには、printfをUARTにリダイレクトしてください。また、MongooseにはCRA対応のOTA機能が組み込まれています。https://mongoose.ws/ota/ 少し異なるMCU用の既成テストプロジェクトがあります https://github.com/cesanta/mongoose/tree/master/tutorials/nxp/frdm-mcxn947-make-baremetal-builtin - mongoose リポジトリを閉じて、そのディレクトリで「make」と入力してビルドします。これはmakeとARM GCCのインストールが必要です。 Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? こんにちは、 @Jorini さん。 投稿ありがとうございます! Zephyrのドキュメントでは、実行時にMACアドレスを変更するオプションを利用できます:MACアドレス設定 — Zephyrプロジェクトドキュメント この情報がお役に立てば幸いです! Re: MCXN547 - Best approach to load Ethernet MAC address from IFR (CMPA) at runtime? お二人ともご提案ありがとうございました! mac_config.htmlアプローチについてですが、調べた結果、それが「クリーン」なZephyrのやり方だと合意しました。しかし、eth_nxp_enet_qos_mac.cを変更してnet_eth_mac_load()を呼び出す必要があり、nxp、enet-qos-macバインディングにnvmem-cellsのサポートを追加し、CMPA/IFR領域用のnvmemプロバイダーを設置する必要がありますが、これらはMCXN547のZephyr 4.3には存在しません。したがって、これは長期的に正しい方向性ではありますが、今日直接適用できるものではありません。 Mongooseについてですが、新規プロジェクトから一から始めるには興味深い選択肢ですが、私たちの場合はZephyrネットワークスタック全体を置き換え、ネットワークコード(DHCP、TLS、HTTP、OTA、ソケットベースのクラウド通信)をすべて書き直すことになります。既に有効な解決策があることを考えると、この費用は正当化されない。 最終的に私たちが行ったこと、そして本番環境で正しく動作したのは、アプリケーションコードに2つのSYS_INITフックを使い、ドライバに変更を加えないというものです。 1. 優先度83 POST_KERNEL:ドライバが優先度82で初期化された直後にENET QOSハードウェアレジスタ(MAC_ADDRESS0_HIGH/LOWで0x40100300/304)を上書きします。これにより、MACチップが正しいアドレスを持つフレームを確実にフィルタリングできるようになります。 2. アプリケーション優先度1:Zephyrソフトウェアネットワークインターフェーステーブル(net_if link_addr)を更新。この2段階目がなければ、ZephyrのIPスタックはSWのMACがハードウェアMACと一致しないため、すべての受信フレームを静かに破棄します。 ありがとうございます
記事全体を表示
Matlab2023a 调用 S32DS3.5 时遇到错误 亲爱的MBDT团队:我们使用 MATLAB 2023a 脚本在编译 Simulink 模型后生成代码,然后调用 eclipsec.exe 进行无界面后台编译。构建完成后,将在 Simulink 诊断查看器中创建一个超链接,用于直接打开与已编译项目对应的工作区。该工作流在 S32DS 3.4 版本中运行非常顺利。然而,在升级到 S32DS 3.5.8 之后,出现了两个问题:问题 1:单击 Simulink 创建的超链接将启动后台进程 s32ds.exe,随后会弹出一个窗口,并立即关闭。我们尝试了多种解决方案,例如在 s32ds.ini 文件中添加参数 `"-vm \bin\javaw.exe" `(但这对 s32ds.exe 没有任何影响),并在系统环境变量中将 JDK 11 设为优先选项。这些尝试都没有解决问题。问题 2:如前所述,通过 MATLAB 脚本调用 eclipsec.exe 会触发屏幕截图中显示的错误:Java 已启动但返回退出代码 =1。我们将"\bin\javaw.exe、" 以及 JDK 11 的路径设置为系统环境变量的最前项。命令提示符正确显示了 Java 11(64 位),但 Simulink 编译时仍试图加载 jvm.dll。删除"client\jvm.dll 后"或者"server\jvm.dll" ,程序会改为定位 java.exe,但仍会报告错误,退出代码为 4。此外,在所有情况下,手动编译依然能够成功。所有相关的文件和设置都将上传以供您参考。请帮忙提供一些建议,以解决这个问题。谢谢。 Re: Matlab2023a Envokes S32DS3.5 Encountered Error 你好, 从你的信息来看,我理解你有一个 Simulink 模型,并使用 Embedded Coder 为其生成代码。然后您设置了一个使用 eclipsec 编译代码的工作流程。我发现的主要问题是 MATLAB 目前没有使用正确的 Java 版本。你有没有尝试就这个问题联系过他们? 此外,我怀疑您没有使用 NXP 开发的基于模型的设计工具箱(例如,S32K3、S32K1 等)。如果我错了,请告诉我。 此致, 索林·班奇拉
記事全体を表示