Linux
文章平均质量分 94
Linux学习笔记
H2Z20Str
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux学习笔记18---串口格式化函数移植实验
上一章实验我们实现了 UART1基本的数据收发功能,虽然可以用来调试程序,但是功能太单一了,只能输出字符。如果需要输出数字的时候就需要我们自己先将数字转换为字符,非常的不方便。学习 STM32串口的时候我们都会将printf函数映射到串口上,这样就可以使用printf 函数来完成格式化输出了,使用非常方便。本章我们就来学习如何将printf这样的格式化函数移植到 I.MX6U-ALPHA开发板上。原创 2025-02-13 10:15:45 · 1150 阅读 · 0 评论 -
Linux学习笔记19---DDR3 实验
因此只要做好硬件,可以在不需要修改硬件 PCB 的前提下,随意的更换不同容量、不同品牌的 DDR3L 芯片,极大的方便了我们的芯片选型。因此就有行地址和列地址之分,行地址和列地址共同复用同一组地址线,要访问某一个地址区域,必须要发送行地址和列地址,指定要访问哪一行?就讲解到这里,因为牵扯到的寄存器太多了,因此没有详细的去分析这些寄存器,大家感兴趣的可以对照着参考手册去分析各个寄存器的含义以及配置值。只 是写起来比较麻烦,要先进行擦除,然后再发送要写的地址或扇区,最后才是要写入的数据,学习过 STM32。原创 2025-02-13 10:15:30 · 1665 阅读 · 0 评论 -
Linux学习笔记17---UART 串口通信实验
不管是单片机开发还是嵌入式 Linux开发,串口都是最常用到的外设。可以通过串口将开发板与电脑相连,然后在电脑上通过串口调试助手来调试程序。还有很多的模块,比如蓝牙、 GPS、GPRS等都使用的串口来与主控进行通信的,在嵌入式Linux中一般使用串口作为控制台,所以掌握串口是必备的技能。本章我们就来学习如何驱动 I.MX6U上的串口,并使用串口和电脑进行通信。原创 2025-02-07 17:58:14 · 1370 阅读 · 0 评论 -
Linux学习笔记16---高精度延时实验
学过 STM32的同学应该知道,在使用STM32的时候可以使用SYSTICK来实现高精度延时。I.MX6U没有SYSTICK定时器,但是I.MX6U有其他定时器啊,比如第十五章讲解的EPIT定时器。本章我们使用 I.MX6U的GPT定时器来实现高精度延时,顺便学习一下GPT定时器, GPT 定时器全称为。GPT 定时器是一个32位向上定时器也就是从0X00000000开始向上递增计数GPT。原创 2025-02-06 18:11:48 · 1178 阅读 · 0 评论 -
Linux学习笔记15---定时器按键消抖实验
按键消抖的原理在第十一章已经详细的讲解了,其实就是在按键按下以后延时一段时间再去读取按键值,如果此时按键值还有效那就表示这是一次有效的按键,中间的延时就是消抖的。但是这有一个缺点,就是延时函数会浪费 CPU性能,因为延时函数就是空跑。如果按键是用中断方式实现的,那就更不能在中断服务函数里面使用延时函数,因为中断服务函数最基本的要求就是快进快出!上一章我们学习了 EPIT定时器,定时器设置好定时时间,然后CPU就可以做其他事情去了,定时时间到了以后就会触发中断,然后在中断中做相应的处理即可。原创 2025-02-06 16:06:15 · 1161 阅读 · 0 评论 -
Linux学习笔记14---EPIT 定时器实验
EPIT的全称是:,直译过来就是增强的周期中断定时器,它主要是完成周期性中断定时的。学过 STM32的话应该知道,STM32里面的定时器还有很多其它的功能,比如输入捕获、PWM输出等等。但是I.MX6U的EPIT定时器只是完成周期性中断定时的,仅此一项功能!至于输入捕获、PWM输出等这些功能,I.MX6U由其它的外设来完成。EPIT是一个32位定时器,在处理器几乎不用介入的情况下提供精准的定时中断,软件使能以后 EPIT就会开始运行,EPIT定时器有如下特点:原创 2024-10-23 15:04:22 · 1292 阅读 · 0 评论 -
Linux学习笔记13---GPIO 中断实验
中断系统是一个处理器重要的组成部分,中断系统极大的提高了CPU 的执行效率,本章会将I.MX6U的一个IO作为输入中断,借此来讲解如何对 I.MX6U的中断系统进行编程。原创 2024-09-23 18:07:50 · 1570 阅读 · 0 评论 -
Linux学习笔记12---主频和时钟配置实验
I.MX6U 的所有外设时钟源都是从这7路PLL和有些PLL的 PFD 而来的,这些外设究竟是如何选择PLL或者PFD的?这个就要借助《IMX6ULL参考手 册》里面的时钟树了,在“Chapter 18 Clock Controller Module (CCM)”的18.3小节给出了I.MX6U 详细的时钟树图,如图所示:在图中一共有三部分:和SYSTEM CLOCKS。其中左边的就是我们上一小节讲解的那7路PLL和 8 路PFD,右边的。原创 2024-09-06 17:10:24 · 1454 阅读 · 0 评论 -
Linux学习笔记11---按键输入
I.MX6U 的 IO 不仅能作为输出,而且也可以作为输入。I.MX6U-ALPHA 开发板上有一个按键,按键连接了一个 IO,将这个 IO 配置为输入功能,读取这个 IO 的值即可获取按键的状态(按下或松开)。本章通过这个按键来控制蜂鸣器的开关。原创 2024-08-30 11:24:18 · 888 阅读 · 0 评论 -
Linux学习笔记10---蜂鸣器
beep.c 文件一共有两个函数:beep_init 和 beep_switch,其中 beep_init 用来初始化 BEEP 所使用的 GPIO,也就是 SNVS_TAMPER1,将其复用为 GPIO5_IO01,和上一章的 LED 灯初始化函数一样。前几章试验中的驱动 LED 灯亮灭属于 GPIO 的输出控制,本章再巩固一下 I.MX6U 的 GPIO输出控制,在 I.MX6U-ALPHA 开发板上有一个有源蜂鸣器,通过 IO 输出高低电平即可控制蜂鸣器的开关,本质上也属于 GPIO 的输出控制。原创 2024-08-07 20:23:21 · 1087 阅读 · 0 评论 -
Linux学习笔记9---BSP 工程管理实验
一个工程的功能越多,所需要的功能文件就越多,那么文档就会更大,显得很混乱,所以我们需要对这个工程进行整理,将源码文件分模块、分功能整理。原创 2024-05-13 11:51:22 · 1664 阅读 · 0 评论 -
Linux学习笔记8---官方 SDK 移植实验
在上一章中,我们参考 ST 官方给 STM32 编写的 stm32f10x.h 来自行编写 I.MX6U 的寄存器定义文件。自己编写这些寄存器定义不仅费时费力,没有任何意义,而且很容易写错,幸好NXP 官方为 I.MX6ULL 编写了 SDK 包,在 SDK 包里面 NXP 已经编写好了寄存器定义文件,所以我们可以直接移植 SDK 包里面的文件来用。虽然 NXP 是为 I.MX6ULL 编写的 SDK 包,但是 I.MX6UL 也是可以使用的!原创 2024-05-11 15:54:31 · 1225 阅读 · 0 评论 -
Linux学习笔记7---仿STM32自建寄存器库
根据结构体 GPIO_Type的定义,其第一个成员变量为DR,也就是 DR寄存器,I.MX6U 一共有通过上面三步我们就可以通过“GPIO1->DR”来访问 GPIO1的DR寄存器了。同样的,其他的外设寄存器都可以通过这三步来定义。原创 2024-05-11 15:53:55 · 1082 阅读 · 0 评论 -
Linux学习笔记6---C语言编写LED灯程序
在编写C语言程序之前,需要用汇编语言编译一个启动程序,将我们的程序跳转到main函数执行。原创 2024-05-10 10:10:13 · 1295 阅读 · 0 评论 -
Linux学习笔记5---WSL2编译裸机程序并烧录至SD卡
此时,生成了.imx (可在Linux下用dd命令烧录), img (可在windows下用Win32DiskImager烧录SD卡)。load.img的内容是在load.imx基础上偏移了1K 字节,这样可以直接烧录到SD卡。正点原子的imxdownload由于包含了烧录的功能,但在WLS上无法识别SD卡,因此无法使用,所以可以将imxdownload的烧录功能都取消,让程序生成一个可烧录的镜像文件即可。那程序不就不能烧录到SD卡上了?写入成功后将SD卡插回开发板上,选择SD卡启动,程序成功运行。原创 2024-05-10 10:09:34 · 1339 阅读 · 2 评论 -
Linux学习笔记4---点亮LED灯(汇编裸机)
本系统学习利用的是正点原子的阿尔法mini开发板,本系列的学习笔记也是按照正点原子的教程进行学习,但并不是利用虚拟机进行开发,而是使用Windows下的子系统WSL进行学习。因为 Cortex-A 芯片一上电 SP 指针还没初始化,C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境,比如初始化 DDR、设置 SP指针等等,当汇编把 C 环境设置好了以后才可以运行 C 代码。所以 Cortex-A 一开始肯定是汇编代码。原创 2024-05-09 17:43:52 · 1699 阅读 · 0 评论 -
Linux学习笔记3---WSL2交叉编译
ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,在上一章里面已经讲解了如何在 Liux 进行 C 语言开发,里面使用 GCC 编译器进行代码编译,但使用的 gcc 编译器是针对 X86 架构的!交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。交叉编译器有很多种,我们使用 Linaro 出品的交叉编译器,Linaro 是一间非营利性质的开。原创 2024-05-09 17:43:18 · 1043 阅读 · 0 评论 -
Linux学习笔记2---Makefile
一个工程中的源文件不计其数,按期类型、功能、模块分别放在若干个文件中,MakeFile文件定义了一系列的规则来制定哪些文件需先要编译、哪些文案需要后编译、哪些文件需要重新编译、甚至于进行更加复杂的操作,因为Makefile文件就像是一个shell脚本一样,也可以执行操作系统的命令。原创 2024-05-08 08:55:17 · 1397 阅读 · 0 评论 -
Linux学习笔记1---Windows上运行Linux
在正点原子的教程中学习linux需要安装虚拟机或者在电脑上安装一个Ubuntu系统,但个人觉得太麻烦了,现在linux之父加入了微软,因此在Windows上也可以运行linux 了。原创 2024-05-08 08:54:52 · 3172 阅读 · 0 评论
分享