
正点IMX6ULL裸机开发
文章平均质量分 90
IMX6ULL裸机笔记,视频来源:
https://www.bilibili.com/video/BV1yE411h7uQ
文档开源:http://www.openedv.com/docs/book-videos/zdyzshipin/4free/index.html
行稳方能走远
日日行,不怕千万里;常常做,不怕千万事
展开
-
ADC实验(读取引脚电压值)
ADC 是一种常见的外设,你可以在STM32 上见到它,在I.MX 6ULL 上依然能看到它的存在。通过读取GPIO 引脚的高低电平我们可以知道输入的是1 还0,但是我们并不能知道它实际的电压是多少。ADC 的存在就是让你知道的更加清楚,ADC 可以让你知道某个IO 的具体电压值。有很多传感器都是模拟信号输出的,也就是输出电压值,我们需要测量到其具体的电压值,然后在使用对应的公式进行计算,得到最终的数字值。本章我们就来学习一下I.MX6ULL的ADC 外设。ADC 简介什么是ADCADC,Analog原创 2021-11-22 19:25:54 · 19470 阅读 · 0 评论 -
LCD背光调节实验
目录LCD 背光调节简介硬件原理分析实验程序编写编译下载验证编写Makefile 和链接脚本编译下载不管是使用显示器还是手机,其屏幕背光都是可以调节的,通过调节背光就可以控制屏幕的亮度。在户外阳光强烈的时候可以通过调高背光来看清屏幕,在光线比较暗的地方可以调低背光,防止伤眼睛并且省电。正点原子的三款RGB LCD 也支持背光调节,本章我们就来学习如何调节LCD 背光。LCD 背光调节简介正点原子的三个RGB LCD 都有一个背光控制引脚,给这个背光控制引脚输入高电平就会点亮背光,输入低电平就会关闭背光原创 2021-11-19 21:57:35 · 14050 阅读 · 1 评论 -
多点电容触摸屏实验
目录多点电容触摸简介硬件原理分析实验程序编写编译下载验证编写Makefile 和链接脚本编译下载随着智能手机的发展,电容触摸屏也得到了飞速的发展。相比电阻触摸屏,电容触摸屏有很多的优势,比如支持多点触控、不需要按压,只需要轻轻触摸就有反应。ALIENTEK 的三款RGB LCD 屏幕都支持多点电容触摸,本章就以ATK7016 这款RGB LCD 屏幕为例讲解一下如何驱动电容触摸屏,并获取对应的触摸坐标值。多点电容触摸简介触摸屏很早就有了,一开始是电阻触摸屏,电阻触摸屏只能单点触摸,在以前的学习机、功能原创 2021-11-19 21:29:56 · 3896 阅读 · 1 评论 -
SPI实验
目录SPI & ICM-20608 简介SPI 简介I.MX6U ECSPI 简介ICM-20608 简介硬件原理分析实验程序编写编译下载验证编写Makefile 和链接脚本编译下载同I2C 一样,SPI 是很常用的通信接口,也可以通过SPI 来连接众多的传感器。相比I2C 接口,SPI 接口的通信速度很快,I2C 最多400KHz,但是SPI 可以到达几十MHz。I.MX6U 也有4 个SPI 接口,可以通过这4 个SPI 接口来连接一些SPI 外设。I.MX6U-ALPHA 使用SPI3 接口原创 2021-11-20 20:19:00 · 2795 阅读 · 0 评论 -
I2C实验
1、I2C 简介2、I2C 协议3、I2C协议有关术语3.1、起始位3.2、停止位3.3、数据传输3.4、应答信号3.5、I2C 写时序(主机向从机)3.6、I2C 读时序(主机向从机)3.7、I2C 多字节读写时序原创 2021-07-27 17:34:03 · 1347 阅读 · 0 评论 -
RTC实时时钟实验(低功耗、纽扣电池供电)
目录I.MX6U RTC 简介硬件原理分析实验程序编写修改文件MCIMX6Y2.h编写实验程序编译下载验证编写Makefile 和链接脚本编译下载实时时钟是很常用的一个外设,通过实时时钟我们就可以知道年、月、日和时间等信息。因此在需要记录时间的场合就需要实时时钟,可以使用专用的实时时钟芯片来完成此功能,但是现在大多数的MCU 或者MPU 内部就已经自带了实时时钟外设模块。比如I.MX6U 内部的SNVS 就提供了RTC 功能,本章我们就学习如何使用I.MX6U 内部的RTC 来完成实时时钟功能。I.MX原创 2021-11-19 21:11:18 · 12814 阅读 · 0 评论 -
RGBLCD显示实验————复习到这
目录LCD 和eLCDIF 简介LCD 简介eLCDIF 接口硬件原理分析实验程序编写编译下载验证编写Makefile 和链接脚本编译下载LCD 液晶屏是常用到的外设,通过LCD 可以显示绚丽的图形、界面等,提高人机交互的效率。I.MX6U 提供了一个eLCDIF 接口用于连接RGB 接口的液晶屏。本章我们就学习如何驱动RGB 接口液晶屏,并且在屏幕上显示字符。LCD 和eLCDIF 简介LCD 简介LCD 全称是Liquid Crystal Display,也就是液晶显示器,是现在最常用到的显示器原创 2021-11-19 20:41:24 · 5825 阅读 · 0 评论 -
NXP(I.MX6uLL)DDR3实验——DDR3初始化、校准、超频测试
DDR3L 初始化与测试ddr_stress_tester 简介DDR3L 驱动配置DDR3L 校准DDR3L 超频测试DDR3L 驱动总结ddr_stress_tester 简介NXP 提供了一个非常好用的DDR 初始化工具,叫做ddr_stress_tester。此工具已经放到了开发板光盘中,路径为:5 、开发工具->5 、NXP 官方DDR 初始化与测试工具->ddr_stress_tester_v2.90_setup.exe.zip,我们简单介绍一下ddr_stress_tester原创 2021-11-18 21:15:43 · 7279 阅读 · 0 评论 -
NXP(I.MX6uLL)DDR3实验——DDR3重要时间参数、时钟配置与原理图简析
目录DDR3 关键时间参数I.MX6U MMDC 控制器简介MMDC 控制器MMDC 控制器信号引脚MMDC 控制器时钟源ALPHA 开发板DDR3L 原理图DDR3 关键时间参数大家在购买DDR3 内存的时候通常会重点观察几个常用的时间参数:1、传输速率比如1066MT/S、1600MT/S、1866MT/S 等,这个是首要考虑的,因为这个决定了DDR3 内存的最高传输速率。2、tRCD 参数tRCD 全称是RAS-to-CAS Delay,也就是行寻址到列寻址之间的延迟。DDR 的寻址流程是原创 2021-11-18 20:49:03 · 6832 阅读 · 0 评论 -
NXP(I.MX6uLL)DDR3实验(RAM)——DDR发展历史
何为RAM 和ROM?SRAM 简介SDRAM 简介DDR 简介原创 2021-07-27 17:06:35 · 3049 阅读 · 6 评论 -
NXP(I.MX6uLL) UART串口通信实验&串口格式化函数移植实验
1、UART简介1.1、UART串口通讯格式1.2、UART 的通信格式:1.3、UART 电平标准2、I.MX6U UART 简介2.1、UART的时钟源选择3、UART 几个重要的寄存器3.1、UART 的控制寄存器 1,即UARTx_UCR1(x=1~8)3.2、UART 的控制寄存器 2,即: UARTx_UCR23.3、UARTx_UCR3 寄存器3.4、寄存器 UARTx_USR23.5、寄 存 器 UARTx_UFCR 、 UARTx_UBIR 和 UARTx_UBMR原创 2021-07-27 11:12:16 · 2053 阅读 · 0 评论 -
NXP (I.MX6ULL) GPT高精度延时定时器
参考:Linux NXP (I.MX6ULL) GPT高精度延时定时器作者:一只青木呀发布时间: 2020-09-20 11:50:14网址:https://blog.youkuaiyun.com/weixin_45309916/article/details/108690475目录0、GPT 定时器简介1、GPT 定时器特性如下:2、GPT 定时器的可选时钟源如下图所示:3、GPT 定时器结构如下图所示:3.1、GPT 定时器结构中各部分意义如下:4、GPT 定时器有两种工作模式5、 GPT 定时器几个.原创 2021-07-27 10:20:45 · 1577 阅读 · 9 评论 -
ARM(I.MX6ULL) EPIT定时器中断实验、定时器按键消抖
1、EPIT定时器简介1.1、总结2、按键消抖为什么要用定时器来做按键消抖?定时器按键消抖原理原创 2021-07-27 09:48:02 · 1046 阅读 · 0 评论 -
ARM(IMX6U)ARM Cortex-A7中断系统(GPIO按键中断驱动蜂鸣器)
1、中断是什么?2、回顾STM32中断系统2.1、中断向量表2.2、NVIC(内嵌向量中断控制器)2.3、中断使能2.4、中断服务函数3、Cortex-A7 中断系统详解3.1、Cortex-A7 中断系统简介3.2、GIC 控制器简介3.2.1、 GIC 控制器总览3.2.2、中断 ID3.3.3、 GIC 逻辑分块3.3、CP15 协处理器3.3.1、c0 寄存器3.3.2、c1 寄存器3.3.3、 c12 寄存器3.3.4、c15 寄存器3.3.5、 总结3.4、中原创 2021-07-26 17:44:24 · 1404 阅读 · 7 评论 -
ARM(IMX6U)裸机主频和时钟
1、I.MX6U 时钟系统详解1.1、系统时钟来源1.2、7 路 PLL 时钟源1.3、7路PLL的具体作用1.4、时钟树简介1.5、内核时钟设置1.6、PFD 时钟设置1.7、AHB、 IPG 和 PERCLK 根时钟设置2、实验程序编写2.1、bsp_clk.c2.2、bsp_clk.h2.3、main.c3、编译下载验证原创 2021-07-22 11:53:58 · 827 阅读 · 1 评论 -
ARM(IMX6U)裸机按键输入实验(BSP+SDK、GPIO输入与输出、按键消抖)
1、按键输入简介2、硬件原理图分析3、实验程序的编写3.1、bsp_gpio.h3.2、bsp_gpio.c3.3、gpio_key.h3.4、gpio_key.c3.5、main.c4、编译下载验证4.1、连接脚本的编写4.2、Makefile的编写4.3、编译下载原创 2021-07-21 20:43:41 · 511 阅读 · 0 评论 -
ARM(IMX6U)裸机C语言蜂鸣器驱动实验(BSP+SDK)
1、有源蜂鸣器简介2、硬件原理分析3、实验程序的编写3.1、在写驱动之前要找到对应的寄存器设置好属性3.1.1、复用为GPIO3.1.2、找到其设置电器属性并配置电器属性3.2、beep.h3.3、beep.c3.4、把头文件包含进main.h中3.4.1、修改.vscode文件把beep文件夹路径加入到.vscode3.4.2、修改main.h3.5、调用驱动和蜂鸣器执行函数4、编译下载和验证4.1、修改Makefile文件4.2、编译下载原创 2021-07-21 19:54:16 · 1170 阅读 · 0 评论 -
ARM(IMX6U)BSP工程文件管理(分文件编程)
1、工程管理简介1.1、创建bsp、imx6ul、obj和project这四个文件夹1.2、文件分类2、实验程序编写2.1、创建 imx6ul.h 文件2.2、创建个.vscode文件修改includePath2.2.1、修改includePath2.3、编写led驱动文件2.3.1、 bsp_led.h2.3.2、 bsp_led.c2.4、编写时钟驱动代码2.4.1、bsp_clk.h2.4.2、bsp_clk.c2.5、编写延时驱动代码2.5.1、bsp_delay.h2原创 2021-07-21 19:15:55 · 379 阅读 · 0 评论 -
ARM(IMX6U)裸机官方SDK包使用
1、I.MX6ULL 官方 SDK 包简介2、实验程序的编写2.1、SDK文件的移植2.2、创建cc.h文件2.3、编写实验代码2.3.1、main.c2.3.2、start.s2.3.3、编写链接脚本2.3.4、编写Makefile3.编译下载原创 2021-07-21 17:21:02 · 1937 阅读 · 0 评论 -
ARM(IMX6U)裸机模仿STM32驱动开发实验(定义外设结构体)
1.模仿STM32寄存器的定义1.1、STM32寄存器定义简介1.2、I.MX6U寄存器定义1.编写外设结构体2.定义 IO 复用寄存器组的基地址3.定义访问指针2.硬件原理分析,和之前的硬件资源一样3.实验程序编写1.imx6ul.h2.main.c3.start.s4.编译下载验证1.编写链接脚本2.编写Makefile脚本3.编译下载原创 2021-07-21 16:15:25 · 570 阅读 · 0 评论 -
ARM(IMX6U)裸机C语言版本LED驱动实验(汇编进入处理器SVC模式、SP堆内存、跳转main函数、链接起始地址)
0.简介①、汇编文件②、C 语言文件1.汇编文件初始化C语言运行环境1.设置处理器进入 SVC 模式2.设置SP指针3.跳转到C语言4.汇编实现2.C 语言部分实验程序编写3.编译(编写 Makefile)4.烧写到SD卡并验证原创 2021-07-20 14:38:36 · 1300 阅读 · 0 评论 -
链接脚本的编写( 起始地址、text、data、__bss_start、__bss_end、dis反汇编验证)
链接脚本的简介以及简单编写在博文ARM(IMX6U)裸机C语言版本LED驱动实验中,我们在编译过程中使用Makefile 来链接代码,其中使用了如下语句:arm-linux-gnueabihf-ld -Ttext 0X87800000 -o ledc.elf $^上面语句中我们是通过“-Ttext”来指定链接地址是 0X87800000 的,这样的话所有的文件都会链接到以 0X87800000 为起始地址的区域。但是有时候我们很多文件需要链接到指定的区域,或者叫做段里面,比如在 Linux原创 2021-07-20 15:31:58 · 8257 阅读 · 3 评论 -
ARM(IMX6U)裸机之I.MX6ULL启动头文件详解(内部BOOT ROM、IVT + Boot data + DCD + led.bin)
1.BOOT ROM做的事情2.IVT 和 Boot Data 数据3.DCD数据原创 2021-07-20 11:17:19 · 3400 阅读 · 7 评论 -
ARM(IMX6U)裸机之 I.MX6ULL 启动方式详解
参考:Linux之ARM(IMX6U)裸机之I.MX6ULL启动方式详解作者:一只青木呀发布时间: 2020-08-09 16:32:07网址:https://blog.youkuaiyun.com/weixin_45309916/article/details/107891591目录1.硬件启动方式选择①.串行下载②.内部BOOT模式2.BOOT ROM的初始化内容3.选择启动设备1.硬件启动方式选择BOOT 的处理过程是发生在 I.MX6U 芯片上电以后,芯片会根据 BOOT_MODE[1:0]的.原创 2021-07-19 21:47:49 · 2403 阅读 · 1 评论 -
ARM(IMX6U)裸机汇编LED灯实验——驱动编写、编译链接起始地址、烧写bin文件到SD卡中并运行
1. I.MX6ULL的初始化①、使能时钟②、配置 GPIO_I003 PIN的复用为GPIO③、配置 IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03的电器属性④、配置GPIO功能,设置输入输出⑤、设置GPIO_DR寄存器的bit3,1表示输出高电平,0表示输出低电平整个汇编代码(.s文件)2. 编译驱动交叉编译器的准备代码编译1.把 .s 文件编译成 .o文件2.把 .o文件链接成.elf格式的可执行文件3.arm-linux-gnueabihf-objcopy原创 2021-07-19 16:01:42 · 1244 阅读 · 2 评论 -
ARM汇编原理与基础
目录前言1.GNU 汇编语法2.Cortex-A7 常用汇编指令2.1 处理器内部数据传输指令2.2 存储器访问指令2.3 压栈和出栈指令2.4 跳转指令2.5 算术运算指令2.6 逻辑运算指令前言我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一上电 SP 指针还没初始化,C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境,比如初始化 DDR、设置 SP指针等等,当汇编把 C 环境设置好了以后才可以运行 C 代码。所以原创 2021-07-19 10:17:47 · 1025 阅读 · 0 评论 -
Cortex-A7 MPCore 架构(九种运行模式对应九个内核寄存器组、内核寄存器组R0~R15,有特定的名字和功能)
目录0.ARM架构的历史简介1.Cortex-A7 MPCore 简介2.Cortex-A 处理器运行模型3.Cortex-A 寄存器组3.1通用寄存器3.1.1未备份寄存器3.1.2备份寄存器3.1.3程序计数器 R153.2程序状态寄存器0.ARM架构的历史简介摘自:「ARM 架构」是一种怎样的处理器架构? - 大狸的回答 - 知乎https://www.zhihu.com/question/325679399/answer/692728301打个比方,ARM一开始是一家盖房子的公司,后面这原创 2021-07-17 16:39:01 · 4379 阅读 · 1 评论 -
I.MX6U-ALPHA/Mini 开发板资源介绍
摘自:NXP I.MX6ULL芯片介绍以及资料的获取作者:一只青木呀发布时间:2020-09-26 10:54:26网址:https://blog.youkuaiyun.com/weixin_45309916/article/details/108808573目录I.MX6ULL芯片介绍以及官网资料的获取I.MX6ULL芯片介绍以及官网资料的获取I.MX6ULL芯片是NXP(恩智浦)官方的一款芯片。官方网址:https://www.nxp.com/注:ARM架构信息要去ARM官网查询,官网地址:h.原创 2021-07-16 14:53:55 · 4434 阅读 · 0 评论 -
Ubuntu下安装VS Code以及C/C++插件(PS工作目录的创建)
Visual Studio Code 安装1.官方下载2.选择安装的版本3.把安装包丢到Ubuntu里面去或者在Ubuntu的浏览器下载也可4.安装5.把安装好的VScode图标放到桌面6.双击打开C/C++插件大全1.进入插件商店,选择插件2.安装插件Source Insight是收费的,在很多场合不适合使用,而且Visual Studio Code功能更加的强大、免费,Source Insight bug还是不少的。另外,Visual Studio Code可以直接下载Ubuntu原创 2021-07-16 11:46:24 · 3717 阅读 · 3 评论 -
交叉编译链的安装
摘自:嵌入式 交叉编译链的安装作者:一只青木呀发布时间:2020-08-04 18:13:13网址:https://blog.youkuaiyun.com/weixin_45309916/article/details/107789879目录什么是交叉编译器交叉编译器的下载交叉编译器的安装1.把下载的文件放到Ubuntu中2.解压3.在 Ubuntu 中创建目录4.将解压后的文件拷贝到 /usr/local/arm 中5.把交叉编译工具添加进环境变量6.安装相关库7.检验是否安装成功什么是交叉编译器AR.原创 2021-07-16 10:46:39 · 3505 阅读 · 1 评论 -
Ubuntu开启NFS、SSH服务(驱动开发用到、电脑端登录ARM板用到)
摘自:Ubuntu下NFS服务的开启作者:一只青木呀发布时间:2020-08-04 14:06:58网址:https://blog.youkuaiyun.com/weixin_45309916/article/details/107784877目录NFS服务的开启1.安装NFS服务2.创建 linux 工作目录3.配置NFSUbuntu下SSH服务的开启NFS服务的开启1.安装NFS服务进行 Linux 驱动开发的时候需要 NFS 启动,因此要先安装并开启 Ubuntu 中的 NFS 服务,使用如下命.原创 2021-07-16 10:12:10 · 343 阅读 · 1 评论 -
FileZilla的下载与安装以及简单使用(Ubuntu和Windows之间互传文件需要下载——客户端)
摘自:FileZilla的下载与安装以及简单使用(有图解超简单)作者:一只青木呀发布时间: 2020-08-04 13:20:59网址:https://blog.youkuaiyun.com/weixin_45309916/article/details/107782070?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161918971316780255214474%2522%252C%2522scm%2522%253A%25222014071.原创 2021-04-24 10:03:40 · 9112 阅读 · 2 评论 -
Ubuntu开启FTP服务方法(Ubuntu和Windows之间互传文件需要开启——服务器端)
目录Ubuntu开启FTP服务步骤:Ubuntu开启FTP服务步骤:工作中Ubuntu和Windows之间互传文件,需要服务器端(Ubuntu)开启FTP服务,客户端(Windows)安装FileZilla。平时自己学习电脑安装虚拟机VMware的话只需安装VMware Tool就可以实现Ubuntu和Windows文件直接复制传输。Ubuntu 的终端窗口,然后执行如下命令来安装 FTP 服务:sudo apt-get install vsftpd等待软件自动安装,安装完成以后使用如下 V原创 2021-07-15 13:23:30 · 6457 阅读 · 2 评论 -
I.MX6ULL芯片介绍 —— 迅为
I.MX6ULL芯片介绍原创 2021-06-14 18:07:05 · 1093 阅读 · 1 评论 -
ARM体系结构简介 —— 迅为
单片机和ARM处理器内存管理单元(MMU)高速缓冲存储器(CACHE)指令集ARM的指令系统ARM处理器工作模式ARM处理器的内部寄存器ARM处理器的异常ARM中断向量ARM架构的发展原创 2021-06-14 18:06:24 · 305 阅读 · 0 评论