![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IMX6
文章平均质量分 79
IMX6ULL平台学习笔记,仅供个人参考,如果有帮助到其他人的,不胜荣幸
Amu@123
这个作者很懒,什么都没留下…
展开
-
IMX6ULL SPI
目录spi_master结构体spi_device结构体spi_driver结构体总结对linux内核spi驱动框架的学习,会通过三个结构体来一步步深入了解,这三个结构体分别是spi_master,spi_device,spi_driverspi_master结构体借着IMX6ULL平台分析一下linux内核中的SPI驱动程序的大概框架,总体上的框架和上一节中的i2c的驱动是差不多的,回忆一下在i2c驱动程序中,围绕着一个重要的结构体叫做i2c_adapter,它是具体的i2c总原创 2021-02-23 21:49:10 · 1676 阅读 · 0 评论 -
IMX6ULL I2C框架
本节来看I2C驱动框架,题目叫IMX6ULL I2C框架,不是imx特有的i2c驱动框架,只是借着IMX6ULL的平台来分析linux内核中的I2C驱动框架,在Linux内核中,把I2C分为I2c总线、设备、驱动,实现了分层的概念,那么,在内核中,I2C总线抽象为一个结构体叫做I2c_adapter,一个i2c_adapter就是平台上一个真实的物理I2Ci2c_adapter来看一下I2C框架中最重要的i2c_adapter结构体的内容其中重要的成员是struct i2c_algori原创 2021-02-22 10:55:01 · 721 阅读 · 0 评论 -
IMX6ULL LCD驱动(二)
目录一 注册fb_info二 核心层代码总结一 注册fb_info接着上一小节的register_framebuffer函数开始,调用do_register_framebuffer函数,,列出主要内容static int do_register_framebuffer(struct fb_info *fb_info){ int i, ret; struct fb_event event; struct fb_videomode mode; if (n..原创 2021-02-04 16:05:43 · 523 阅读 · 0 评论 -
IMX6ULL LCD驱动(一)
本小节来分析Linux内核中的LCD框架,只分析基于RGB接口的LCD框架,如果是涉及GPU的那就比较复杂了,有过应用层对LCD操作的应该知道,上层应用是通过一些Ioctl函数操作/dev/fbxxx,这些函数对内核同统一出来的一套LCD的操作函数,还有,对于不同的单板,其LCD控制器的操作肯定是不同的所以,从这两方面来看,内核LCD框架肯定有两部分工作要完成初始化具体单板的LCD控制器 注册统一的操作函数为上层应用使用驱动大多都是这样,应用不关心下面具体的单板,具体的单板只需要实现自己的操原创 2021-02-04 15:22:58 · 1529 阅读 · 0 评论 -
Linux 4.19输入子系统二
目录一、驱动实验二、应用程序实验三、内核自带按键驱动一、驱动实验上小节简单分析了Linux4.19内核中输入子系统的框架,本节就来实际体验一下输入子系统该如何去用,详细的代码就不去写了,这里只列出流程/* 初始化函数 */int xxx_probe(){ struct input_dev *inputdev; /* input结构体 */ /* 1、申请input_dev结构体 */ keyinputdev.inputdev = input_.原创 2021-02-02 22:24:23 · 153 阅读 · 0 评论 -
Linux 4.19输入子系统一
之前在Linux2.6内核上已经接触过Linux的输入子系统框架,现在使用新版本的内核,和旧的内核在流程上有一些不一样,但是大体的流程还是一样的,本篇就来分析一下Linux4.19内核中的输入子系统,IMX6ULL使用的是4.15版本的内核,是一样的,原文链接...原创 2021-02-02 21:46:41 · 116 阅读 · 0 评论 -
IMX6ULL pinctrl子系统
目录概述设备树表示内核中操作总结概述在前面的学习过程中操作了很多的IO引脚,那么,使用一个IO引脚最重要的三部分1、配置IO的复用,主要是MUX类的寄存器2、配置IO的电气属性,主要配置PAD类的寄存器3、配置IO的输入输出设备树表示设备树的引入方便开发者对设备进行描述,对于外设的一些引脚的使用,在设备树中也有描述,称为pinctrl子系统,内核根据设备树中的描述来完成对管脚的配置,这篇随着imx6ull平台的设备树分析来简单了解一些...原创 2021-01-28 22:52:08 · 728 阅读 · 0 评论 -
设备树中的特殊节点
设备树用来描述一个平台上的设备信息,不仅包括SOC上的设备,还可以添加一个外设信息,简单记录一下设备树中的特殊节点的理解地址信息设备树中的地址信息一般用#address-cells和#size-cells来修饰,address表示地址由几个单元组成,一个单元是一个32位的值(在32位系统上),size-cells表示地址的长度由几个单元组成,比如 aips2: aips-bus@02100000 { compatible = "fsl,aips-bus", "simple-bus".原创 2021-01-27 22:25:03 · 479 阅读 · 0 评论 -
三、系统频率
目录一、系统时钟来源二、时钟系统三、系统主频修改3.1 PLL1系统主频3.2另一路频率设置3.3 总结4、代码一、系统时钟来源之前的实验中都是采用默认的时钟配置,IMX6ULL默认时钟是396MHz,本节就来配置IMX6ULL使其工作在推荐的528MHz,先看芯片的时钟来源,打开芯片核心板原理图可以看到,芯片已经接了一个32.768KHz的晶振,这个晶振的频率很小,它是用来为系统的实时时钟RTC提供时钟的,一般的,XTALI和XTALO就是系统的时钟引脚,可以查原创 2021-01-14 23:08:21 · 1169 阅读 · 1 评论 -
二、启动方式和烧写镜像
第一次的led使用是把生成的bin文件烧到了SD卡,然后从SD卡启动的,这一节就来看一下IMX6ULL的启动方式的选择打开参考手册,找到系统启动这一节,这一节其实已经很详细的说明了启动方式,启动方式手册中说,在系统上电的时候,芯片内部的boot Rom会根据eFUSEs或者BOOT_MODE[1:0]的状态来选择启动设备,boot Rom支持的启动设备有下面这些关于eFUSEs的启动方式选择就不考虑了,一般的芯片主要都是通过IO口的状态来选择启动设备的,IMX6ULL的两个启动引脚就对应4中启动选原创 2021-01-10 12:56:57 · 442 阅读 · 0 评论 -
一、汇编LED
本篇作为IMX6ULL平台学习的开篇,从此很长一段事件将学习IMX6的开发,也在此对自己立下学习要求,当以认真,谦恭的态度往后学习。好了,开始吧。拿到每一个新的开发板,进行的第一个实验必然是LED的实验,LED在嵌入式的学习中就和软件中的"Hello world"一样重要,更重要的是通过LED实验了解一个新的平台下的GPIO的操作方法,之前接触过IMX6的开发平台,也没有系统的了解过它的IO操作方法,现在来了解一下一、IMX6ULL IO管脚复用功能根据以往的嵌入式开发经验,都知道对于芯片的IO口在原创 2021-01-08 21:13:19 · 597 阅读 · 0 评论