Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
MCXA UART ISP协议/程序 我想实现UART、MCXA142的ISP通信主机端。我发送了 Ping 数据包并收到了预期的响应。发送和接收数据包的典型顺序是什么? 目前,我的情况如下: 1. 发送 Ping 2. 接收 Ping 响应 3. 在帧数据包中发送命令包:全部擦除 4. 没有回应   MCXA 回复:MCXA UART ISP 协议/程序 Hi Mateusz, ISP 协议主机已在 Secure Provisioning SDK 中实现。这是开源的 python 代码。我建议重复使用。
記事全体を表示
SDK_24.12.00_FRDM-MCXA153のプリセットをピン留めします こんにちは 最新のSDK_24.12.00_FRDM-MCXA153では、Config Tools -> Pins 基本プリセットは BOARD_InitPins つだけになりました。 以前は、LED、ボタンなど用に別々のものがありました。これは意図的な変更ですか、それともバグですか? よろしく ダニエル書 日時:SDK_24.12.00_FRDM-MCXA153のプリセットをピンします Hello, OK、あなたの答えをありがとう。 よろしくお願いします。 Daniel 日時:SDK_24.12.00_FRDM-MCXA153のプリセットをピンします Hi Daniel, MCUXpresso SDKボードプロジェクトテンプレートは、FRDM-MCXA153の場合に探している機能グループをサポートしていないようです。回避策として、スタンドアロン バージョンの MCUXpresso Config Tools で新しい FRDM-MCXA153 構成を作成しようとすると、そこに機能グループが表示されます。設定を作成したら、生成された .MEX ファイルを MCUXpresso IDE プロジェクトに読み込みます。 よろしくお願いします。 Lukas 日時:SDK_24.12.00_FRDM-MCXA153のプリセットをピンします こんにちは ご回答ありがとうございます-機能グループを追加する方法を知っています。しかし、私は大学の学生向けの指示を更新しているため、LED、BUTTONなどのグループが永久に削除されているかどうかを尋ねました。 よろしく ダニエル書 日時:SDK_24.12.00_FRDM-MCXA153のプリセットをピンします Hello @danielkrol  これは単なる変更です。次のように機能グループを追加できます。   BR アリス
記事全体を表示
i.MX RTでのTensorFlow Lite for Microcontrollersスタート・ガイド このラボでは、既存のTensorFlow Liteモデルを取得し、推論エンジンであるTensorFlow Lite for Microcontrollersを使用して、そのモデルをNXP MCUデバイス上で実行する方法を説明します。ここでは、eIQ Toolkit ラボの一部として生成されたFlowerモデルを例として使用しますが、他のTFLiteモデルでも同じプロセスを使用できます。eIQは、推論エンジンのほかに、LCDとカメラを組み込んだ例も提供しており、EVKボードを使用して、さまざまな種類の花を識別することができます。   このラボはカメラ+LCDを使用せずに利用することも可能ですが、その場合、花の画像をC配列に変換し、コンパイル時にロードする必要があります。   この投稿に添付されているものは次の通りです。 新しいモデルを試すための写真 TensorFlowモデルで「転移学習」を行い、次に TensorFlow Lite for Microcontrollers を使用して、i.MX RTファミリでTFLiteモデルを実行する方法について記載されたラボ文書。カメラとLCDの使用はオプションです。 カメラ+LCDをお持ちの場合は、eIQ TensorFlow Lite for Microcontrollers for i.MX RT170 - With Camera.pdfをご利用ください。 カメラ、LCDをお持ちでない場合は、eIQ TensorFlow Lite for Microcontrollers for i.MX RT170 - Without Camera.pdfをご利用ください。 RT685を使用される場合は、eIQ TensorFlow Lite for Microcontrollers for i.MX RT685 - Without Camera.pdfをご利用ください。 このラボは、次のボードに対応しています。 FRDM-MCXN947 i.MX RT685-EVK i.MX RT1050-EVKB i.MX RT1060-EVK i.MX RT1064-EVK i.MX RT1160-EVK i.MX RT1170-EVK i.MX RT1180-EVK MCUXpresso SDK 2.16とeIQ Toolkit 1.13.1に対応するため、2024年11月に更新されました。 i.MX RT
記事全体を表示
imx8.mp 无法设置相机 Hello, 我正在尝试设置一个自定义相机,该相机连接到我的主板的 CSI0 端口,具有 imx.8mp。摄像机通过 LVDS 连接到 MIPI 桥,桥的 I2C 目前由微控制器编程。我暂时不需要 I2C。 我已经使用 Scope 进行了检查,并且在引脚上看到了 MIPI CSI 信号。 我正在尝试启动并运行该软件,但是 /dev/video0 设备尚未创建。问题是 IMX8-MEDIA-DEV 驱动程序无法探测。 这是我的相关 DTS 代码: / { cam1_clk: cam1-clk { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <27000000>; }; }; &cameradev { status = "okay"; }; &i2c3 { cam1: camera1@36 { compatible = "onsemi,ar052x"; reg = <0x36>; #address-cells = <0x1>; #size-cells = <0x0>; clocks = <&cam1_clk>; clock-names = "ext"; port@0 { reg = <0>; cam1_mipi_ep: endpoint { remote-endpoint = <&mipi_csi0_ep>; bus-type = <4>; /* MIPI CSI-2 D-PHY */ data-lanes = <2>; clock-lanes = <0>; clock-noncontinuous = <1>; }; }; }; }; &isi_0 { status = "okay"; cap_device { status = "okay"; }; }; &isi_1 { status = "okay"; cap_device { status = "okay"; }; }; &mipi_csi_0 { status = "okay"; #address-cells = <1>; #size-cells = <0>; compatible = "fsl,imx8mp-mipi-csi"; no-reset-control; //power-domains = <&mipi_phy1_pd>; port@0 { reg = <0>; mipi_csi0_ep: endpoint {}; }; }; &mipi_csi0_ep { remote-endpoint = <&cam1_mipi_ep>; data-lanes = <4>; csis-hs-settle = <16>; csis-clk-settle = <2>; csis-wclk; }; &mipi_csi_1 { status = "okay"; port@1 { reg = <1>; mipi_csi1_ep: endpoint {}; }; }; [ 107.559356] imx8_mipi_csi2_sam: module is from the staging directory, the quality is unknown, you have been warned. [ 107.580669] mxc-mipi-csi2-sam 32e50000.csi: supply mipi-phy not found, using dummy regulator [ 107.611984] : mipi_csis_imx8mp_phy_reset, No remote pad found! [ 107.626983] mxc-mipi-csi2-sam 32e50000.csi: lanes: 2, hs_settle: 0, clk_settle: 0, wclk: 0, freq: 266000000 [ 107.658121] ar052x 1-0036: Probing ar052x Driver [ 107.662908] i2c i2c-1: new_device: Instantiated device ar052x at 0x36 [ 107.688612] imx8_isi_capture: module is from the staging directory, the quality is unknown, you have been warned. [ 107.711395] imx8_capture: module is from the staging directory, the quality is unknown, you have been warned. [ 107.724051] isi-capture 32e00000.isi:cap_device: deferring 32e00000.isi:cap_device device registration [ 107.733520] mxc-isi 32e00000.isi: mxc_isi.0 registered successfully [ 107.741636] isi-capture 32e02000.isi:cap_device: deferring 32e02000.isi:cap_device device registration [ 107.751060] mxc-isi 32e02000.isi: mxc_isi.1 registered successfully [ 108.118167] imx8_media_dev: module is from the staging directory, the quality is unknown, you have been warned. [ 108.164988] mx8-img-md: Registered mxc_isi.0.capture as /dev/video0 [ 108.194417] mx8-img-md: Registered mxc_isi.1.capture as /dev/video1 [ 108.214117] mxc-md 32c00000.bus:camera: 2 deferring csi device registration 这是显示失败的日志。我不明白为什么媒体驱动程序尝试查找名为“isi”的节点,并且当两个节点相同时会失败。 到目前为止我已经尝试了很多事情。 其中一件重要的事情是,当我在 mipi_csi1 中设置 status="disabled" 时,csi2-sam 驱动程序就不会探测。 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano 回复:imx8.mp 无法设置相机 Hi, 感谢您对恩智浦半导体产品的关注, 确保您的传感器已正确初始化,请参考以下步骤。 用户必须通过以下步骤确保传感器能够正常工作: • 检查所有电源电压。 • 检查传感器MCLK频率。 • 检查重置和电源顺序。 • 确保传感器和 SoC 之间的 I2C 通信正常。 • 确保传感器初始化寄存器配置正确。 • 检查传感器数据通道和时钟通道信号。 • 确保传感器输出流在 SoC MIPI 捕获能力范围内(参见第 5 节)。 此致 回复:imx8.mp 无法设置相机 真正的问题是 CSI 驱动程序仅为 CSI1 调用,而不为 CSI0 调用。 [ 35.617099] imx8_mipi_csi2_sam: module is from the staging directory, the quality is unknown, you have been warned. [ 35.638426] mxc-mipi-csi2-sam 32e50000.csi: supply mipi-phy not found, using dummy regulator 我没有看到它被称为 32e40000.csi
記事全体を表示
OpenVX Vision图像扩展API介绍-基础API <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 简介 EVIS(增强视觉指令集)是一种API级编程语言,适用于GC7000XSVX(i.MX8QM)和VIP8000NanoSi(i.MX8MP)。这些指令利用了具有视觉功能的硬件中增强的视觉功能,具有低延迟。除了通过 Khronos Group OpenVX API 提供的功能之外,它还为视觉图像处理提供了额外的功能。在i.MX8QM/i.MX8MP BSP中,OpenCL编译器也支持EVIS指令。所以,它也是一个 OpenCL VX 扩展 API。 源文件可以在/usr/include/CL/cl_viv_vx_ext.h中找到。 硬件要求 i.MX8QM (GC7000XSVX) 支持 EVIS1。 i.MX8MP (VIP8000NanoSi) 支持 EVIS2。 打包数据类型 为了充分利用指令的计算能力,扩展API支持打包数据类型。例如,在标准 OpenCL 中,矢量 char4 将占用 4x 32 位寄存器,而打包的 char16 仅占用 128 位。因此尽可能使用打包数据类型。 字符型、无符号字符型、短整型、无符号短整型、整数型、无符号整数型、 支持浮点打包数据类型。它们的定义是 vxc_ 前缀即 vxc_char、vxc_uchar、vxc_short、vxc_ushort、vxc_int、vxc_uint、vxc_float,后跟定义 元素的数量 打包数据。对于所有压缩包,支持的 n 值为 2、4、8 和 16 数据 类型。 表1 打包数据类型列表 类型 描述 vxc_charn n 个压缩有符号字符的向量 价值 vxc_ucharn n 个无符号压缩向量 特点 价值 vxc_shortn n 个向量被打包 签名短 价值 vxc_ushortn n 个压缩无符号短整型值的向量 vxc_intn n 个压缩有符号整数值的向量 vxc_uintn n 个压缩无符号整数值的向量 vxc_floatn n 个压缩浮点数的向量 价值 OP_CODE指令 OP_CODE指令对打包数据进行操作。枚举可以在/usr/include/CL/cl_viv_vx_ext.h中找到。 仅EVIS1支持指令: VXC_IAdd VXC_MagPhase VXC_双线性 VXC_选择添加 VXC_BitReplace VXC_过滤器 VXC_DP2x16/VXC_DP2x16_b 对象加载和存储 打包类型图像数据读/写:支持的类型为打包8位/16位整数、16位浮点数。image1d_t/image1d_array/image2d_t 的图像读/写。偏移量应使用 VXC_5BITOFFSET_XY(x, y) 组成。 VXC_OP4(img_load,目标,图像,坐标,偏移量,信息) VXC_OP4_NoDest(img_store,图像,坐标,颜色,信息) 参数: img_load/img_store 读取/写入图像数据。 目标 加载数据的目的地。 图像为 img_load 读取的打包图像数据。将打包好的图像数据写入img_store。 坐标坐标来读取/写入图像数据。 颜色正在写入 img_store 的图像的图像数据。 信息 请参阅 VXC_MODIFIER(StartBin, EndBin, SourceBin, RoundingMode, Clamp) 中的更多信息。 VXC_MODIFIER(StartBin, EndBin, SourceBin, RoundingMode, Clamp) 参数: StartBin/EndBin 连续打包数据的第一个 bin/最后一个 bin。 SourceBin 未使用。 RoundingMode 0 :向零(截断), 1 :向无穷大(向上舍入), 2 :向最接近的偶数, 3 :未使用。 钳位0 :否,结果被截断以适合结果类型(仅复制低位), 1 :是,结果被钳位以适合结果类型。 例如, int2 坐标 = (int2)(get_global_id(0),get_global_id(1)); vxc_uchar16 r1; VXC_OP4(img_load, r1, in_image, coord , 0, VXC_MODIFIER(0, 15, 0, VXC_RM_TowardZero, 0)); VXC_过滤器 该接口将指定的过滤器应用于 3x3 像素块。 VXC_OP4(过滤器,目标,Src0,Src1,Src2,信息) 参数: 过滤器过滤模式。 目标已过滤的图像。 Src0 3x3 过滤器的第一行像素。 Src1 3x3 过滤器的第二行像素。 Src2 3x3 过滤器的第三行像素。 信息请参阅 VXC_MODIFIER_FILTER(StartBin、EndBin、SourceBin、Filter、Clamp)中的更多信息。 VXC_MODIFIER_FILTER(StartBin, EndBin, SourceBin, Filter, Clamp) 参数: StartBin/EndBin连续打包数据的第一个 bin/最后一个 bin。 SourceBin 未使用。 过滤器 过滤模式如表2所示。 Clamp 0 :否,结果被截断以适合结果类型(仅复制低位), 1 :是的,结果被限制以适合结果类型。 表 2. 过滤模式列表: 过滤模式 描述 VXC_FM_BOX 计算 3x3 盒式过滤器: |1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9|. VXC_FM_高斯 计算 3x3 高斯滤波器: |1/16, 2/16, 1/16, 2/16, 4/16, 2/16, 1/16, 2/16, 1/16|. VXC_FM_SobelX 计算 x 方向的 3x3 Sobel 滤波器: |-1,0,1,-2,0,2,-1,0,1|。 VXC_FM_SobelY 计算 y 方向的 3x3 Sobel 滤波器: |-1,-2,-1,0,0,0,1,2,1|。 VXC_FM_ScharrX 计算 x 方向的 3x3 Scharr 滤波器: |3, 0, -3, 10, 0, -10, 3, 0, -3|. VXC_FM_ScharrY 计算 y 方向的 3x3 Scharr 滤波器: |3, 10, 3, 0, 0, 0, -3, -10, -3|. VXC_FM_Max 从 3x3 内核获取最大值。 VXC_FM_最小值 从 3x3 内核中获取最小值。 VXC_FM_中值 从 3x3 核中获取中位数。 例如(高斯滤波器示例中的详细信息), int2 coord_in1 = coord + (int2)(-1, -1);\n\ VXC_OP4(img_load,lineA,in_image,coord_in1,0,VXC_MODIFIER(0,15,0,VXC_RM_TowardZero,0));\n\ int2 coord_in2 = coord + (int2)(-1, 0);\n\ VXC_OP4(img_load,lineB,in_image,coord_in2,0,VXC_MODIFIER(0,15,0,VXC_RM_TowardZero,0));\n\ int2 coord_in3 = coord + (int2)(-1, 1);\n\ VXC_OP4(img_load,lineC,in_image,coord_in3,0,VXC_MODIFIER(0,15,0,VXC_RM_TowardZero,0));\n\ int info = VXC_MODIFIER_FILTER(0, 13, 0, VXC_FM_Guassian, 0);\n\ VXC_OP4(过滤器,输出,线路A,线路B,线路C,信息);\n\ VXC_AbsDiff 计算 a 和 b 之间的绝对差的结果。它适用于打包数据,因此可以计算 16x 8 位值或 8x 16 位值。 VXC_OP3(abs_diff, 目标, Src0, Src1, 信息) 参数: abs_diff 指定绝对差函数。 Dest 存储结果的目的地。 Src0 计算绝对差的第一个源。 Src1 计算绝对差的第二个来源。 信息请参阅 VXC_MODIFIER(StartBin, EndBin, SourceBin, RoundingMode, Clamp) 中的更多信息。 还有其他接口这里就不一一列举了,可以在/usr/include/CL/cl_viv_vx_ext.h中找到。IEVXC_IAdd、VXC_IAccSq、VXC_Lerp、VXC_MagPhase、VXC_MulShift、VXC_Clamp、VXC_BiLinear、VXC_SelectAdd、VXC_AtomicAdd、VXC_BitExtract 和 VXC_BitReplace。 进一步阅读: OpenVX Vision图像扩展API介绍-DP Dot Products 回复:OpenVX Vision图像扩展API介绍-基础API <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 有用,请问大神OpenVX Vision Image Extension API Introduction - DP Dot Products这个链接怎么进不去呢!
記事全体を表示
u-boot 环境预设用于 SD 卡镜像 在某些情况下,例如量产或准备演示。 我们需要将 u-boot 环境存储在 demo sdcard 镜像中。 这里有一种方法: HW:  i.MX8MP evk SW: LF_v5.15.52-2.1.0_images_IMX8MPEVK.zip 思路是使用 fw_setenv 将 SD 卡镜像设置为与在真实 eMMC/SD 卡上的操作相同。 出于测试目的,在 u-boot-initial-env 中添加 test=ABCD。 并使用 fw_printenv 进行检查,同时使用 hexdump 进行二次确认。 U-Boot 环境变量已写入 SD 卡镜像 (imx-image-multimedia-imx8mpevk.wic)。所有这些操作都是在主机 x86/x64 PC 上进行的。 ./fw_setenv -c fw_env.config -f u-boot-initial-env Environment WRONG, copy 0 Cannot read environment, using default ./fw_printenv -c fw_env.config Environment OK, copy 0 jh_root_dtb=imx8mp-evk-root.dtb loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bsp_script}; mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi arch=arm baudrate=115200 ...... ...... ...... splashimage=0x50000000 test=ABCD usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi vendor=freescale hexdump -s 0x400000 -n 2000 -C imx-image-multimedia-imx8mpevk.wic 00400000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| hexdump -s 0x400000 -n 10000 -C imx-image-multimedia-imx8mpevk.wic 00400000 5f a4 9b 97 20 6a 68 5f 72 6f 6f 74 5f 64 74 62 |_... jh_root_dtb| 00400010 3d 69 6d 78 38 6d 70 2d 65 76 6b 2d 72 6f 6f 74 |=imx8mp-evk-root| 00400020 2e 64 74 62 00 20 6c 6f 61 64 62 6f 6f 74 73 63 |.dtb. loadbootsc| 00400030 72 69 70 74 3d 66 61 74 6c 6f 61 64 20 6d 6d 63 |ript=fatload mmc| 00400040 20 24 7b 6d 6d 63 64 65 76 7d 3a 24 7b 6d 6d 63 | ${mmcdev}:${mmc| 00400050 70 61 72 74 7d 20 24 7b 6c 6f 61 64 61 64 64 72 |part} ${loadaddr| 00400060 7d 20 24 7b 62 73 70 5f 73 63 72 69 70 74 7d 3b |} ${bsp_script};| 00400070 00 20 6d 6d 63 5f 62 6f 6f 74 3d 69 66 20 6d 6d |. mmc_boot=if mm| ...... ...... ...... 00401390 76 3d 31 00 73 6f 63 3d 69 6d 78 38 6d 00 73 70 |v=1.soc=imx8m.sp| 004013a0 6c 61 73 68 69 6d 61 67 65 3d 30 78 35 30 30 30 |lashimage=0x5000| 004013b0 30 30 30 30 00 74 65 73 74 3d 41 42 43 44 00 75 |0000.test=ABCD.u| 004013c0 73 62 5f 62 6f 6f 74 3d 75 73 62 20 73 74 61 72 |sb_boot=usb star| 004013d0 74 3b 20 69 66 20 75 73 62 20 64 65 76 20 24 7b |t; if usb dev ${| 004013e0 64 65 76 6e 75 6d 7d 3b 20 74 68 65 6e 20 64 65 |devnum}; then de| 将 SD 卡镜像刷写到 i.MX8MP EVK 开发板的 eMMC 中以检查 uuu -b emmc_all imx-boot-imx8mp-lpddr4-evk-sd.bin-flash_evk imx-image-multimedia-imx8mpevk.wic  首次启动时,环境变量已存在。 如何实现: a. fw_setenv/fw_printenv: https://github.com/sbabic/libubootenv.git 注意:请勿使用 uboot 的 fw_setenv/fw_printenv 工具 在主机 x86/x64 PC上编译。工具仅在主机上使用。 b. u-boot-initial-env 在 uboot 环境下,生成 u-boot-initial-env 注意:Yocto 默认会部署 u-boot-initial-env c. fw_env.config  imx-image-multimedia-imx8mpevk.wic 0x400000 0x4000 其中 0x400000 和 0x4000 这两个值来自 uboot-imx/configs/imx8mp_evk_defconfig 配置文件。 CONFIG_ENV_SIZE=0x4000 CONFIG_ENV_OFFSET=0x400000 现在,您可以运行 ./fw_setenv -c fw_env.config -f u-boot-initial-env i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano i.MX6 全部 i.MX6DL i.MX6 双核 i.MX6DualPlus | 6QuadPlus i.MX6 四核 i.MX6S i.MX6SL i.MX6SoloX i.MX6UL i.MX7 双核 i.MX7 单核 i.MX7ULP i.MX8ULP Linux
記事全体を表示
i.MX 8 - RTSP 流媒体支持 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 最近我在 i.MX 开发者博客上发布了一篇关于 Gateworks 插件 gst-variable-rtsp-server 对 i.MX 6 支持的文章。 现在,您也可以了解如何在 i.MX 8 SoCs 上使用该插件。 1. 准备图像。 为了使用 gst-variable-rtsp-server 插件,请准备好您的机器和发行版: 将以下行添加到 conf/local.conf: IMAGE_INSTALL_append += "gstreamer1.0-rtsp-server gst-variable-rtsp-server" 下载附带的补丁并通过以下方式应用: $ cd /sources/meta-fsl-bsp-release/ $ git am ~/Download/0001-Add-RTSP-support-for-i.MX-8-L4.14.78_ga1.0.0-or-olde.patch 注意:对于 L4.14.98_ga2.0.0 BSP,此补丁不是必需的! 然后,使用bitbake构建镜像并将其部署到SD卡。 2. 视频测试源示例 服务器 $ gst-variable-rtsp-server -p 9001 -u "videotestsrc ! v4l2h264enc ! rtph264pay name=pay0 pt=96" 客户 2. 视频测试源示例 服务器 $ gst-variable-rtsp-server -p 9001 -u "v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480 ! v4l2h264enc ! rtph264pay name=pay0 pt=96" 客户 若要使用 VLC 或其他应用程序作为客户端,只需输入如下方图片所示的 URL: i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano 多媒体 关于:i.MX 8 - RTSP 流媒体支持 IMAGE_INSTALL_append += "gstreamer1.0-rtsp-server gst-variable-rtsp-server" 如果我说错了请纠正我,这里可能还需要添加 gstreamer1.0-plugins-good 和 gstreamer1.0-plugins-bad 插件。因为你在示例中使用了 v4l2h264enc。 因此,上述行应更改为: IMAGE_INSTALL_append += "gstreamer1.0-rtsp-server gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gst-variable-rtsp-server"
記事全体を表示
i.MX8QM DDR 寄存器编程辅助工具 (RPA) Important: If you have any questions or would like to report any issues with the DDR tools or supporting documents please create a support ticket in the i.MX community. Please note that any private messages or direct emails are not monitored and will not receive a response. 这是一份关于 i.MX 8/8X DDR 初始化相关寄存器的详细编程辅助说明。 有关更多详情,请参考 i.MX 8/8X 主 DDR 工具页面: https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8-8X-Family-DDR-Tools-Release/ta-p/1121519 Note: Devices with 17-row addresses (R0-R16) are not supported by this SoC.  为减少附件数量,较早版本的 RPA 可在随附的压缩文件中找到。 ***重要提示:对于 SCFWv1.7.0,您必须使用以下 RPA 版本或更高版本: MX8QM_B0_LPDDR4_RPA_1.6GHz_v23 较早版本的 RPA 与 SCFWv1.7.0 不兼容。如果尝试将较早版本的 RPA 与 SCFWv1.7.0 搭配使用,会导致 SCFW 无法启动。DCD 输出中存在问题的代码行如下: 对于 MX8QM: 数据 4 0xff148000 0x00000885 /* DRC0 启动 */ 数据 4 0xff1a0000 0x00000885 /* DRC1 启动 */ 如果用户希望将较早版本的 RPA 与 SCFW1.7.0 搭配使用(不推荐),则必须从较早版本的 RPA DCD 文件输出中删除上述代码行。此外,这些行被以下预处理命令包裹:"#ifndef SCFW_DCD"、"#else" 和 "#endif"。这些也应被移除。以 MX8QM 为例: [移除] #ifndef SCFW_DCD [移除] /* 对于 1600MHz DDR,DRC 800MHz 操作 */ [移除] DATA 4 0xff148000 0x00000885 /* DRC0 启动 */ [移除] DATA 4 0xff1a0000 0x00000885 /* DRC1 启动 */ [移除] #else [移除] #endif
記事全体を表示
OpenVX Vision Image Extension API の紹介 - 基本 API <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> はじめに EVIS(Enhanced Vision Instruction Set)は、APIレベルのプログラム言語であり、GC7000XSVX(i.MX8QM)およびVIP8000NanoSi(i.MX8MP)に適用できます。この説明書は、ビジョン対応ハードウェアの強化されたビジョン機能を低遅延で活用しています。これは、Khronos Group OpenVX API を通じて提供される機能を超えたビジョン画像処理のための追加機能を提供します。i.MX8QM/i.MX8MP BSP では、OpenCL コンパイラは EVIS 命令もサポートしています。つまり、OpenCL VX Extension APIでもあるのです。 ソースファイルは /usr/include/CL/cl_viv_vx_ext.h にあります。 ハードウェア要件 i.MX8QM(GC7000XSVX)はEVIS1をサポートしています。 i.MX8MP(VIP8000NanoSi)はEVIS2に対応しています。 パックされたデータ型 命令の計算能力を十分に活用するために、拡張 API はパックされたデータ型をサポートしています。たとえば、標準のOpenCLでは、ベクトルchar4は4x32ビットレジスタを占有しますが、パックされたchar16は128ビットしか占有しません。したがって、可能な限りパックされたデータ型を使用してください。 char、unsigned char、short、unsigned short、integer、unsigned integer、 float パック・データ・タイプがサポートされています。これらは、プレフィックス vxc_ 、つまり vxc_char、vxc_uchar、vxc_short、vxc_ushort、vxc_int、vxc_uint、vxc_float で定義され、その後にパックされたデータ内の要素の数を定義するリテラル値 n   が続きます。サポートされている n の値は、すべての packed data  型で 2、4、8、および 16 です。 表 1 パックされたデータ型のリスト 種類 形容 vxc_charn n 個のパックされた符号付き文字 値のベクトル vxc_ucharn n 個のパックされた符号なし 文字 値のベクトル vxc_shortn n 個の packed signed short value のベクトル vxc_ushortn n 個のパックされた符号なしショート値のベクトル vxc_intn n 個のパックされた符号付き整数値のベクトル vxc_uintn n 個のパックされた符号なし整数値のベクトル vxc_floatn n 個のパックされた float value のベクトル OP_CODE 手順 OP_CODE命令は、パックされたデータに対して動作します。列挙型は /usr/include/CL/cl_viv_vx_ext.h にあります。 EVIS1のみが命令をサポートしています。 VXC_IAdd VXC_MagPhase VXC_BiLinear VXC_SelectAdd VXC_BitReplace VXC_Filter VXC_DP2x16_b VXC_DP2x16 オブジェクトの読み込みと保存 パック型イメージデータ読み取り/書き込み:対応タイプはパック8ビット/16ビット整数、16ビット浮動小数点です。image1d_t/image1d_array/image2d_t のイメージの読み取り/書き込み。オフセットは、VXC_5BITOFFSET_XY(x, y) を使用して構成する必要があります。 VXC_OP4(img_load、宛先、画像、座標、オフセット、情報) VXC_OP4_NoDest(img_store、画像、座標、カラー、情報) パラメーター: img_load/img_store 画像データの読み取り/書き込み。 Dest データをロードする宛先。 画像 img_load用に読み込んだパックされた画像データ。img_storeに書き込むパックされた画像データ。 画像データの読み取り/書き込みを行うための座標座標。 Color Image for img_storeに書き込まれる画像データ。 詳細情報 VXC_MODIFIER (StartBin、EndBin、SourceBin、RoundingMode、Clamp) で詳細を参照してください。 VXC_MODIFIER(StartBin, EndBin, SourceBin, RoundingMode, Clamp) パラメーター: StartBin/EndBin 連続してパックされたデータの最初のビン/最後のビン。 SourceBin 未使用。 RoundingMode 0: Toward Zero (切り捨て)、 1: Toward Infinity (切り上げ)、 2: To Nearest Even、 3: 使用されません。 クランプ 0: いいえ、結果は結果タイプに合わせて切り捨てられます (下位ビットのみがコピーされます)、 1: はい、結果は結果タイプに合わせてクランプされます。 例えば int2 coord = (int2)(get_global_id(0), get_global_id(1)); vxc_uchar16 r1; VXC_OP4(img_load, r1, in_image, coord, 0, VXC_MODIFIER(0, 15, 0, VXC_RM_TowardZero, 0)); VXC_Filter このインターフェイスは、指定されたフィルターを 3x3 ピクセル ブロックに適用します。 VXC_OP4(フィルタ、宛先、Src0、Src1、Src2、情報) パラメーター: フィルター フィルター モード。 Dest フィルタリングされた画像。 Src0 3x3 フィルターの最初の行のピクセル。 Src1 3x3 フィルターの 2 行目のピクセル。 Src2 3x3 フィルターの 3 行目のピクセル。 情報 VXC_MODIFIER_FILTER(StartBin、EndBin、SourceBin、Filter、Clamp)で詳細情報を参照してください。 VXC_MODIFIER_FILTER(StartBin, EndBin, SourceBin, Filter, Clamp) パラメーター: StartBin/EndBin 連続してパックされたデータの最初のビン/最後のビン。 SourceBin 未使用。 フィルター フィルター モードを表 2 に示します。 クランプ 0: いいえ、結果は結果タイプに合わせて切り捨てられます (下位ビットのみがコピーされます)、 1: はい、結果は結果タイプに合わせてクランプされます。 テーブル2.フィルターモードのリスト: フィルターモード 形容 VXC_FM_BOX 3x3 ボックス フィルターを計算します。 |1/9、1/9、1/9、1/9、1/9、1/9、1/9、1/9、1/9|。 VXC_FM_Guassian 3x3 ガウス フィルターを計算します。 |1/16、2/16、1/16、2/16、4/16、2/16、1/16、1/16、1/16|。 VXC_FM_SobelX 3x3 Sobel フィルターを x 方向に計算します。 |-1, 0, 1, -2, 0, 2, -1, 0, 1|. VXC_FM_SobelY 3x3 Sobel フィルターを y 方向に計算します。 |-1、-2、-1、0、0、0、1、2、1|。 VXC_FM_ScharrX x 方向の 3x3 Scharr フィルターを計算します。 |3, 0, -3, 10, 0, -10, 3, 0, -3|. VXC_FM_ScharrY 3x3 Scharr フィルターを y 方向に計算します。 |3, 10, 3, 0, 0, 0, -3, -10, -3|. VXC_FM_Max 3x3カーネルを最大限に活用します。 VXC_FM_Min 3x3カーネルから最小値を取得します。 VXC_FM_Median 3x3カーネルから中央値を取得します。 たとえば( 詳細はガウスフィルタの例を参照)、 int2 coord_in1 = 座標 + (int2)(-1, -1);\n\ VXC_OP4(img_load, lineA, in_image, coord_in1, 0, VXC_MODIFIER(0, 15, 0, VXC_RM_TowardZero, 0));\n\ int2 coord_in2 = 座標 + (int2)(-1, 0);\n\ VXC_OP4(img_load, lineB, in_image, coord_in2, 0, VXC_MODIFIER(0, 15, 0, VXC_RM_TowardZero, 0));\n\ int2 coord_in3 = 座標 + (int2)(-1, 1);\n\ VXC_OP4(img_load, lineC, in_image, coord_in3, 0, VXC_MODIFIER(0, 15, 0, VXC_RM_TowardZero, 0));\n\ int info = VXC_MODIFIER_FILTER(0, 13, 0, VXC_FM_Guassian, 0);\n\ VXC_OP4(フィルター、出力、行A、行B、行C、情報);;\n\ VXC_AbsDiff a と b の絶対差の結果を計算します。パックされたデータで動作するため、16 x 8 ビット値または 8 x 16 ビット値を計算できます。 VXC_OP3(abs_diff, Dest, Src0, Src1, 情報) パラメーター: abs_diff 絶対差の関数を指定します。 Dest Destinationは結果を保存します。 Src0 絶対差を計算する最初のソース。 Src1 絶対差を計算する 2 番目のソース。 詳細情報 VXC_MODIFIER (StartBin、EndBin、SourceBin、RoundingMode、Clamp) で詳細を参照してください。 また、ここでは指定しない他のインターフェースもあり、それは /usr/include/CL/cl_viv_vx_ext.h にあります。つまり、VXC_IAdd、VXC_IAccSq、VXC_Lerp、VXC_MagPhase、VXC_MulShift、VXC_Clamp、VXC_BiLinear、VXC_SelectAdd、VXC_AtomicAdd、VXC_BitExtract、VXC_BitReplace。 参考文献: OpenVX Vision Image Extension API の紹介 - DP Dot Products Re: OpenVX Vision Image Extension API はじめに - 基本 API <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 有用,请问大神OpenVX Vision Image Extension API Introduction - DP Dot Products这个链接怎么进不去呢!
記事全体を表示
i.MX8QM DDRレジスタプログラミングエイド (RPA) Important: If you have any questions or would like to report any issues with the DDR tools or supporting documents please create a support ticket in the i.MX community. Please note that any private messages or direct emails are not monitored and will not receive a response. これは、i.MX 8/8X DDR 初期化に関連するレジスタの詳細なプログラミング支援資料です。詳細については、i.MX 8/8X メインDDR ツールページを参照してください。 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8-8X-Family-DDR-Tools-Release/ta-p/1121519 Note: Devices with 17-row addresses (R0-R16) are not supported by this SoC.  添付ファイルの数を減らすために、古い RPA は添付の zip ファイルに含まれている可能性があります。 ***重要:SCFWv1.7.0の場合、次のRPAバージョン以降を使用してください。 MX8QM_B0_LPDDR4_RPA_1.6GHz_v23 旧バージョンのRPAはSCFWv1.7.0に対応していません。SCFWv1.7.0に旧バージョンのRPAを使用すると、SCFWが起動しなくなります。次のDCD出力の行に影響を与えます。 MX8QMの場合: DATA 4 0xff148000 0x00000885 /* DRC0 起動 */ DATA 4 0xff1a0000 0x00000885 /* DRC1 起動 */ ユーザーが古い RPA を SCFW 1.7.0 と共に使用したい場合(推奨されません)、上記の行を古い RPA DCD ファイルの出力から削除する必要があります。さらに、これらの行は「#ifndef SCFW_DCD」、「#else」、および「#endif」プリプロセッサーコマンドで囲まれています。これらも削除されるべきです。例えば、MX8QMの例: [削除] #ifndef SCFW_DCD [削除] /* 1600MHz DDR、DRC 800MHz動作用 */ [削除] DATA 4 0xff148000 0x00000885 /* DRC0 ブリングアップ */ [削除] DATA 4 0xff1a0000 0x00000885 /* DRC1 ブリングアップ */ [削除] #else [削除] #endif
記事全体を表示
HOWTO:S32デバッガとS32デバッグ・プローブを使用したS32G274A EVB用JTAGフラッシュ・プログラミング方法 S32プラットフォームIDE向けS32 Design Studioに付属するS32デバッガを利用すると、S32 Debug Probeのフラッシュ・プログラミング機能にアクセスできます。 注:現在はQSPIフラッシュのみがサポートされています。 準備 S32 Design Studio IDEをインストールします。 デバッグするデバイスの開発パッケージをインストールします。ここでは、S32G2xx開発パッケージを使用します。S32デバッガのサポート・コンポーネントには、フラッシュ・プログラミング操作を実行するのに必要なデバイス固有のPythonスクリプトが含まれるため、このパッケージは重要です。 フラッシュメモリデバイスにプログラムするアプリケーションを含むアプリケーションプロジェクトを開いてください。 HOWTO:S-Record/Intel HEX/バイナリ・ファイルの生成に記載される手順に従って、「Rawバイナリ」オプションを選択します。 プロジェクトをビルドし、バイナリ実行可能ファイルを生成します。このファイルは、IVTツールへのアプリケーション・バイナリ入力になります。IVTツールを使用してBLOBイメージを生成する必要があります。このイメージは、フラッシュ・メモリ・デバイスにプログラミングして、BootROMによりRAMにロードできます。 HOWTO:IVTツールを使用してBLOBイメージS32G274Aを作成するに記載される手順に従います。手順の完了後に得られるBLOBイメージ・ファイルは、デバイスにフラッシュできます。 手順 デバッグ構成メニューを開く 「S32 Debugger Flash Programmer」を選択し、右クリックして「新規」を選択します。 新しい構成の名前を入力し、「追加...」をクリックしてフラッシュするファイルを追加します。 「参照...」をクリックして、アプリケーション・バイナリが配置されているワークスペースからプロジェクトを選択します。 プロジェクトを選択し、「OK」をクリックします。 デフォルトでは、ELFファイルが使用されます。「プロジェクト内検索」をクリックして、バイナリ・ファイルを選択します。 .binファイルを選択し、「OK」をクリックします。 ここで、ベース・アドレスを入力する必要があります。通常は、0である可能性がありますが、他の要件がある場合もあります。「OK」をクリックします。 新しいイメージが必要とするメモリのみが消去される必要があるため、絶対にそうする必要がある場合のみ、「すべてのフラッシュ・メモリを消去」ボックスをオンにします。これで、デバッガ接続設定の構成準備が整いました。「デバッガ」タブをクリックします。 上から順に入力し、「デバイスを選択」をクリックします。 デバイスを選択し、OKをクリックしてください 適切な初期化スクリプトが自動的に設定されます。セットアップに合わせてDebug Probeの接続設定を設定します。完了したら、「適用」をクリックします。 フラッシュを開始するには、「デバッグ」をクリックします。 完了したら、デバッグ・パースペクティブが終了したスレッドに表示されます。 GDBでフラッシュをご活用ください! このアプリケーションは続いてBootROMによって起動されるため、デバッグするには注意が必要です。 「デバッグ構成」メニューにある「デバッガ」タブの初期化スクリプト・フィールドで「s32gxx_attach.py」を使用します。 「デバッグ構成」メニュー内の「起動」タブで次の調整を行います。 「イメージをロード」ボックスをオフにします。  「次の場所にプログラム・カウンタを設定:」ボックスをオンにし、「Reset_Handler」と入力します。
記事全体を表示
s32k3x4 -t172 debug error このエラーが発生する理由 Re:s32k3x4-t172デバッグエラー プローブを交換し、その動作は正常にありがとうございます Re:s32k3x4-t172デバッグエラー PEMicro ソフトウェアと S32DS Update 14 を更新しましたが、それでもご指摘の問題を再現できません。他の開発ボードはありますか?また、同僚がこの問題に遭遇したことはありますか? また、ssb.PNGを見ると、インストールしたS32K3 RTDは、先ほどおっしゃったRTD 5.0.0ではなく、バージョン3.0.0 P01であることがわかります。 Re:s32k3x4-t172デバッグエラー 私はすでにすべてのソフトウェアをインストールしていますが、エラーメッセージが表示されていますが、Dioの例では、4〜5回試した後は機能しますが、周辺機器は機能しません Re:s32k3x4 -t172デバッグエラー 私はこの問題を抱えていません、私のインストールの詳細を比較してください Re:s32k3x4 -t172デバッグエラー オンボード OPEN SDA デバッガのみを使用しています Re:s32k3x4 -t172デバッグエラー s32DSのバージョンは3.5です および RTD 5.0.0 はい s32k3x4evb-T172 リビジョンB2 オープンsdaで確認するだけ Re:s32k3x4 -t172デバッグエラー 教えてください: S32DS v3.5 にはどのバージョンの更新プログラムをインストールしましたか? S32K3 RTDのどのバージョンですか? PEMicro Softwareを更新しましたか? どのS32K3開発ボードですか?S32K3X4EVB-T172 RevBまたはRevB2? オンボードのOpenSDAではこの問題は発生せず、外部PEMicro Multilinkを使用している場合にのみ発生しました。 Re:s32k3x4 -t172デバッグエラー 外部デバッガは使用していませんが、オンボードデバッガのみを使用しています Re:s32k3x4 -t172デバッグエラー 構成方法とダウンロード先 Re:s32k3x4 -t172デバッグエラー Hi オンボードのOpenSDA(J40)デバッガを使用することをお勧めします。 外部のPEMicro Multilinkデバッガを使用していますか?その場合は、次の点に注意してください。 「USB Multilink FX RevAおよびUniversal Rev AおよびBは、レガシーUF32 USBデバイスに基づいています。これらは、最新のプラグイン/ソフトウェアパッケージの下でPEmicroによって積極的にサポート/検証されなくなりました。 最新のサポートを受けるには、Multilink FX Rev C、Multilink Universal Rev C/D、またはMultilink ACPが必要です。 よろしくお願いいたします ロビン ------------------------------------------------------------------------------- 手記: - この記事があなたの疑問に答えたら、「正解をマーク」ボタンをクリックしてください。ありがとうございます! - 最後の投稿から7週間スレッドをフォローしていますが、その後の返信は無視されます 新しいスレッドを開き、後で関連する質問がある場合は、閉じたスレッドを参照してください。 -------------------------------------------------------------------------------
記事全体を表示
i.MX8MPはAndroidでRAW形式をサポート 1.説明: i.MX AndroidカメラHALでは、センサーがISPまたはISIに接続されているかどうかに関係なく、YUYVセンサーのみをサポートします。一部のユーザーは、UYVYやRAWなどのセンサー形式をカスタマイズしたい、彼らはこれを行うためのガイドが必要で、このドキュメントは、i.MX8MPのAndroidに生のカメラセンサーを実装し、生データを出力する方法を説明することを意図しています。 注:i.MX 8M plus、Android12_1.0.0に基づいています。 2.カメラHAL Android のカメラ ハードウェア抽象化レイヤ(HAL)は、android.hardware.camera2 の上位カメラ フレームワーク API を基盤となるカメラ ドライバとハードウェアに接続します。詳細については、AOSP のドキュメントをご覧ください。 https://source.android.google.cn/docs/core/camera/camera3_requests_hal?hl=en I.MX カメラHALでは、カメラサブシステムはいくつかの部分に分割できます。 Camera framework:  frameworks\av\camera カメラサービス:frameworks\av\services\camera\libcameraservice\ カメラプロバイダー: ハードウェア/インターフェース/カメラ/プロバイダー/ ハードウェア/Google/カメラ/共通/HAL / hidl_service/ hidl_service dlカメラHAL3を開きます。 カメラ HAL3: ベンダー\nxp-opensource\imx\camera\ カメラドライバー: vendor/nxp-opensource/kernel_imx/drivers/media/i2c そのコールスタックは次のようにリストできます。 パイプラインには 2 つのストリームがあり、プレビュー ストリームには 3 つのバッファが必要であり、キャプチャ ストリームには 2 つのバッファが必要です。 CameraDeviceSessionHwlImpl: ConfigurePipeline, stream 0: id 0, type 0, res 2592x1944, format 0x21, usage 0x3, space 0x8c20000, rot 0, is_phy 0, phy_id 0, size 8388608 CameraDeviceSessionHwlImpl: ConfigurePipeline create capture stream CameraDeviceSessionHwlImpl: ConfigurePipeline, stream 1: id 1, type 0, res 1024x768, format 0x22, usage 0x100, space 0x0, rot 0, is_phy 0, phy_id 0, size 0 CameraDeviceSessionHwlImpl: ConfigurePipeline create preview stream 次のコマンドを使用して、ストリームの入出力をダンプできます。 "setprop vendor.rw.camera.test 1" を使用して Steam 0 をダンプします。 "setprop vendor.rw.camera.test 2" を使用して Steam 1 をダンプします。 コマンドを実装する前に、"su;setenforce 0" を使用して SeLinux を閉じると、データは "/data/x-src.data" としてダンプされます。"/data/x-dst.data"、ここで、"x" はストリーム ID で、"0"、"1"、"2"、... プレビューストリーム ストリームのキャプチャ 身分証明書 1 0 解決 1024*768 2592*1944 形式 HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED (34) HAL_PIXEL_FORMAT_BLOB (33) 使い 0x900 GRALLOC_USAGE_HW_TEXTURE (0x100) GRALLOC_USAGE_HW_COMPOSER (0x800) 0x3 GRALLOC_USAGE_SW_READ_OFTEN データスペース 0 HAL_DATASPACE_V0_JFIF プレビューとビデオを区別するために、フレームワークによって次の使用法が追加されますGRALLOC_USAGE_HW_VIDEO_ENCODER 3. Rawサポート 3.1 システムの変更  i.MX 8M Plus EVKのデフォルト画像はbasler + baslerをサポートしており、カメラは画像がフラッシュされて起動した後に動作することができます、それはISPのカメラですが、生を処理するにはISIが必要です。あなたはAndroid_Userのs_Guide.pdfを参照する必要があります、Android12_2.0.0はAndroid12_1.0.0と異なるので、正しいバージョンを見つける必要があります。カメラをデフォルト以外の画像で動作させるには、次の追加コマンドを実行します。 ホスト上の OV5640 (CSI1) のみ: 1920*1080、解凍されたraw12をサポートするOV2775を使用しているため、jsonファイルは次のようになります。 3.2 DTB modification 1.まず、dtbo-imx8mp-ov2775.imgを生成するように BoardConfig.mk を変更します device\nxp\imx8m\evk_8mp\BoardConfig.mk: TARGET_BOARD_DTS_CONFIG += imx8mp-ov2775:imx8mp-evk-ov2775.dtb 2. 次に、imx8mp-evk-ov2775.dts を vendor\nxp-opensource\kernel_imx arch\arm64\boot\dts\freescale に追加します。 3. imx8mp-evk-ov2775.dts を変更します。OV2775 を ISI に接続します。 &isi_0 { status = "okay"; }; &isp_0 { status = "disabled"; }; &dewarp { status = "disabled"; }; 4. dtboイメージをビルドし、ボードにフラッシュします。 ./imx-make.sh dtboimage -j4 fastboot flash dtbo dtbo.img  3.3 センサードライバーの変更 私はOV2775ドライバをISP側から使用していますが、g_frame_intervalやenum_frame_sizeなどのすべての機能を実装する必要があるか、HALが間違ったパラメータを取得してエラーを返すように注意してください。 static struct v4l2_subdev_video_ops ov2775_subdev_video_ops = { .g_frame_interval = ov2775_g_frame_interval, .s_frame_interval = ov2775_s_frame_interval, .s_stream = ov2775_s_stream, }; static const struct v4l2_subdev_pad_ops ov2775_subdev_pad_ops = { .enum_mbus_code = ov2775_enum_mbus_code, .set_fmt = ov2775_set_fmt, .get_fmt = ov2775_get_fmt, .enum_frame_size = ov2775_enum_frame_size, .enum_frame_interval = ov2775_enum_frame_interval, }; 3.4 ISI ドライバの変更 ISIドライバーにRAW形式を追加する必要があります。 }, { .name = "RAW12 (SBGGR12)", .fourcc = V4L2_PIX_FMT_SBGGR12, .depth = { 16 }, .color = MXC_ISI_OUT_FMT_RAW12, .memplanes = 1, .colplanes = 1, .mbus_code = MEDIA_BUS_FMT_SBGGR12_1X12, }, { .name = "RAW10 (SGRBG10)", .fourcc = V4L2_PIX_FMT_SGRBG10, .depth = { 16 }, .color = MXC_ISI_OUT_FMT_RAW10, .memplanes = 1, .colplanes = 1, .mbus_code = MEDIA_BUS_FMT_SGRBG10_1X10, } 3.5 カメラHALの変更 パイプラインにはプレビューストリームとキャプチャストリームがあります。 GPUはraw形式をサポートしていないため、アプリケーションがraw形式を設定するとエラーログが印刷されます。 02-10 18:49:02.162 436 436 E NxpAllocatorHal: convertToMemDescriptor Unsupported fomat PixelFormat::RAW10 02-10 18:49:02.163 2390 2445 E GraphicBufferAllocator: Failed to allocate (1920 x 1080) layerCount 1 format 37 usage 20303: 7 02-10 18:49:02.163 2390 2445 E BufferQueueProducer: [ImageReader-1920x1080f25m2-2390-0](id:95600000002,api:4,p:2148,c:2390) dequeueBuffer: createGraphicBuffer failed 02-10 18:49:02.163 2390 2405 E BufferQueueProducer: [ImageReader-1920x1080f25m2-2390-0](id:95600000002,api:4,p:2148,c:2390) requestBuffer: slot 0 is not owned by the producer (state = FREE) 02-10 18:49:02.163 2148 2423 E Surface : dequeueBuffer: IGraphicBufferProducer::requestBuffer failed: -22 02-10 18:49:02.163 2390 2445 E BufferQueueProducer: [ImageReader-1920x1080f25m2-2390-0](id:95600000002,api:4,p:2148,c:2390) cancelBuffer: slot 0 is not owned by the producer (state = FREE) 02-10 18:49:02.164 2148 2423 E Camera3-OutputStream: getBufferLockedCommon: Stream 1: Can't dequeue next output buffer: Invalid argument (-22) GPU コードを変更することはお勧めしません。 プレビューストリームの場合、ピクセル形式はHAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINEDに固定されており、YUYV形式が必要ですが、このパッチでは、raw12をyuyvに変換せず、入力から出力にバッファをコピーするだけなので、プレビューストリームは実際にはraw12です。 ストリームをキャプチャするときは、通常はJPEG形式に使用されるBlob形式を使用します。形式がアプリケーションによって渡される Blob であることが判明すると、カメラ HAL はバッファを入力から出力に直接コピーします。詳細は関数ProcessCapturedBuffer()で確認できます。   4. アプリケーションとツール 4.1 応用 添付ファイル「android-Camera2Basic-master_application.7z」のテストアプリケーション、これは基本的に一般的なカメラアプリケーションであり、キャプチャストリーム形式をblobに設定します。 Size largest = Collections.max( Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)), new CompareSizesByArea()); mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.JPEG, /*maxImages*/2); 4.2 ツール 7yuvツールを使用して、適用可能なまたはHALによってダンプされるraw12形式を確認します。右側にパラメータを設定する必要があります。   ImageJツールを使用して、RAW形式を確認することもできます。
記事全体を表示
MBDT for S32K3 - よくある質問 全般 インストーラとセットアップ S32K3用のMBDTのライセンスをインストールする方法 S32K344のツールボックスとEVBをセットアップする方法 生成されたコードをS32DS3.4にエクスポートする方法 s32k3XX用のMBDTで生成されたプロジェクトのエクスポート プログラミングの方法 S32k3用のMBDTとP&E Multilinkの使用 カスタム・コードの使用 S32K3 MBDTでのSENTプロトコルのサポート カスタム・プロジェクトの使用 カスタム・プロジェクト構成の使用方法 シーケンシャル・リセット S32K344-Q172のシーケンシャル・リセット SIL/PIL/外部モード 外部モード 更新後に外部モードのサンプルをコンパイルできない S32K3X4EVB-Q257 MBDT付き PIL サンプル:PIL S32CTの簡単なサンプルを実行できない ペリフェラル ADC 外部設定ツールを使用して新しいADCチャネルを追加する方法 SPI 32ビット・フレームを送信する方法 DIO S32K3x4-Q172P_with_MBDT_Blink_Project DIOとPWMの設定に関する問題 ICU棟 PWMデューティ・サイクルの測定 PWM PWMの立ち上がりエッジと立ち下がりエッジの検出 割り込みベースのPWM生成 CAN CAN経由でのFreeMASTERの接続の問題 アプリ モータ制御 SPI構成モデルベース設計ツールボックス - 32ビット命令(SIMULINK)  Re: MBDT for S32K3 - よくある質問 こんにちは! S32K3xx車載MCU用モデルベース設計ツールボックスRev 1.2.0で、Rev 1.2.0をダウンロードするためのFlexNetの場所のリンクをクリックすると、自分のプロファイル・ページに移動します。正しいリンクに戻すよう修正していただけますか?あるいは、正しいプロセスを説明していただけますか?
記事全体を表示
SDカードミラー用のu-boot環境プリセット 場合によっては、大量生産やデモの準備を行うことがあります。 デモSDカードのミラーイメージに保存されたu-boot環境が必要です。 こちらがその方法です。 HW:  i.MX8MP evk SW: LF_v5.15.52-2.1.0_images_IMX8MPEVK.zip 考えとしては、fw_setenvを使用して、sdcardミラーを実際のemmc/sdカードでの操作として設定するやり方です。 テスト目的で、u-boot-initial-envにtest=ABCDを追加します。 fw_printenvを使用して確認し、hexdumpを使用して再確認します。 uboot envはすでにsdカードミラー(imx-image-multimedia-imx8mpevk.wic)に書き込まれています。 これらの操作はすべてホスト・パソコン、x86/x64上で行われます。 ./fw_setenv -c fw_env.config -f u-boot-initial-env Environment WRONG, copy 0 Cannot read environment, using default ./fw_printenv -c fw_env.config Environment OK, copy 0 jh_root_dtb=imx8mp-evk-root.dtb loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bsp_script}; mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi arch=arm baudrate=115200 ...... ...... ...... splashimage=0x50000000 test=ABCD usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi vendor=freescale hexdump -s 0x400000 -n 2000 -C imx-image-multimedia-imx8mpevk.wic 00400000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| hexdump -s 0x400000 -n 10000 -C imx-image-multimedia-imx8mpevk.wic 00400000 5f a4 9b 97 20 6a 68 5f 72 6f 6f 74 5f 64 74 62 |_... jh_root_dtb| 00400010 3d 69 6d 78 38 6d 70 2d 65 76 6b 2d 72 6f 6f 74 |=imx8mp-evk-root| 00400020 2e 64 74 62 00 20 6c 6f 61 64 62 6f 6f 74 73 63 |.dtb. loadbootsc| 00400030 72 69 70 74 3d 66 61 74 6c 6f 61 64 20 6d 6d 63 |ript=fatload mmc| 00400040 20 24 7b 6d 6d 63 64 65 76 7d 3a 24 7b 6d 6d 63 | ${mmcdev}:${mmc| 00400050 70 61 72 74 7d 20 24 7b 6c 6f 61 64 61 64 64 72 |part} ${loadaddr| 00400060 7d 20 24 7b 62 73 70 5f 73 63 72 69 70 74 7d 3b |} ${bsp_script};| 00400070 00 20 6d 6d 63 5f 62 6f 6f 74 3d 69 66 20 6d 6d |. mmc_boot=if mm| ...... ...... ...... 00401390 76 3d 31 00 73 6f 63 3d 69 6d 78 38 6d 00 73 70 |v=1.soc=imx8m.sp| 004013a0 6c 61 73 68 69 6d 61 67 65 3d 30 78 35 30 30 30 |lashimage=0x5000| 004013b0 30 30 30 30 00 74 65 73 74 3d 41 42 43 44 00 75 |0000.test=ABCD.u| 004013c0 73 62 5f 62 6f 6f 74 3d 75 73 62 20 73 74 61 72 |sb_boot=usb star| 004013d0 74 3b 20 69 66 20 75 73 62 20 64 65 76 20 24 7b |t; if usb dev ${| 004013e0 64 65 76 6e 75 6d 7d 3b 20 74 68 65 6e 20 64 65 |devnum}; then de| 確認のため、SDカードミラーをi.MX8MP evkボードのemmcにフラッシュします uuu -b emmc_all imx-boot-imx8mp-lpddr4-evk-sd.bin-flash_evk imx-image-multimedia-imx8mpevk.wic  初回起動時、環境はすでに整っています。  その状態を達成する方法は次のとおりです。 a. fw_setenv/fw_printenv: https://github.com/sbabic/libubootenv.git 注:uboot fw_setenv/fw_printenvは使用しないでください。 ホストであるx86/x64 PCでコンパイルしてください。これはホストで使用されます。 b. u-boot-initial-env ubootの下でu-boot-initial-envを作成します 注:Yocto はデフォルトで u-boot-initial-env をデプロイします c. fw_env.config  imx-image-multimedia-imx8mpevk.wic 0x400000 0x4000 0x400000 0x4000は、uboot-imx\configs\imx8mp_evk_defconfigからのものです CONFIG_ENV_SIZE=0x4000 CONFIG_ENV_OFFSET=0x400000 これで実行できます  ./fw_setenv -c fw_env.config -f u-boot-initial-env i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano i.MX6 全て i.MX6DL i.MX6Dual i.MX6DualPlus | 6QuadPlus i.MX6Quad i.MX6S i.MX6SL i.MX6SoloX i.MX6UL i.MX7Dual i.MX7Solo i.MX7ULP i.MX8ULP Linux
記事全体を表示
i.MX8M Nanoでセキュアブートを有効にする手順     以下は、imx8m nanoボードでセキュアブートを有効にする手順です。LPDDR4でテストされたimx8m nanoボードの各ステップログとアドレスについて説明しました。 セキュア ブート機能では、デジタル署名を使用して、デバイスのブート シーケンス中に不正なソフトウェアが実行されるのを防ぎます。マルウェアがブートシーケンスを制御した場合、機密データ、サービス、およびネットワークが影響を受ける可能性があります。 以下のリンクからCST(コード署名ツール)をダウンロードします https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true 1. PKI ツリーの生成 Code Signing Tools パッケージには、keys/ ディレクトリの下に OpenSSL ベースのキー生成スクリプトが含まれています。hab4_pki_tree.sh スクリプトは、最大 4 つのスーパー ルート キー (SRK) と、それらの従属 IMG キーと CSF キーを含む PKI ツリーを生成できます。 $./hab4_pki_tree.sh ... 既存の CA キー (y/n) を使用しますか?: n 楕円曲線暗号(y / n)を使用しますか?: n PKI ツリーのキーの長さをビット単位で入力します: 2048 PKI ツリーの期間 (年): 5 を入力します スーパールートキーはいくつ生成する必要がありますか?4 SRK 証明書に CA フラグを設定しますか?(y/n)?: y 2. SRKテーブルとSRKハッシュの生成 次の手順では、SRK テーブルとそれに対応する SRK テーブル ハッシュを生成します 上記のいずれかの手順で作成された SRK 公開キー証明書から。 srktool は、SRK テーブルとそれに対応する SRK の生成に使用できます テーブルハッシュ。 - Linux 64ビットマシンでのSRKテーブルとSRKハッシュの生成: $ ../linux64/bin/srktool -h 4 -t SRK_1_2_3_4_table.bin -e \ SRK_1_2_3_4_fuse.bin -d sha256 -c \ SRK1_sha256_2048_65537_v3_ca_crt.pem,\ SRK2_sha256_2048_65537_v3_ca_crt.pem,\ SRK3_sha256_2048_65537_v3_ca_crt.pem,\ SRK4_sha256_2048_65537_v3_ca_crt.pem SRK_1_2_3_4_table.binファイルとSRK_1_2_3_4_fuse.binファイルは、さらに doc/imx/habv4/guides/にあるHABガイドで説明されている手順です。 ディレクトリ。 3. i.MX8M Nanoデバイスでブートローダイメージに署名し、安全に起動する手順のステップバイステップ 3.1 U-Boot でのセキュアブートサポートの有効化 git link https://source.codeaurora.org/external/imx/uboot-imx から u-boot をクローンします u-bootでセキュアブートサポートを有効にする - defconfig: CONFIG_SECURE_BOOT=y CONFIG_IMX_HAB=y 2020.04 u-bootから イメージの構築 $ make imx8mn_evk_defconfig $ make Output images $(UBOOT_SRC)/u-boot-nodtb.bin $(UBOOT_SRC)/spl/u-boot-spl.bin $(UBOOT_SRC)/arch/arm/dts/fsl-imx8mm-evk.dtb‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 3.2 ARM トラステッド ファームウェア 以下のソースリンクからATFを入手してください https://source.codeaurora.org/external/imx/imx-atf イメージの構築 $ make PLAT=imx8mn bl31 出力画像 $(ATF_SRC)/build/imx8mn/release/bl31.bin 3.3 DDR FW画像の取得 $ wget の https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin $ chmod 777 firmware-imx-8.0.bin $./firmware-imx-8.0.bin ライセンス契約に同意します $ cd firmware-imx-8.0.bin /firmware/ddr/synopsys Output images $(DDRFW_SRC)/lpddr4_* 3.4 Get IMX-MKIMAGE source https://source.codeaurora.org/external/imx/imx-mkimage 以下は、mkimage を使用してブートローダーを生成する手順です 必要な画像を集める SPL and U-boot images - u-boot-nodtb.bin - u-boot-spl.bin - fsl-imx8mm-evk.dtb‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ ATF画像 - bl31.bin DDRファームウェアイメージ - lpddr4_pmu_train_1d_dmem.bin - lpddr4_pmu_train_1d_imem.bin - lpddr4_pmu_train_2d_dmem.bin - lpddr4_pmu_train_2d_imem.bin これらのファイルをimx-mkimage/iMX8Mディレクトリにコピーします。 3.5 i.MX8MN ブートイメージのビルド flash.bin $ make SOC=iMX8MN flash_evk ========= OFFSET ダンプ========= ローダー画像: header_image_off 0x0 dcd_off 0x0 image_off 0x40 csf_off 0x24a00 SPL HABブロック:0x911fc0 0x0 0x24a00 セカンドローダー画像: sld_header_off 0x58000 sld_csf_off 0x59020 SLD HABブロック:0x401fcdc0 0x58000 0x1020 $ make SOC=iMX8MN print_fit_hab ./print_fit_hab.sh 0x60000 evk.dtb 0x40200000 0x5B000 0xC3AB0 0x402C3AB0 0x11EAB0 0x78F0 0x960000 0x1263A0 0xA1B0 0xBE000000 0x130550 0x10 3.6 CSF 記述ファイルの作成 imx-mkimage が提供するビルドログは、「認証 Data" パラメーターを CSF に含めます。 - ビルドログのSPL flash.bin「Authenticate Data」アドレス: SPL HABブロック:0x911fc0 0x0 0x24a00 - csf_spl.txtファイル内の「データの認証」コマンド: ブロック = 0x911fc0 0x0 0x24a00 "flash.bin" - ビルドログのFITイメージの「Authenticate Data」アドレスflash.bin SLD HABブロック:0x401fcdc0 0x57c00 0x1020 - ビルドログのFITイメージの「Authenticate Data」アドレスprint_fit_hab: 0x40200000 0x5B000 0xC3AB0 0x402C3AB0 0x11EAB0 0x78F0 0x960000 0x1263A0 0xA1B0 0xBE000000 0x130550 0x10 - csf_fit.txtファイル内の「データの認証」コマンド: ブロック = 0x401fcdc0 0x57c00 0x1020 "flash.bin"、\ 0x40200000 0x5B000 0xC3AB0 "flash.bin"、\ 0x402C3AB0 0x11EAB0 0x78F0 "flash.bin"、\ 0x960000 0x1263A0 0xA1B0 "flash.bin"、\ 0xBE000000 0x130550 0x10「flash.bin」 3.7 閉じたデバイスでのカーネルクラッシュの回避 - csf_spl.txtに「MIDのロック解除」コマンドを追加: [アンロック] エンジン = CAAM 機能 = MID 3.8 flash.binバイナリの署名 CST ツールは、flash.bin イメージを歌い、CSF を生成するために使用されます バイナリ。ユーザーは、上記の手順で作成したCSF記述ファイルを入力する必要があります CSF コマンド、SRK テーブル、 署名と証明書。 - SPL CSF バイナリファイルを作成します。 $ ./cst -i csf_spl.txt -o csf_spl.bin - FIT CSFバイナリファイルを作成します。 $ ./cst-i csf_fit.txt -o csf_fit.bin 3.8 CSF を flash.bin バイナリでアセンブルする ------------------------------------------- 上記の手順で生成された CSF バイナリは、 flash.bin画像。 CSF オフセットは、flash.bin ビルド ログから取得できます。 - SPL CSFオフセット: csf_off 0x24a00 - FIT CSF offset: sld_csf_off 0x59020 署名されたflash.binイメージは、次のようにアセンブルできます。 - flash.binコピーを作成します。 $ cp flash.bin signed_flash.bin - csf_spl.binをsigned_flash.binのオフセット0x24a00挿入します。 $ dd if=csf_spl.bin of=signed_flash.bin seek=$((0x24a00)) bs=1 conv=notrunc - csf_fit.binをsigned_flash.binのオフセット0x59020挿入します。 $ dd if=csf_fit.bin of=signed_flash.bin seek=$((0x59020)) bs=1 conv=notrunc - フラッシュ署名flash.bin画像: $ sudo dd if=signed_flash.bin of=/dev/sd bs=1K seek=33 && sync 3.9 HAB イベントの検証 ------------------------ 次の手順では、イメージに含まれる署名がflash.bin エラーなしで正常に処理されました。HAB は処理時にイベントを生成します 問題が発生した場合のコマンド。 デバイスを閉じる前に、ユーザーはHABイベントが見つからなかったことを確認する必要があります。 以下の例: - HAB イベントを確認します。 => hab_status セキュアブートが無効 HAB 構成: 0xf0、HAB 状態: 0x66 3.10 SRKハッシュのプログラミング ------------------------- U-Boot ヒューズ ツールは、i.MX SoC の eFuse のプログラミングに使用できます。 - ダンプ SRK ハッシュは、ホスト マシンの値を融合します。 $ hexdump -e '/4 "0x"' -e '/4 "%X""\n"' SRK_1_2_3_4_fuse.bin 0x20593752 0x6ACE6962 0x26E0D06C 0xFC600661 0x1240E88F 0x1209F144 0x831C8117 0x1190FD4D - i.MX8MNデバイスのプログラムSRK_HASH[255:0]ヒューズ: => ヒューズ プログラム 6 0 0x20593752 => ヒューズ Prog 6 1 0x6ACE6962 => ヒューズ Prog 6 2 0x26E0D06C =>ヒューズプログラム6 3 0xFC600661 => ヒューズ Prog 7 0 0x1240E88F =>ヒューズプログラム7 1 0x1209F144 =>ヒューズプログラム7 2 0x831C8117 => ヒューズ Prog 7 3 0x1190FD4D 3.10 デバイスを完全に保護します ---------------------------------- 追加のヒューズをプログラムして、デバイスを完全に保護することができます。 これらのヒューズとその影響の詳細については、AN4581[1]をご覧ください。 - プログラムSRK_LOCK: => ヒューズ プログラム 0 0 0x200 - プログラムDIR_BT_DIS: =>ヒューズプログラム1 3 0x8000000 - プログラムSJC_DISABLE: = >ヒューズプログラム1 3 0x200000 - JTAG_SMODE: => ヒューズ プログラム 1 3 0xC00000
記事全体を表示
BlueZ5 および A2DP シンク (Freescale i.MX6Q/DL SabreSDに搭載) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> BlueZ5は、コアBluetoothレイヤーとプロトコルのサポートを提供します。柔軟性があり、効率的で、モジュール式の実装を使用しています。BlueZ5は、GAP、L2CAP、RFCOMM、およびSDPを含むBluetoothコア仕様4.0および3.0 + HS用のBluetooth低レベルホストスタックを実装しています。ホストスタックの他に、BlueZ5は、以下のプロファイル自体またはサードパーティのソフトウェアを介してもサポートしています。 BlueZが提供する プロファイルp: A2DPの1.3 AVRCP 1.5 DI 1.3 HDP 1.0 HID 1.0 PAN 1.0 SPP 1.1 GATT (LE) profiles: PXP 1.0 HTP 1.0 HoG 1.0 TIP 1.0 CSCP 1.0 OBEXベースのプロファイル(obexdによる): FTP 1.1 OPP 1.1 PBAPの1.1 MAP 1.0 oFono プロジェクトによって提供されます。 HFP 1.6 (AG & HF)対応プロファイル BlueZ5は最新のFreescale Linux BSPリリースでサポートされているため、Bluetoothコアスタックとそのプロファイルのバイナリを生成するのは非常に簡単です。SabreSDボードでA2DPシンクをサポートするには、以下のソフトウェアも対象のrootfsにダウンロードしてインストールする必要があります。 sbc decoder version 1.3 (http://www.kernel.org/pub/linux/bluetooth/sbc-1.3.tar.gz) パルスオーディオ 5.0 (http://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-5.0.tar.xz) PulseAudio パッケージは bluetooth や sbc パッケージといくつかの依存関係があり、pulseaudio は 2 つのパッケージがビルドされたかどうかを検出し、どの pulse プラグインモジュールを生成するかを決定します。したがって、建物の順序は 1) bluez5_utils または bluez_utils 2) sbc 3) pulseaudio になります。 上記のソフトウェアをコンパイルしてターゲットの rootfs にインストールすると、ディレクトリ /usr/bin の下に次の実行可能ファイルが表示されます BlueZ5から: bluetoothctl、hciconfig、hciattach (UARTのBluetoothモジュールを操作する場合に必要) PulseAudio から: pulseaudio、pactl、paplay ビルドの依存関係が正しく設定されている場合、次のパルスプラグインモジュールはディレクトリ /usr/lib/pulse-5.0/modules の下に配置する必要があります module-bluetooth-discover.so module-bluetooth-policy.so module-bluez5-device.so module-bluez5-discover.so ファイル /etc/dbus-1/system.d/pulseaudio-system.conf を編集し、次の行を赤字で追加します。        <許可 send_destination="org.bluez"/>     ファイル/etc/dbus-1/system.d/bluetooth.confを編集します。をクリックし、次の行を追加します。           /etc/pulse/system.pa にある pulseaudio システム設定ファイルの下部に次の設定を追加します。 ### Bluetoothハードウェア用のドライバーモジュールを自動的にロードします .ifexists module-bluetooth-policy.so load-module module-bluetooth-policy .endif .ifexists module-bluetooth-discover.so load-module module-bluetooth-discover .endif ロードモジュールモジュールスイッチオンコネクト load-module module-alsa-sink device_id=0 tsched=true tsched_buffer_size=1048576 tsched_buffer_watermark=262144 alsa カードを自動的に検出できるシステムでは、上記の行 #13 を削除する必要があります。 また、次の行に「auth-anonymous=1」が追加されていることを確認して、「無効な認証データを持つクライアントへのアクセスを拒否しました」という問題を解決してください。 ロードモジュールモジュールネイティブプロトコル-UNIX auth-anonymous=1 オーディオ再サンプリングアルゴリズムを選択し、/etc/pulseにあるdaemon.confファイルに次の設定を追加してオーディオ出力を設定します。 再サンプル法=些細なこと enable-remixing = いいえ enable-lfe-remixing = いいえ デフォルトサンプル形式= S16LE デフォルトサンプルレート= 48000 代替サンプルレート= 24000 デフォルトサンプルチャネル= 2 Pulseaudio は、デーモンまたはシステム全体のインスタンスとして起動できます。PulseAudioをシステム全体のモードで実行するために、プログラムは自動的に「root」から権限をドロップし、「pulse」ユーザーとグループに変更します。この場合、プログラムを起動する前に、ターゲットシステム上に「パルス」ユーザーとグループを作成する必要があります。以下の例では、"/var/run/pulse" は "pulse" ユーザーのホームディレクトリです。 adduser -h /var/run/pulseパルス addgroupパルスアクセス adduser パルスアクセス PulseAudio はサウンド デバイスにアクセスする必要があるため、ユーザー "pulse" も "audio" グループに追加します。 AddUserパルスオーディオ bluetoothd と pulseaudio の起動: /usr/libexec/bluetooth/bluetoothd -d および pulseaudio --system --リアルタイム &; pulseaudio が正しく設定されているかどうかを確認するには、次のコマンドを使用してローカルの wave ファイルを再生します。音が聞こえる場合は、システムが正しく構成されているはずです。 paplay -vvv audio8k16S.wav pulseaudioを設定したら、bluetoothctlを起動してペアリングし、携帯電話に接続します。携帯電話に接続すると、bluetoothctlコンソールに次の情報が表示されるはずです。 [Bluetooth]#表示 コントローラー 12:60:41:7F:03:00 名前: BlueZ 5.21 エイリアス:BlueZ 5.21 クラス:0x1c0000 電源:はい 検出可能: いいえ ペアリング可能:はい UUID: PnP 情報 (00001200-0000-1000-8000-00805f9b34fb) UUID: 汎用アクセス プロファイル (00001800-0000-1000-8000-00805f9b34fb) UUID: 汎用属性プロファイル (00001801-0000-1000-8000-00805f9b34fb) UUID:A / Vリモコン(0000110e-0000-1000-8000-00805f9b34fb) UUID:A / Vリモートコントロールターゲット(0000110c-0000-1000-8000-00805f9b34fb) UUID: メッセージ通知メッセージ。(00001133-0000-1000-8000-00805f9b34fb) UUID: メッセージアクセスサーバー (00001132-0000-1000-8000-00805f9b34fb) UUID: 電話帳アクセスサーバ (0000112f-0000-1000-8000-00805f9b34fb) UUID: IrMC 同期 (00001104-0000-1000-8000-00805f9b34fb) UUID:OBEXファイル転送(00001106-0000-1000-8000-00805f9b34fb) UUID: OBEX オブジェクト プッシュ (00001105-0000-1000-8000-00805f9b34fb) UUID: ベンダー固有 (00005005-0000-1000-8000-0002ee000001) UUID: オーディオ ソース (0000110a-0000-1000-8000-00805f9b34fb) UUID: オーディオシンク (0000110b-0000-1000-8000-00805f9b34fb) モダリアス: usb:v1D6Bp0246d0515 検出中: いいえ オーディオシンクUUIDが見える場合は、今すぐBluetooth音楽を楽しむ準備ができています。 i.MX6_All i.MX6DL i.MX6Dual i.MX6Quad i.MX6S i.MX6SL Linux マルチメディア Re: Freescale i.MX6Q/DL SabreSDのBlueZ5およびA2DPシンク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちはシェンウェイ、 私はあなたのガイドに従いました、そしてついに私はi.MX7dで動作するBluetoothオーディオストリーミングを手に入れることができます。しかし、ヘッドフォンの左側でしかBluetoothオーディオを聞くことができません。 さらに、aplay audio.wavを実行すると、ヘッドフォンの両側で音声が聞こえます。paplay audio.wavを実行し、残念ながら、Bluetoothストリーミングと同じ問題があります:ヘッドフォンの左側にしか音声が聞こえません。 ヘッドホンの両方のチャンネルでオーディオを聞くことができるように、どこで設定を変更できますか? シンクに関する情報をフォローします。 --------------------------------------------------------------------------------------------------------- シンクが利用可能です。  * インデックス: 0 名前:        ドライバー: フラグ: ハードウェアHW_VOLUME_CTRL DECIBEL_VOLUMEレイテンシ 状態: 中断 中断の原因: IDLE 優先度:9009 ボリューム:モノラル:52057 / 79%/ -6.00 dB バランス 0.00 ベースボリューム:52057 / 79%/ -6.00 dB ボリュームステップ:65537 ミュート:いいえ 現在のレイテンシ: 0.00 ミリ秒 最大リクエスト: 0 KiB 最大巻き戻し量: 0 KiB モニター ソース: 0 サンプルスペック:S16LE 1ch 44100Hz チャンネルマップ:モノラル モノ 使用者: 0 リンク元:0 固定遅延: 99.95 ミリ秒 カード:0        モジュール:6 プロパティ: alsa.resolution_bits = "16" device.api = "アルサ" device.class = "音" alsa.class = "ジェネリック" alsa.subclass = "ジェネリックミックス" alsa.name = "" alsa.id = 「HiFi wm8731-hifi-0」 alsa.subdevice = "0" alsa.subdevice_name = "サブデバイス #0" alsa.device = "0" alsa.card = "0" alsa.card_name = "wm8731-audio" alsa.long_card_name = "wm8731-audio" device.bus_path = 「プラットフォームサウンド」 sysfs.path = "/デバイス/SOC0/サウンド/サウンド/カード0" device.form_factor = "内部" device.string = "hw:0" device.buffering.buffer_size= "8816" device.buffering.fragment_size= "2204" device.access_mode = "mmap" device.profile.name = 「アナログ-モノ」 device.profile.description = "アナログモノラル" device.description = "ビルトインオーディオアナログモノラル" module-udev-detect.discovered = "1" device.icon_name = 「オーディオカード」 ポート: analog-output: アナログ出力 (優先度 9900、レイテンシ オフセット 0 usec、使用可能: 不明) プロパティ: アクティブポート: --------------------------------------------------------------------------------------------------------- よろしくお願いいたします クサイ Re: Freescale i.MX6Q/DL SabreSDのBlueZ5およびA2DPシンク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Shenwei Wang, あなたが提供した構成は、yoctoを使用して生成されたfsl(Freescale)イメージで完全に正常に機能しています。 Kernel version : 4.1.15 Bluezバージョン:5.33 pulseaudioバージョン:6.0なので、これらのバージョンのパッケージを使用すると、Bluetoothから音楽を再生できます。 しかし、fsl-qtイメージを使用しようとすると、編集が必要なファイルが対応するディレクトリ(/ etc / dbus-1 / system.d / pulseaudio-system.conf、/ etc / dbus-1 / system.d / bluetooth.conf、 および/ etc / pulse / system.pa)にさえ利用できません。私がfsl-qt画像でも使用しているのと同じバージョンのBluezとpulseaudio。   bluetoothctl コンソールの "show" コマンドを実行すると、次のログが表示されます。 コントローラー 43:39:00:00:1F:AC 名前: BlueZ 5.33 エイリアス:BlueZ 5.33 クラス:0x200000 電源:はい 検出可能: いいえ ペアリング可能:はい UUID: 汎用属性プロファイル (00001801-0000-1000-8000-00805f9b34fb) UUID:A / Vリモコン(0000110e-0000-1000-8000-00805f9b34fb) UUID: PnP 情報 (00001200-0000-1000-8000-00805f9b34fb) UUID: 汎用アクセス プロファイル (00001800-0000-1000-8000-00805f9b34fb) UUID:ハンズフリー(0000111e-0000-1000-8000-00805f9b34fb) UUID:A / Vリモートコントロールターゲット(0000110c-0000-1000-8000-00805f9b34fb) モダリアス: usb:v1D6Bp0246d0521 検出中: いいえ したがって、ここでは UUID:オーディオソース/ UUID:オーディオシンク を取得していないため、Bluetoothからオーディオをストリーミングできません。 これに関して、いくつかの意見を提供してください。 よろしくお願いいたします。   よろしくお願いします。 ガナパティラオ Re: Freescale i.MX6Q/DL SabreSDのBlueZ5およびA2DPシンク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Re: Freescale i.MX6Q/DL SabreSDのBlueZ5およびA2DPシンク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> それは何の理由ですか????? Re: Freescale i.MX6Q/DL SabreSDのBlueZ5およびA2DPシンク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私はいくつかのBluetooth USBドングルでテストしました。理論的には、HCIインターフェースの準備ができている限り、どのUSBモジュールでも動作するはずです。 シェンウェイ Re: Freescale i.MX6Q/DL SabreSDのBlueZ5およびA2DPシンク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Shenwei Wang, どのBluetoothモジュールをテストしますか? AR6233Xまたはその他のチップ設定? Re: Freescale i.MX6Q/DL SabreSDのBlueZ5およびA2DPシンク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 私はandroidKitkat 4.4.2でbluez 5.30を使用しています、それは正常に機能しており、私はsppを除くすべてのプロファイルを取得しています。SPPを参照しようとすると、「SDPレコードが見つかりません」などのエラーが表示されます。どなたかこの問題を解決するために助けていただけますか。
記事全体を表示
GUI Guider 1.8.0 がリリースされました! GUI Guider 1.8.0 がリリースされました! このバージョンには、イベント作成用の新しいUIビジュアライザーが付属しており、アプリケーションでのイベントフローを改善します。安定性、ウィジェット、ツールの外観も改善されました。 - プロジェクトの HTML へのエクスポート - サンプルアプリケーションを更新しました - コードエディタの改善 - FRDM-MCXN236を追加 - MCX-FRDMのポートレートモード - LVGL v7を削除しました。 自分で試してみてください https://www.nxp.com/GUI-GUIDER
記事全体を表示
UUU を使用して Linux BSP をフラッシュする <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 皆様、こんにちは。この文書では、UUU(Universal Update Utility)ツールを使用して、Linuxをi.MXデバイス(i.MX 8MM)にフラッシュする方法についてご説明いたします。   要件: MX 8M Mini EVK UUUツールのドキュメントはこちらでご覧いただけます。 Linux Binary Demo Files - i.MX 8MMini EVK UUU 1.2.135 バイナリ シリアルコンソールエミュレータ(Tera TermまたはPuTTY)   UUU auto script この例では、i.MX 8MM用のL4.14.98_2.0.0_gaデモイメージが使用されています。デモイメージ内には、デフォルトでボードのeMMCをフラッシュする自動スクリプトがあります。スクリプトの構造は以下のようになります。   /***********************************************************************************/ uuu_version 1.2.39   # このコマンドはi.MX6/7 i.MX8MM、i.MX8MQで実行されます SDP: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk   # このコマンドはROMがストリームモードに対応しているときに実行されます # i.MX8QXP, i.MX8QM SDPS: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk   # これらのコマンドはSPLを使用するときに実行され、SPLがない場合はスキップされます # SDPUは非推奨になります。SDPUの代わりにSDPVを使用してください # { SDPU: 遅延 1000 SDPU: write -f imx-boot-imx8mmevk-sd.bin-flash_evk -offset 0x57c00 SDPU: ジャンプ # }   # これらのコマンドはSPLを使用するときに実行され、SPLがない場合はスキップされます # if (SPL が SDPV をサポートしている場合) # { SDPV: 遅延 1000 SDPV: write -f imx-boot-imx8mmevk-sd.bin-flash_evk-skipspl SDPV: ジャンプ # }   FB: ucmd setenv fastboot_dev mmc FB: ucmd setenv mmcdev ${emmc_dev} FB: ucmd mmc dev ${emmc_dev} FB: flash -raw2sparse all fsl-image-validation-imx-imx8mmevk.sdcard FB: flash bootloader imx-boot-imx8mmevk-sd.bin-flash_evk FB: ucmd if env exists emmc_ack; then ; else setenv emmc_ack 0; fi; FB: ucmd mmc partconf ${emmc_dev} ${emmc_ack} 1 0 FB: 完了 /***********************************************************************************/    つまり、ボードがシリアルダウンローダモードに入ると、UUUはブートローダを内部RAMにダウンロードし、完了後にubootが実行されると、fastbootユーティリティを使用して、.scardファイルとubootをボードのeMMCにフラッシュします。   UUUプロトコルの使用について詳しくは、UUUドキュメント(UUU.pdf)セクション5の対応プロトコルを参照してください。   ツールを実行する ツールを実行するには、uuuのバイナリをダウンロードする必要があります。バイナリファイルは上記のリンクからダウンロードできます。uuu.exeはWindows用、uuuはLinux用です。 ダウンロードしたら、デモイメージと同じフォルダに配置すると、実行が簡単になり、シェルコマンドが見やすくなります。   Windows Windows OSの場合、このツールを管理者モードのWindows PowerShellで実行する必要があります。開いたら、次のコマンドを実行します。 > .\uuu.exe uuu.auto   Linux >$ sudo ./uuu uuu.auto   ツールの実行が開始されますので、ホストPCでi.MXデバイスを検出するまで待機してください。   ボードの準備 ボードをフラッシュするにはダウンロードモードにする必要があります。スイッチ構成(i.MX 8MM EVK)は次のとおりです。 SW1101  -  1010XXXXXX SW1102 - XXXXXXXXX0   ツールを実行するホストPCからのUSBケーブルをボードの(通常はダウンロードとして指定される)USB OTG/TYPE Cポートに接続します。   ホストからのUSB ケーブルをボードの(通常はデバッグとして指定される)コンソール出力用のOTG-to-UARTに接続します。   次の設定でターミナルエミュレータプログラムを開いてください。 ビット毎秒 - 115200 データビット - 8 パリティ - なし ストップビット - 1 フロー制御 - なし   ボードの電源を入れると、ダウンロードが開始され、シリアルプロンプトに uboot の進行状況が表示されます。ツールが「成功」と表示されるまでお待ちください。   最後にボードの電源をオフにし、eMMCからするようにブートスイッチ構成を変更して、再度ボードの電源をオンにすると正常に起動します!   内蔵スクリプト -bオプションを使用して組み込みスクリプトを使い、ブートローダーとrootfsをターゲットフラッシュに書き込むことができます。ターゲットフラッシュデバイスに応じてコマンドを入力するだけです。   SD ブートローダのみを書き込む: Windows: > .\uuu.exe -b sd Linux: $ sudo ./uuu -b sd   をお使いの.imx/.binファイルに置き換えてください。以下はWindowsとLinuxそれぞれのi.MX 8MMを使用した例です。 > .\uur.exe -b sd imx-boot-imx8mmevk-sd.bin-flash_evk $ sudo ./uuu -b sd imx-boot-imx8mmevk-sd.bin-flash_evk    Linuxイメージ全体を書き込む Windows: > .\uuu.exe -b sd_all .sdcard Linux: $ sudo ./uuu -b sd_all .sdcard   と をそれぞれお使いの.imx/.bin to.sdcardファイル名に置き換えてください。以下はi.MX 8MM を使用した例です。 > .\uuu.exe -b sd_all  imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard $ sudo ./uuu -b sd_all  imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard   eMMC ブートローダのみを書き込む Windows: > .\uuu.exe -b emmc Linux: $ sudo ./uuu -b emmc   i.MX 8MMを使用した例 > .\uuu.exe -b emmc imx-boot-imx8mmevk-sd.bin-flash_evk $ sudo ./uuu -b emmc imx-boot-imx8mmevk-sd.bin-flash_evk   Linuxイメージ全体を書き込む Windows: > .\uuu.exe -b emmc_all .sdcard Linux: $ sudo ./uuu -b emmc_all .sdcard   i.MX 8MMを使用した例 > .\uuu.exe -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard $ sudo ./uuu -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-validation-imx-imx8mmevk.sdcard   このフラッシュツールを使い始めるすべての方にとってお役に立てば幸いです。 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Windows Re: UUU を使用して Linux BSP をフラッシュする <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, OP-TEEプロジェクトがL4.14.98_2.0.0_ga_images_MX8MMEVKに統合されているかどうか分かりますか?TFAも? Re: UUU を使用して Linux BSP をフラッシュする <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> yoctoソースでuboot、画像、rootfsをコンパイルしました。.sdcardと.bin-flash_evkのフォーマットになりません。どうすればよいですか?
記事全体を表示
IMX8MP MIPI DSI 到 eDP 桥接板支持 1. 硬件环境:   i.MX8MP-EVK 开发板。   ITE6151 MIPI DSI 转 eDP 桥接板。 2. 软件环境:     IMX YOCTO 5.4.24-2.1.0发布。 3. 补丁操作:     a. git clone https://source.codeaurora.org/external/imx/linux-imx.git     b. git checkout -b  imx_5.4.24_2.1.0 origin/imx_5.4.24_2.1.0     c. patch -p1 < ../ite6151_mipi2edp_linux_5.4.24_20200921.patch 4. 测试环境:在 i.MX8MP-EVK 开发板上通过 DP 显示器以 1080p 模式测试: 5. 附件文档列表: IT6151 演示板用户指南 v1.0.pdf——ITE6151 桥接板硬件指南 it6151_qfn48_v20_20190905-01_end.pdf ------ ite6151 桥接板 SCH     imx8mp_ite6151_mipi2edp_linux_5.4.24_20200921.patch ------  Linux 内核驱动补丁     Image + imx8mp-evk-it6151.dtb ------ 测试镜像及设备树文件 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
記事全体を表示