imx6ull专题

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的         会有一个中断源,也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件,也就是产生中断信号,就会执行中断服务函数         但是CPU是如何知道中断源产生后就找到对应的中断服务函数呢,这个时候就要引入中断向量表,它的主要功能是描述中断对应的中断服务函数,每个中断源都有一个唯一的中断号(也称向量号),

正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编

文章目录 一、裸机开发(21个)二、嵌入式Linux驱动例程三、汇编3.1 处理器内部数据传输指令3.2 存储器访问指令3.3 压栈和出栈指令3.4 跳转指令3.5 算术运算指令3.6 逻辑运算指令 一、裸机开发(21个) 二、嵌入式Linux驱动例程 三、汇编 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一

报错记录2:imx6ull适配ov2640摄像头查询不到支持的分辨率大小

文章目录 报错问题排查问题问题原因 解决方法 报错问题 在通过ioctl(fd, VIDIOC_ENUM_FRAMESIZES, frmsize);接口枚举不到分辨率 排查问题 通过查阅mx6s_capture.c文件,找到枚举分辨率的接口,找到向ov2640驱动调用的代码,在ov2640中查看enum_frame_size函数的实现。 static int mx6s_vi

基于imx6ull平台opencv的图像采集、ffmpeg推流和Windows端拉流(多线程)

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境 三、开发流程3.1 编写测试3.2 验证功能 一、概述 本文档是针对imx6ull平台opencv的图像采集、ffmpeg推流和Windows端拉流。首先创建一个线程opencv通过摄像头采集视频图像,接着再创建两个线程,其中一个线程获取采集的视频图像送给ffmpeg服务,另一个线程用于获取采集的视频图像并处理,处理完

基于imx6ull平台opencv的图像采集和显示屏LCD显示功能(不带Qt界面)

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境 三、开发流程3.1 编写测试3.2 验证功能 一、概述 本文档是针对imx6ull平台opencv的图像采集和显示屏LCD显示功能,opencv通过摄像头采集视频图像,将采集的视频图像送给显示屏LCD进行显示。 测试结果如下图所示: 二、环境要求 2.1 硬件环境 硬件:正点原子-I.MX6U ALPHA开

基于imx6ull平台opencv的图像采集和显示屏LCD显示功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境 三、开发流程3.1 编写测试3.2 验证功能 一、概述 本文档是针对imx6ull平台opencv的图像采集和显示屏LCD显示功能,opencv通过摄像头采集视频图像,将采集的视频图像送给显示屏LCD进行显示。 测试结果如下图所示: 二、环境要求 2.1 硬件环境 硬件:正点原子-I.MX6U ALPHA开

基于imx6ull开发板 移植opencv4.7.0

一、概述 本章节是针对opencv-4.7.0移植到Linux系统,运行在正点原子-I.MX6U ALPHA开发板 上,详细的移植流程如下。 二、环境要求 2.1 硬件环境 正点原子-I.MX6U ALPHA开发板虚拟机:VMware 2.2 软件环境 Ubuntu系统要求:20.04opencv版本: 4.7.0opencv贡献软件版本:4.x交叉工具链版本:gcc-linaro-6

【imx6ull应用开发常见问题】如何配置及调试RS485?

i.MX6UL/i.MX6ULL开发常见问题 基于米尔电子 i.MX6UL/i.MX6ULL产品(V.10) 4.4如何配置及调试RS485? 答:客户可以根据实际硬件电路,确定硬件管脚具体用哪一个。打开内核源代码/arch/arm/boot/dts/myb-y6ull-14x14.dts。 参考代码:         pinctrl_uart3: uart3grp {

【imx6ull应用开发常见问题】如何调试出SPI?

i.MX6UL/i.MX6ULL开发常见问题 基于米尔电子 i.MX6UL/i.MX6ULL产品(V.10)   4.3如何调试出SPI? 答:客户可以根据实际硬件电路,确定硬件管脚具体用哪一个。打开内核源代码/arch/arm/boot/dts/myb-y6ull-14x14.dts。 修改dts,添加参考代码如下,具体的使用第几路spi和引脚配置根据板子的实际使用需改。 在make

imx6ull编译opencv4.4问题整理

问题1: features.h:311:52: error: operator '&&' has no right operand 解决方法: 在/home/jsaon/tool/opencv-3.4.5/3rdparty/protobuf/src/google/protobuf/stubs/common.cc 中添加下面这一行 #define HAVE_PTHREAD 问题2: /home/

imx6ull i2c 控制器

备注:部分知识参考百问网手册 一、overview 1.1 特性 ① 兼容标准I2C总线,多主机运行。 ② 64种不同的串行时钟频率之一的软件可编程性。 ③ 软件可选择的应答位。 ④ 中断驱动,逐字节数据传输。 ⑤ 仲裁丢失中断与自动模式切换从主到从。 ⑥ 启动和停止信号生成/检测。 ⑦ 重复启动信号生成。 ⑧ 应答位生成和检测。 ⑨ 总线忙检测。 1.2 模式和操作 支持两种模式:

imx6ull General Purpose Timer (GPT)

一、overview GPT有一个32位的向上计数器,可以将外部引脚上的事件捕获到GPT寄存器中,捕获触发可以编程设置为上升沿或下降沿触发,甚至双边沿触发。GPT还可以在输出比较引脚上产生一个事件,并当计时器达到编程值时产生一个中断。GPT有一个12位的预分频,来对多个时钟源进行分频。 1.1 特性 ① 一个带有时钟源选择的32位递增计数器,时钟源包括外部时钟。 ② 两个具有可编程触发沿

imx6ull Enhanced Periodic Interrupt Timer (EPIT)

一、overview EPIT是一个32位的计时器,能够在处理器很少干预的情况下以固定的时间间隔提供精确的中断。软件使能后,EPIT就开始计数。IMX6ULL有2个EPIT定时器。其框图如下所示: 1.1 epit 特性 EPIT具有以下主要特性: •可选择时钟源的32位递减计数器 •12位预分频器,用于对输入时钟进行分频 •可即时编程的计数器值 •可以设置在低功耗和调试模式下,计数器仍

imx6ull gpio 中断

本文使用100ask_imx6ull_mini开发板来做实验,内容参考百问网开发手册 一、整体流程 GPIO 作为中断源,本实验使用KEY1(GPIO5_1)和KEY5(GPIO4_IO14)两个按键作为中断源,主要工作如下: 设置GPIO模块 设置GIC模块 使能各个路径的中断 编写中断函数 二、GPIO模块相关设置 1.设置gpio管脚模式为GPIO模式(alt5),并设置相应上下拉

imx6ull中断体系之GICV2

本文不研究中断虚拟化相关内容,部分内容来自于百问网手册 一、中断类型 Peripheral interrupt :其包含以下两种类型的外围中断,它们可以边缘触发或者高低电平触发 ​ Private Peripheral Interrupt (PPI) :这是一个特定于单个处理器的外围中断。 ​ Shared Peripheral Interrupt (SPI) :共享中断,这部分中断所有的

imx6ull gpio

1、总览 The GPIO is one of the blocks controlling the IOMUX of the chip. GPIO 功能通过8个寄存器、一个边缘检测电流以及中断产生逻辑来实现的。每个GPIO 输入有个专用的边缘检测电路,可以通过软件设置来进行检测上升沿、下降沿、逻辑高低电平。边缘检测电路的输出可以通过设置GPIO_IMR的相应位来屏蔽。 GPIO内部框图如下所

正点原子imx6ull 进度条颜色、logo位置上偏或色偏等问题

正点原子imx6ull 进度条改颜色 logo位置上偏或显示色偏等问题 开机进度条logo问题进度条界面全屏logo位置上偏进度条界面logo其他问题进度条界面去掉中间这条杠 uboot界面logo问题不显示uboot界面的打印信息uboot显示logo不理想uboot不显示logo 开机进度条logo问题 进度条界面全屏logo位置上偏 使用正点原子的《I.MX6U修改开

【linux-IMX6ULL-LED字符驱动框架完善】

目录 1.简介2.前置知识2.1 重要函数及结构体2.2 程序框架流程 3. 代码详解: 1.简介   在上节,我对linux-IMX6ULL-字符设备驱动简单框架实验进行了说明和构建,但是也存在几个问题; 需要手动指定设备号,不能自动申请;需要在linux端手动创造设备节点,也就是要用maknod命令;没有引入实际设备;   因此这节内容就根据上节的驱动框架,然后结合LED,

[IMX6ULL驱动开发]-GPIO子系统和Pinctrl子系统

目录 Pinctrl子系统的概念 GPIO子系统的概念 定义自己的GPIO节点 GPIO子系统的函数 引脚号的确定 基于GPIO子系统的驱动程序 驱动程序 设备树修改 之前我们进行驱动开发的时候,对于硬件的操作是依赖于ioremap对寄存器的物理地址进行映射,以此来达到对操控硬件的目的,但是在实际的开发中,如果对引脚一个个的进行物理地址的映射并不现实,我们在这里使用Pin

【IMX6ULL项目】IMX6ULL下Linux实现产测工具框架

电子产品量产测试与烧写工具。这是一套软件,用在我们的实际生产中, 有如下特点: 1.简单易用:          把这套软件烧写在 SD 卡上,插到 IMX6ULL 板子里并启动,它就会自动测试各个模块、烧写 EMMC 系统。         工人只要按照说明接入几个模块,就可以完成整个测试、烧写过程。          测试结果一目了然:等 LCD 上所有模块的图标都变绿时,就表示测试通

【linux-IMX6ULL-定时器-GPT-串口配置流程-思路】

目录 1. 定时器配置流程1.1 EPIT定时器简介1.2 定时器1(epit1)的配置流程1.3 配置代码(寄存器版本)1.4 定时器-配合按键消抖1.4.1 实现原理1.4.2 代码实现(寄存器版) 2. GPT定时器实现高精度延时2.1 延时原理分析2.2 代码实现 3. UART串口配置流程3.1 UART串口通信基本概念;3.1.1 基本术语3.1.2 接线方式3.1.3 UAR

[IMX6ULL]移植lf-v2022.04 U-boot

移植lf-v2022.04 U-boot 文章目录 移植lf-v2022.04 U-boot1 下载 NXP uboot2 编译 NXP uboot2.1 编译命令2.2 编译错误 3 烧写NXP uboot4 适配正点原子alpha板子4.1 添加配置文件4.2 添加设备树文件4.2.1 添加板级设备树文件4.2.2 根据板子原理图裁剪和修改设备树内容 4.3 将alpha开发板添加

【linux-IMX6ULL中断配置流程】

目录 1. Cortex-A7和GIC中断概述1. 1 Cortex-A7中断系统:1. 2 GIC中断控制器简介: 2. 中断配置概述3. 底层中断文件配置3.1 对启动文件.s的配置思路3.2 对中断函数配置思路 4. 上层中断配置流程 1. Cortex-A7和GIC中断概述   学习IMX6UL的中断处理系统,可以参考STM32的中断系统,并把知识点迁移过来:如下图,IM

imx6ull启动方式和镜像文件烧写

文章目录 前言一、BOOT启动方式1.串行下载2.内部BOOT模式 二、内部BOOT模式详细流程1.启动设备的选择2.镜像烧写 总结 前言 💦 I.MX6Ull 支持多种启动方式以及启动设备,比如可以从 SD/EMMC、NAND Flash、QSPI Flash等启动。用户可以根据实际情况,选择合适的启动设备。不同的启动方式其启动方式和启动要求也不一样,比如从 SD 卡启动

imx6ull -- SPI

SPI 是 Motorola 公司推出的一种同步串行接口 技术,是一种高速、全双工的同步通信总线, SPI 时钟频率相比 I2C 要高很多,最高可以工作 在上百 MHz。 SPI 以主从方式工作,通常是有一个主设备和一个或多个从设备,一般 SPI 需要 4 根线,但是也可以使用三根线(单向传输)。   框图 结构图如下 CS/SS, Slave Select/Chip Select:选择

imx6ull设备树驱动--pinctl、ioctl

添加pinctl节点 进入arch/arm/boot/dts目录下dts文件 在iomuxc下添加pinctl+led节点 将 GPIO1_IO03 这个 PIN 复用为 GPIO1_IO03,电气属性(配置GPIO一些列寄存器)值为 0X10B0 添加led设备节点 与上一节一样,在 / 下面添加设备节点 pinctrl-0 属性设置 LED 灯所使用的 PIN 对应的