![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
imx6ull裸机开发大全
文章平均质量分 90
韦东山
深圳百问网科技有限公司技术总监,毕业于中国科学技术大学电子、软件专业双学位,10余年嵌入式一线开发经验, 畅销书<<嵌入式Linux应用开发完全手册>>作者, 擅长ARM/MIPS等架构的Linux底层系统开发, 曾为多家知名培训机构特邀讲师,2011年陆续录制的工程师必看教程------韦东山系列Linux/Android视频,有口皆碑。累计学员10万+,当之无愧成为嵌入式培训领域的佼佼者。
展开
-
3_IMX6ULL启动流程
第三章 IMX6ULL启动流程3.1 IMX6ULL启动方式3.1.1 芯片手册讲解 IMX6ULL芯片内部有一个boot ROM,上电后boot ROM上的程序就会运行。它会根据BOOT_MODE[1:0]的值,以及eFUSE或GPIO的值决定后续的启动流程。 注:eFUSE即熔丝,只能烧写一次,一般正式发布产品时烧写最终值;平时调试时通过GPIO来设置开发板的启动方式。 boot ROM上的程序功能强大,可以从USB口或串口下载程序并把它烧写到Flash等设备上,也可以从SD卡或E原创 2022-01-13 16:41:04 · 6497 阅读 · 3 评论 -
18_SPI编程
第十八章 SPI编程(有误)18.1 SPI接口简介 SPI(Serial Peripheral Interface)接口是全双工的同步串行通讯总线,支持通过多个不同的片选信号来连接多个外设。SPI接口通常由四根线组成,分别是提供时钟的SCLK,提供数据输出的MOSI,提供数据输入的MISO和提供片选信号的CS。同一时刻只能有一个SPI设备处于工作状态。为了适配不同的外设 ,SPI支持通过寄存器来配置片选信号和时钟信号的极性和相位。(imx6ull支持ecspi,即增强配置型spi,这里为了与其他兼容原创 2022-01-13 16:05:49 · 7754 阅读 · 1 评论 -
16_IIC编程
第十六章 I2C编程 I2C(Inter-Integrated Circuit BUS)是I2C BUS简称,中文为集成电路总线,是目前应用最广泛的总线之一,和IMX6ULL有些相关的是,刚好该总线是NXP前身的PHILIPS设计。当前仍然是应用最广泛的总线协议之一。16.1 I2C协议16.1.1 概述 I2C是一种串行通信总线,使用多主从架构,最初设计师为了让主板、嵌入式系统或手机用以连接低速周边设备而发展而来。在小数据量场合使用,有传输距离短,任意时刻只能有一原创 2022-01-13 16:05:36 · 3397 阅读 · 0 评论 -
15_LCD编程
第十五章 LCD编程15.1 LCD硬件原理15.2.1 LCD硬件工作原理简介 [外链图片转存中…(img-lRChXkF3-1642060379771)] 假设上图是一个LCD屏幕,屏幕中一个一个密密麻麻的黑点称之为像素点,每一行有若干个点,试想下有一个电子枪,电子枪位于某一个像素点的背后,然后向这个像素发射红,绿,蓝三种原色,这三种颜色不同比例的组合成任意一种颜色。电子枪在像素点的背后,一边移动一边发出各种颜色的光原创 2022-01-13 16:05:16 · 5767 阅读 · 0 评论 -
14_TF编程
第十四章 TF卡编程14.1 背景知识 多媒体存储卡(英语:Multimedia Card),又译MMC卡,是一种快闪记忆卡标准。在1997年由西门子及闪迪共同开发,技术基于东芝的NAND快闪记忆技术,因此较早期基于Intel NOR快闪记忆技术的存储卡(例如CF卡)更细小。MMC卡大小与一张邮票差不多,约24mm x 32mm x 1.5mm。MMC卡原本使用1bit串联接口,但较新的标准则容许同时发送4 bit或8 bits的数据。近年MMC卡技术已差不多完全被SD卡所代替;但由于M原创 2022-01-13 16:05:03 · 3163 阅读 · 0 评论 -
13_EMMC编程
第十三章 EMMC编程(有误) 参考资料https://linux.codingbelief.com/zh/storage/flash_memory/emmc/ 资料光盘: 00_UserManual\参考资料\EMMC编程\JESD84-B50-1eMMCStandard.pdf1.1 EMMC介绍1.1.1 EMMC简介 eMMC (Embedded Multi Media Card)是MMC协会订立的嵌入式存储器标准规格,主要针对手机、数码原创 2022-01-13 16:04:40 · 4388 阅读 · 2 评论 -
12_定时器
第十二章 定时器编程 参考资料:芯片手册《Chapter30 : General Purpose Timer (GPT)》。芯片手册《Chapter24 : Enhanced Periodic Interrupt Timer (EPIT)》。12.1 GPT定时器介绍 GPT具有32位递增计数器。可以将外部引脚上的事件通过定时器计数器捕获到寄存器中。触发事件可以为上升沿或下降沿。当定时器达到设定的值时,GPT还可以在输出引脚上产生事件,并产生中断。GPT具有12原创 2022-01-13 16:04:27 · 1522 阅读 · 0 评论 -
11_GPIO中断
第十一章 GPIO中断1.1 GPIO中断介绍(通用的概念) 假设你现在正在写作业,突然电话响起,你需要停下写作业接电话,挂电话后继续写作业。突然由人按门铃,你需要先去开门,然后继续回来写作业。电话和门铃打断了写作业,能中断写作业的事情有很多,比如身体不舒服,口渴等。被打断后怎么做?身体不舒服就停下写作业休息一会,身体好了继续写作业。口渴就停下写作业喝水,喝完水继续写作业。如果你正在接一个很重要的电话,突然门铃响了,这是会优先处理其中一件事,比如先让按门铃的人等一下,挂电话后再去开门,原创 2022-01-13 16:04:14 · 9494 阅读 · 0 评论 -
10_异常与中断
第十章 异常与中断参考资料:ARM® Cortex™-A Series Programmer’s Guide version4.0ARM® Architecture Reference Manual ARMv7-A and ARMv7-R editionCortex™-A7 MPCore™Technical Reference Manual Revision: r0p5ARM® Generic Interrupt Controller Architecture Specification Arc原创 2022-01-13 16:03:50 · 1969 阅读 · 0 评论 -
9_重定位
第九章 重定位9.1 段的概念 段是程序的组成元素。将整个程序分成一个一个段,并且给每个段起一个名字,然后在链接时就可以用这个名字来指示这些段,使得这些段排布在合适的位置。 程序的段包括代码段(.text):存放代码指令只读数据段(.rodata):存放有初始值并且const修饰的全局类变量(全局变量或static修饰的局部变量)数据段(.data):存放有初始值的全局类变量零初始化段(.bss):存放没有初始值或初始值为0的全局类变量注释段(.commen原创 2022-01-13 16:03:20 · 1621 阅读 · 0 评论 -
8_UART串口编程
第八章 UART串口编程8.1 UART介绍8.1.1 UART串口简介 UART全称是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。串口顾名思义数据串行接口,即数据的传输是一位接一位传输,属于一种串行的数据总线,属于异步通讯,同时支持全双工数据传输(全双工数据传输:允许发送数据和接收数据在同一时刻发生) 。 除了UART,另外还有一种叫USART,全称是通用同步/异步串行接收/发送器(Universal原创 2022-01-13 16:02:59 · 6639 阅读 · 3 评论 -
7_时钟体系
第七章 时钟体系 时钟信号是数字时序电路的“脉搏”,电路每接收到一个周期的时钟信号,就做一个相应的动作。因此,在允许的范围内,时钟信号的快慢直接决定着电路性能的好坏。在片上系统(SOC)中,不同的模块通常需要工作在不同的时钟频率。为了满足这些需求,芯片将时钟源信号进行稳定、倍频、分频、分发以及屏蔽(gate)等操作,产生不同频率的时钟信号。这些时钟信号和它们的管理电路构成了芯片的时钟体系,驱动着各种各样的功能模块协同工作。6.1 IMX6ULL时钟体系介绍6.1.1 晶体振荡电路原创 2022-01-13 16:02:46 · 3789 阅读 · 0 评论 -
6_Makefile与GCC
第六章 Makefile与GCC6.1 交叉编译器6.1.1 什么是交叉编译 简单地说,我们在PC机上编译程序时,这些程序是在PC机上运行的。我们想让一个程序在ARM板子上运行,怎么办? ARM板性能越来越强,可以认为ARM板就相当于一台PC,当然可以在ARM板上安装开发工具,比如安装ARM版本的GCC,这样就可以在ARM板上编译程序,在ARM板上直接运行这个程序。 但是,有些ARM板性能弱,或者即使它的性能很强也强不过PC机,所以更多时候我们是在P原创 2022-01-13 16:02:34 · 1508 阅读 · 1 评论 -
5_LED程序涉及的编程知识
第五章 LED程序涉及的编程知识5.1 ARM架构的简单介绍 目前IMX6UL是使用Cortex-A7架构,本小节简单介绍一下Cortex-A7架构的基础知识,比如运行模式、寄存器组等。 参考资料:文件原名DEN0013D_cortex_a_series_PG.pdf文档全名ARM® Cortex™-A Series Version: 4.0 Programmer’s Guide.pdf文档所在目录: 资料光盘 00_UserManual\参考资料\Arm架构参考资料\ARMv7编程手原创 2022-01-13 16:02:20 · 1568 阅读 · 0 评论 -
4_LED程序
第四章 LED程序4.1 硬件知识_LED原理图 当我们学习C语言的时候,我们会写个Hello程序。 那当我们写ARM程序,也该有一个简单的程序引领我们入门,这个程序就是点亮LED。 我们怎样去点亮一个LED呢? 分为三步: ① 看原理图,确定控制LED的引脚; ② 看主芯片的芯片手册,确定如何设置控制这个引脚; ③ 写程序; LED样子有很多种,像插脚的,贴片的。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1bXLjEt原创 2022-01-13 16:01:52 · 3165 阅读 · 0 评论 -
2_准备开发环境
第二章 准备开发环境2.1 100ASK_IMX6ULL开发板接线与启动 在后面的操作里,都是通过串口与板子进行”交流”。串口是串行接口的简称,是指数据一位一位地顺序传送,其特点是通信线路简单。 在电脑上安装好MobaXterm后,使micro USB数据线,连接电脑和开发板上的6号接口(USB转串口)。连接串口线和电源线 首先如下图所示将串口线与电脑、板子连接,开发板插上电源。 其中特别需要注意的几点: a) 板子的启动选择拨到正确的启动方式,保证该启动方式里面有系原创 2022-01-13 16:01:16 · 832 阅读 · 0 评论 -
1_imx6ull_pro_板载资源
第一章 板上资源开发板资源如图所示:原创 2022-01-13 15:58:59 · 673 阅读 · 0 评论