问题标签 [imx6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bare-metal - 如何使用 eclipse 开发裸机 i.mx6sx 代码?
我想知道您是否可以帮助我解决我在裸机中为 i.MX6 SoloX 开发时遇到的一些问题。我正在查看此链接https://community.nxp.com/docs/DOC-106253并下载了那里的文件以用作如何为 i.MX6 开发裸机 c 代码的示例。
然后我根据本教程https://community.nxp.com/docs/DOC-103736设置我的 Eclipse 环境,但只是工具链,因为我对处理器专家不感兴趣。
由于我在 Linux 上工作,因此我没有安装 Code Sourcery,而是使用我安装的 gcc-arm-none-eabi:
因此我不得不分别为rm和make更改cs-rm和cs-make。
我能够使用下载的代码创建一个 Eclipse 项目并配置该项目以使其工作,但是,我遇到了第一个错误:
我能够在project > properties的包含目录中添加“/usr/include”来解决它。但我不确定这是否是解决此错误的正确方法。
修复此错误后,我得到了一个新错误:
为了解决这个问题,我必须明确包含文件“/usr/include/x86_64-linux-gnu/sys/types.h”,而且我不知道这是否是解决它的正确方法。
现在已经消除了这两个错误,我有以下一个:
我无法解决。
我不知道这个错误是否是我解决前两个错误的方式的结果。
有人知道如何为 i.MX6 裸机开发正确设置 eclipse 吗?
非常感谢您的帮助!!
yocto - Yocto 构建的 linux 上的安装后脚本
我需要在 Yocto 构建的目标操作系统上运行脚本。
该脚本需要作为安装的一部分运行,因此只能运行一次(在整个操作系统安装后或首次启动时)。它不能在主机系统上运行,因为它依赖于仅存在于目标上的硬件 IO。
另一个较小的限制是 rootfs 以只读方式安装,但我想可以通过将脚本重新安装为 rw 并在执行后再次重新安装为 r 或类似这些行的东西来避免这种情况。
任何帮助表示赞赏。
linux-kernel - 如何将 ov5642 相机模块像素时钟 (8MHz) 连接到 imx6 quad
我正在使用 i.mx6quad 和 debian jessie (3.14.60-fslc-imx6-sr)。
我想将 ov5642 摄像头模块与 PARALLEL 8BIT 接口共同连接(使用 8gpios 用于数据,3 用于控制信号)。我编写了一个 linux 内核模块来服务来自控制信号的中断。来自 VSYNC 和 HREF 信号的中断得到了正确处理,但是当我连接一个比 HREF 或 VSYNC 快得多的 PCLK(大约 8MHz)信号时,我的 linux 会挂起,直到我断开与 PCLK 的电线(一切都卡住了)。要连接 PCLK,我使用 GPIO90 (DISP1_DATA22),但我也尝试使用其他 gpios。
现在我的问题是我应该使用哪个 GPIO 来正确地服务像 PCLK 这样的快速信号,或者我可以做些什么来避免 linux 挂断?
我包含了一个我使用的 linux 内核模块代码。
我可以补充一点,我正在使用带有可用 gpios 的蜂板门,如附图所示。
yocto - Yocto:如何从包的 RDEPENDS 中删除/黑名单一些依赖项?
我有一个基于https://github.com/jumpnow/meta-wandboard的自定义机器层。
我已将内核升级到 4.8.6,并希望将 X11 添加到映像中。我正在修改图像配方(console-image.bb
)。由于 wandboard 基于 i.MX6,我想包含xf86-video-imxfb-vivante
来自meta-fsl-arm
. 但是,它无法抱怨无法构建kernel-module-imx-gpu-viv
. 我相信会发生这种情况,因为xf86-video-imxfb-vivante
DEPENDS on imx-gpu-viv
which 又 RDEPENDS on kernel-module-imx-gpu-viv
。
我意识到这些依赖项是使用 meta-fsl-arm BSP 和 vanilla Poky 发行版创建的。但是这些东西对于 wandboard 来说已经过时了,因此我正在使用带有现代内核的自定义机器层。内核配置为包含 Vivante DRM 模块,我真的不希望kernel-module-imx-gpu-viv
构建包。
有没有办法将其从 RDEPENDS 中排除?我能以某种方式向构建系统发誓我将自己处理这个特定的运行时依赖关系吗?
我已经尝试在我的 local.conf 中将“kernel-module-imx-gpu-viv”设置列入黑名单PNBLACKLIST[kernel-module-imx-gpu-viv]
,但这只是解决方案的一部分。它有助于避免构建失败,但打包过程仍然失败。
linux - 使用 -platform eglfs 运行 Qt5 应用程序时 i.MX6 上的分段错误
我正在尝试hellogl_es2
通过指定eglfs
平台来运行没有 X Server 的 Qt 示例:
CPU 是飞思卡尔 i.MX6。
Linux 内核是 3.10.17。
发行版是 Ubuntu 14.04.4 LTS(值得信赖)。
Qt 版本是 5.2.1,从http://packages.ubuntu.com安装,armhf
架构,包qtbase5-dev
,,。qtbase5-examples
qtbase5-examples-dbg
核心转储是(问题gcoOS_InitLocalDisplayInfo
in libGAL.so
):
该行为与其他 Qt 示例项目相同。
X 服务器运行时,指定xcb
平台(-platform xcb
,即默认值)工作正常。
linux - 使用 -platform eglfs 运行 Qt5 应用程序时,i.MX6 上的“EGL 错误:无法创建 EGL 表面:错误 0x300b”
我试图hellogl_es2
通过指定 eglfs 平台来运行没有 X Server 的 Qt 示例:
CPU 是飞思卡尔 i.MX6。
Linux 内核是 3.10.17。
发行版是 Ubuntu 14.04.4 LTS(值得信赖)。
Qt 版本是 5.2.1,从http://packages.ubuntu.com安装,armhf 架构,包 qtbase5-dev、qtbase5-examples、qtbase5-examples-dbg。
核心转储是:
该行为与其他 Qt 示例项目相同。
我尝试使用或不使用此补丁从源重新制作 Qt: https ://patchwork.openembedded.org/patch/66349/ 但没有结果(同样的错误)。
c++ - iMX6 上的 Qt5:如何确保正在使用硬件加速?
我有一个Qt5
应用程序使用Qwt
库来绘制一些轨迹,具有图形缩放和其他一些简单的 Qt 小部件,如QLabel
、QPushButton
、QScrollBar
等QFrame
。
该应用程序在 Linux 上运行。
Linux 内核是 3.10.17。
发行版是 Ubuntu 14.04.4 LTS(值得信赖)。
Qt 版本是 5.2.1。
我的问题是:我应该怎么做才能确保 iMX6 内置 GPU 硬件加速正在使用中?我是否需要指定:
在Qt
.pro 项目文件中?
关于Qwt
,够用QwtPlotGLCanvas
吗?
这些是我能做到的最好的吗?
yocto - yocto build for iMX6 TinyRex Module 无法启动
我正在尝试使用 yocto 为 iMX6 TinyRex 模块构建图像。在构建过程中我没有遇到任何问题,一切似乎都在工作。但是,当我将完成的图像复制到 SD 卡并插入时,它不会启动。我只是得到一个空白屏幕。
我正在关注本教程:
http://www.imx6rex.com/imx6-tiny-rex/software/how-to-start-with-yocto-and-compile-source-codes/
我尝试了几个不同的图像,但似乎都没有。我从别人那里接手了这个项目,对 yocto 还是很陌生。
任何帮助将不胜感激。
android - mipi csi2 无法正确接收数据!使用 ov9724 相机和 imx6dl 微控制器捕获视频时出错
我正在尝试将omnivision 的ov9724 相机与imx6dl 微控制器连接起来。相机只有一个单通道的mipi接口,我只使用一个通道进行通信(一个差分数据通道和一个差分时钟通道)。
我在"git://git.freescale.com/imx/linux-2.6-imx.git"中移植了 ov5640 的相机驱动程序。由于相机只有 RAW-10 位输出,我根据我在网上找到的参考代码编辑了代码。
这是我编辑的相关 dts 配置。
我在下面附上错误日志。对我来说,这似乎是一个时钟问题,在提到错误时,我发现这两位是根据错误寄存器 1 中的数据表设置的。
位 4:虚拟通道 0 的帧开始与帧结束匹配错误
位 28:标头 ECC 包含 2 个错误。不可恢复。
我已将 imx 配置为使用 IPU - 1、CSI - 0、Virtual Channel - 0 和 Number of lanes - 1。请参阅下面的日志。
我认为这可能与时钟配置有关,但我不确定如何继续。我看到了“客户 MIPI 传感器的调试步骤”文档中提到的 dphy 寄存器设置,我认为作者是根据文档AN5305(第14页)中提供的信息创建的,我附在此处。
我将时钟配置如下。
根据数据表,在相机传感器端,Pixel clk = (ext_clk * pll_multiplier) / (sys_clk_div_pll * pre_pll_clk_div_pll * pix_clk_div_pll) = (24000000 * 0x3E) / (0x0A * 0x01 * 0x02) = 75.6 MHz。
现在为了在 imx 端配置 mipi dphy 时钟,我使用了以下计算。(对于 30 fps 的 1280 x 720)(此计算基于此处附加的 AN5305 文档中的公式,第 3.4 节,第 13 页)。
像素时钟 = 1280 * 720 * 30 fps * 1 个周期/像素 * 1.35 消隐间隔 = 74.6 MHz
总 MIPI 数据速率 = 74.6 * 10 位 = 746 Mbps。 对于 1 通道接口,MIPI 时钟 = 746 /(通道数)/2 = 746 / 1 / 2 = 373 MHz。
MIPI_CSI2_PHY_TST_CTRL1 设置 = 373 MHz * 2(DDR 模式)= 746 MHz
基于此值,我通过参考 AN5305 第 14 页在 mxc_mipi_csi2.c 中编辑 mipi dphy 设置如下。
我仍然不确定时钟设置是否正确。我也不清楚 AN5305 第 21 页中提到的 ov5640 的时钟设置。(我已将其作为图像附在此处 - AN5305.png 中的 MIPI CLK 设置)。他们为什么将 PLL5 设置为596 MHz?
此外,ipu 和 mipi 配置如下。
我打印了“dphy_clk”、“pixel_clk”和“cfg_clk”,如下所示。
sh-4.3# dmesg | grep 时钟
看到pixel clk已经四舍五入到30919000,这部分我没看懂。这里的 dphy_clk 是 198 MHz。我是否必须更改任何额外的 pll 设置或其他内容?
内核调试日志显示 MIPI 错误
我无法探测 clk 和数据线,因为我拥有的 DSO 只有 200 MHz。我观察到的波形附在下面。(黄色探头 - DATA_P,绿色探头 - DATA_N,蓝色 - CLK_P,粉色 - CLK_N)。打开流媒体时,我正在观察数据线上的数据,但最初在时钟线上没有看到任何东西。然后当我将时钟线的分压降低到 100mV(数据电压在 1V 左右)时,我在时钟中看到了一个波形模式,最初看起来像噪声。当数据存在时,似乎时钟存在。但是当我探测两条数据线时,时钟线看起来像噪声,如图 scope_15.bmp 所示。我不知道为什么时钟会这样 - 硬件问题?但在 imx 端,根据 MPHY MIPI CSI2 PHY_STATE 寄存器检测到 ddr 时钟。
我知道这是一篇很长的帖子,但我想包括迄今为止我所做的一切。我是 linux 的新手,基本上这是我的第一个项目。我将在下面总结我的问题。
- 日志中出现 MIPI CSI 错误的原因可能是什么?
- 波形中的时钟看起来正常吗?mipi 接口可以正常工作吗?
- 如果我的 dphy 时钟配置错误,如何同时配置 imx 和相机时钟?更重要的是,相机传感器时钟与 dphyclock 有什么关系?
- 在文档 AN5605 第 21 页中,时钟596MHz的意义是什么,我应该使用什么时钟?
请让我知道你的想法。
链接到AN5305文档 - http://www.nxp.com/assets/documents/data/en/application-notes/AN5305.pdf
linux - Linux 和 RTOS 之间的处理器间通信
我正在使用 imx6 sabrelite 板(皮质 A9 四核),其中 Linux 操作系统在 core0 上运行,RTOS 在 core2 上运行。我的任务是在两个操作系统之间建立处理器间通信。我已经通过 Linux 中的远程处理器消息传递 (RPMsg)。但是,我没有得到太多关于它的用法的信息。如果有人分享他们在这个主题上的经验或建议我一些其他方法来完成这项任务,那对我来说真的很有帮助。
提前致谢。