![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
I.MX6ULL Linux开发板
文章平均质量分 90
I.MX6ULL Linux开发板从入门到精通
redhat_yan
.
展开
-
嵌入式之存储基本知识
嵌入式之存储基本知识。原创 2024-06-06 10:40:06 · 590 阅读 · 0 评论 -
I.MX6ULL 串口格式化函数移植实验
上一节实验实现了 UART1 基本的数据收发功能,虽然可以用来调试程序,但是功能太单一了,只能输出字符。如果需要输出数字的时候就需要我们自己先将数字转换为字符,非常的不方便。学习 STM32 串口的时候我们都会将 printf 函数映射到串口上,这样就可以使用printf 函数来完成格式化输出了,使用非常方便。本章我们就来学习如何将 printf 这样的格式化函数移植到 I.MX6U-ALPHA 开发板上。原创 2024-06-05 20:45:03 · 1028 阅读 · 0 评论 -
I.MX6ULL UART 串口通信实验
不管是单片机开发还是嵌入式 Linux 开发,串口都是最常用到的外设。可以通过串口将开发板与电脑相连,然后在电脑上通过串口调试助手来调试程序。还有很多的模块,比如蓝牙、GPS、GPRS 等都使用的串口来与主控进行通信的,在嵌入式 Linux 中一般使用串口作为控制台,所以掌握串口是必备的技能。本节学习如何驱动 I.MX6U 上的串口,并使用串口和电脑进行通信。1、UART 通信格式串口全称叫做串行接口,通常也叫做 COM 接口,串行接口指的是数据一个一个的顺序传输,通信线路简单。原创 2024-06-05 18:12:39 · 872 阅读 · 0 评论 -
I.MX6ULL高精度延时实验
延时函数是很常用的 API 函数,之前的实验中我们使用循环来实现延时函数,但是使用循环来实现的延时函数不准确,误差会很大。虽然使用到延时函数的地方精度要求都不会很严格(要求严格的话就使用硬件定时器了),但是延时函数肯定是越精确越好,这样延时函数就可以使用在某些对时序要求严格的场合。本节我们就来学习一下如何使用硬件定时器来实现高精度延时。在使用 STM32 的时候可以使用 SYSTICK 来实现高精度延时。I.MX6U 没有 SYSTICK 定时器,但是 I.MX6U 有其他定时器,比如EPIT定时器。原创 2024-06-05 16:53:25 · 1143 阅读 · 0 评论 -
I.MX6ULL 定时器按键消抖实验
在之前的实验中都用到了按键,用到按键就要处理因为机械结构带来的按键抖动问题,也就是按键消抖。前面的实验中都是直接使用了延时函数来实现消抖,因为简单,但是直接用延时函数来实现消抖会浪费 CPU 性能,因为在延时函数里面 CPU 什么都做不了。如果按键使用中断的话更不能在中断里面使用延时函数,因为中断服务函数要快进快出!本节将使用定时器来实现按键消抖,使用定时器既可以实现按键消抖,而且也不会浪费CPU 性能,这个也是 Linux 驱动里面按键消抖的做法。按键消抖的原理在该文章讲解了。原创 2024-05-30 19:59:46 · 976 阅读 · 1 评论 -
I.MX6ULL EPIT 定时器实验
定时器是最常用的外设,常常需要使用定时器来完成精准的定时功能,I.MX6U 提供了多种硬件定时器,有些定时器功能非常强大。本节我们从最基本的 EPIT 定时器开始,学习如何配置 EPIT 定时器,使其按照给定的时间,周期性的产生定时器中断,在定时器中断里面我们可以做其它的处理,比如翻转 LED 灯EPIT 的全称是:Enhanced Periodic Interrupt Timer,直译过来就是增强的周期中断定时器,它主要是完成周期性中断定时的。原创 2024-05-30 19:35:57 · 1090 阅读 · 0 评论 -
I.MX6ULL GPIO 中断实验
中断系统是一个处理器重要的组成部分,中断系统极大的提高了 CPU 的执行效率,在学习STM32 的时候就经常用到中断。通过与 STM32 的对比来学习一下 Cortex-A7(I.MX6U)中断系统和 Cortex-M(STM32)中断系统的异同,同时,将 I.MX6U 的一个 IO 作为输入中断,来对 I.MX6U 的中断系统进行编程。跟 STM32 一样,Cortex-A7 也有中断向量表,中断向量表也是在代码的最前面。原创 2024-05-30 10:47:29 · 804 阅读 · 0 评论 -
I.MX6ULL主频和时钟配置实验
在之前实验中我们都没有涉及到 I.MX6U 的时钟和主频配置操作,全部使用的默认配置,默认配置下 I.MX6U 工作频率为 396MHz。但是 I.MX6U 系列标准的工作频率为528MHz,有些型号甚至可以工作到 696MHz。本节学习 I.MX6U 的时钟系统,学习如何配置 I.MX6U 的系统时钟和其他的外设时钟,使其工作频率为 528MHz,其他的外设时钟源都工作在 NXP 推荐的频率。原创 2024-05-28 18:31:11 · 954 阅读 · 0 评论 -
嵌入式之译码器
译码器(Decoder)是一种数字电路,其主要功能是从输入的编码信号中解码出特定的信息或控制信号。译码器通常接收一组二进制输入,并根据这些输入产生多个输出信号,每个输出对应输入代码的一种可能解释或表示。根据输入和输出的数量,译码器可以分为多种类型,如二进制译码器、三态译码器、七段译码器等。原创 2024-05-27 20:29:20 · 327 阅读 · 0 评论 -
C语言之枚举
枚举的值要递增在这个例子中,Color是一个枚举类型,它包含了三个成员:Red、Green和Blue。默认情况下,Red的值为0,Green的值为1,Blue的值为2。原创 2024-05-27 20:22:45 · 470 阅读 · 0 评论 -
I.MX6ULL的蜂鸣器实验-GPIO输入实验
I.MX6ULL的 IO 不仅能作为输出,而且也可以作为输入。I.MX6U-ALPHA 开发板上有一个按键,按键连接了一个 IO,将这个 IO 配置为输入功能,读取这个 IO 的值即可获取按键的状态(按下或松开)。通过这个按键来控制蜂鸣器的开关,将 I.MX6UL 的 IO 作为输入来使用。按键就两个状态:按下或弹起,将按键连接到一个 IO 上,通过读取这个 IO 的值就知道按键是按下的还是弹起的。至于按键按下的时候是高电平还是低电平要根据实际电路来判断。原创 2024-05-27 20:13:49 · 620 阅读 · 0 评论 -
驱动开发中引入私有数据的原因
驱动开发中引入私有数据的原因。原创 2024-05-27 16:45:59 · 531 阅读 · 0 评论 -
I.MX6ULL的蜂鸣器实验-GPIO输出实验
在 I.MX6U-ALPHA 开发板上有一个有源蜂鸣器,通过 IO 输出高低电平即可控制蜂鸣器的开关,本质上也属于 GPIO 的输出控制。蜂鸣器常用于计算机、打印机、报警器、电子玩具等电子产品中,常用的蜂鸣器有两种:有源蜂鸣器和无源蜂鸣器,这里的有“源”不是电源,而是震荡源,有源蜂鸣器内部带有震荡源,所以有源蜂鸣器只要通电就会叫。无源蜂鸣器内部不带震荡源,直接用直流电是驱动不起来的,需要 2K-5K 的方波去驱动。原创 2024-05-27 16:39:54 · 1507 阅读 · 0 评论 -
I.MX6ULL的BSP工程管理实验
如果将所有的源码文件放到工程的根目录下,工程文件比较少的话可以这样做,但是如果工程源文件达到几十、甚至数百个的时候,这样全部放到根目录下就会使工程显得混乱不堪。所以我们必须对工程文件做管理,将不同功能的源码文件放到不同的目录中。另外我们也需要将源码文件中,所有完成同一个功能的代码提取出来放到一个单独的文件中,也就是对程序分功能管理。BSP工程管理实验就是对一个工程进行整理,使其美观、功能模块清晰、易于阅读。原创 2024-05-23 10:38:28 · 933 阅读 · 0 评论 -
I.MX6ULL的官方 SDK 移植实验
在I.MX6ULL模仿 STM32 驱动开发格式实验,我们参考 ST 官方给 STM32 编写的 stm32f10x.h 来自行编写 I.MX6ULL的寄存器定义文件。自己编写这些寄存器定义不仅费时费力,没有任何意义,而且很容易写错,**NXP 官方为 I.MX6ULL 编写了 SDK 包,在 SDK 包里面 NXP 已经编写好了寄存器定义文件,所以我们可以直接移植 SDK 包里面的文件来用。**虽然 NXP 是为 I.MX6ULL 编写的 SDK 包,但是 I.MX6UL 也是可以使用的!原创 2024-05-22 17:00:10 · 969 阅读 · 0 评论 -
I.MX6ULL模仿 STM32 驱动开发格式实验
使用 C 语言编写 LED 灯驱动的时候,每个寄存器的地址我们都需要写宏定义,使用起来非常的不方便。我们在学习 STM32 的时候,可以使用“GPIOB->ODR”这种方式来给GPIOB 的寄存器 ODR 赋值,因为在 STM32 中同属于一个外设的所有寄存器地址基本是相邻的(有些会有保留寄存器)。原创 2024-05-22 16:03:48 · 1222 阅读 · 0 评论 -
I.MX6ULL的IO复用GPIO步骤
I.MX6ULL的IO复用GPIO步骤。原创 2024-05-21 20:31:03 · 1578 阅读 · 0 评论 -
I.MX6ULL Linux 点灯实验理论及汇编点灯
I.MX6ULL Linux C语言开发。原创 2024-05-21 20:23:32 · 1021 阅读 · 0 评论 -
在ARM开发板上,栈大小设置为2MB(常用设置)里面存放的数据
在ARM开发板上,栈大小设置为2MB(常用设置)里面存放的数据。原创 2024-05-20 15:58:30 · 432 阅读 · 0 评论 -
I.MX6ULL Linux C语言开发环境搭建(点灯实验)
汇编语言编写 LED 灯实验,但是实际开发过程中汇编用的很少,大部分都是 C 语言开发。汇编只是用来完成 C 语言环境的初始化(比如初始化 DDR、设置堆栈指针 SP 等等)。用汇编来完成 C 语言环境的初始化工作,然后从汇编跳转到 C 语言代码里面去,一般都是进入 main 函数。所以我们有两部分文件要做:①、汇编文件汇编文件只是用来完成 C 语言环境搭建。②、C 语言文件C 语言文件就是完成我们的业务层代码的,其实就是我们实际例程要完成的功能。原创 2024-05-20 11:53:17 · 811 阅读 · 0 评论 -
I.MX6ULL Linux开发板镜像烧写
我们编译出来的.bin 文件不能直接烧写到 SD 卡中,需要在.bin 文件前面加上 IVT、Boot Data 和 DCD 这三个数据块。这三个数据块是有指定格式的,我们必须按照格式填写,然后将其放到.bin 文件前面,最终合成的才是可以直接烧写到 SD 卡中的文件。END。原创 2024-05-16 17:10:10 · 1088 阅读 · 0 评论 -
嵌入式硬软件基础知识
GPIO广泛应用于控制外部设备、信号传感或简单数据传输等场景,其功能灵活性高,能够满足各种各样的应用需求。在很多单片机或SoC中,GPIO的数量和配置灵活性是评估芯片适用性的重要指标之一。在一些SoC设计中,如i.MX系列等,IOMUXC(IO Multiplexing Controller)用来控制和配置这些不同域的IO,允许用户通过软件配置将引脚功能映射到不同的信号上,比如从通用IO重配置为SNVS相关的功能,或者反之,这极大提升了系统的灵活性和可编程性。原创 2024-05-16 14:40:21 · 977 阅读 · 0 评论 -
I.MX6ULL Linux开发板环境搭建
I.MX6ULL Linux开发板环境搭建。原创 2024-01-24 16:59:17 · 1390 阅读 · 0 评论 -
MfgTool烧写工具
1、mfgtool是NXP官方做的向I.MX系列烧写系统的软件,运行在windows下。可以烧写uboot.imx、zImage、dtb,rootfs。通过USB烧写。Mfgtool里面默认存放了NXP官方开发板的系统文件,2、基本原理向开发板烧系统分两部分:1、先向开发板的DDR下载一个Linux系统,2、通过前面下载到DDR中的Linux系统完成最终的烧写工作。原创 2024-01-22 18:23:19 · 1108 阅读 · 0 评论