- 博客(72)
- 资源 (4)
- 收藏
- 关注

原创 u-boot启动流程分析-史上最全最详细
本章主要是详细的分析一下uboot的启动流程,理清uboot是如何启动的。通过对uboot启动流程的梳理,我们就可以掌握一些外设是在哪里被初始化的,这样当我们需要修改这些外设驱动的时候就会心里有数。另外,通过分析uboot的启动流程可以了解Linux内核是如何被启动的。
2023-06-01 07:57:20
3398
原创 Linux驱动之INPUT设备驱动
每日一个简单的驱动,日久方长,对Linux驱动就越来越熟悉,也越来容易学会写驱动程序。今日进行第八个 INPUT子系统设备驱动。
2023-09-18 07:50:58
822
原创 Linux驱动之INPUT子系统框架
每日一个简单的驱动,日久方长,对Linux驱动就越来越熟悉,也越来容易学会写驱动程序。今日进行Linux INPUT子系统框架介绍。
2023-09-18 07:50:38
594
原创 Linux驱动之MISC设备驱动
每日一个简单的驱动,日久方长,对Linux驱动就越来越熟悉,也越来容易学会写驱动程序。今日进行第七个Linux MISC 设备驱动。
2023-09-04 07:50:26
1812
原创 Linux驱动之Linux自带的LED灯驱动
每日一个简单的驱动,日久方长,对Linux驱动就越来越熟悉,也越来容易学会写驱动程序。今日进行第六个Linux自带的led设备驱动。
2023-09-03 13:11:36
1656
原创 Linux驱动之设备树下的platform驱动
每日一个简单的驱动,日久方长,对Linux驱动就越来越熟悉,也越来容易学会写驱动程序。今日进行第五个设备树下platform设备驱动。
2023-08-28 08:00:52
606
原创 Linux驱动之platform设备驱动
每日一个简单的驱动,日久方长,对Linux驱动就越来越熟悉,也越来容易学会写驱动程序。今日进行第四个简单的platform设备驱动。
2023-08-27 16:36:14
673
原创 Linux驱动之设备树添加按键驱动
每日一个简单的驱动,日久方长,对Linux驱动就越来越熟悉,也越来容易学会写驱动程序。今日进行第三个简单的按键驱动。
2023-08-16 08:01:30
970
原创 Linux驱动之设备树添加蜂鸣器驱动
本节我们来看一下如果在 Linux 下编写蜂鸣器驱动需要做哪些工作:①、在设备树中添加 SNVS_TAMPER1 引脚的 pinctrl 信息。②、在设备树中创建蜂鸣器节点,在蜂鸣器节点中加入 GPIO 信息。
2023-08-10 08:00:13
751
原创 Linux驱动之设备树添加LED驱动
本章我们就开始第一个基于设备树的 Linux 驱动实验,还是点LED灯。本章重点考察如下知识:①、在 imx6ul-14x14-evk.dtsi 文件中创建相应的设备节点。②、编写驱动程序,获取设备树中的相关属性值。③、使用获取到的有关属性值来初始化 LED 所使用的 GPIO。
2023-08-01 07:56:37
787
原创 Linux项目不可或缺的服务器:FTP服务器移植于搭建
是一个在 UNIX 类操作系统上运行的服务器名字,全称是“”,是一个完全免费、开源的服务器软件,在 linux 发行版中非常流行。支持很多其他传统的服务器不支持的良好特性。使用 vsftpd 可以在 Linux/Unix 系统上搭建一个安全、高性能、稳定性好的轻量级FTP服务器。
2023-07-20 23:08:59
2217
2
原创 Linux驱动之从点LED灯开始
本章我们就开始编写第一个真正的 Linux 字符设备驱动,LED 灯驱动。麻雀虽小,五脏俱全。本次点亮 LED 看似很简单,但却包含了字符驱动开发的全部步骤。
2023-07-18 12:31:17
810
原创 深入理解Linux内核 PHY 驱动框架
深入讲解一下IMX6ULL在Linux内核中 PHY的驱动框架,希望这篇文章对大家理解网卡驱动有所帮助。
2023-07-13 07:52:44
7277
原创 Git下:Git命令使用-详细解读
命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。在版本库中标记为 "index" 的区域是暂存区(stage/index),标记为 "master" 的是 master 分支所代表的目录树。命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。几个专用名词的译名如下。
2023-06-23 11:38:41
665
2
转载 Git上:全网最全最详细的Git安装教程,建议收藏保存
这是安装成功后开始菜单里面的图。有 Git Bash、Git CMD、Git FAQs、Git GUI、Git Release Note,下面我们就分别介绍一下这几个。
2023-06-23 11:36:13
18573
7
原创 C语言+单片机-内存分布详解,全网最全,值得收藏保存
数据段,指初始化为0值的可读可写数据,它与RW-data的区别是程序刚运行时这些数据初始值全都为0,程序运行时和RW-data的性质一样,它们也常驻在RAM区,应用程序可以更改其内容。通过了解程序的大小,特别是RO-data和RW-data的大小,可以确保所使用的内存空间不会超出设备的可用内存范围,避免内存溢出和相关的错误。),它占用的空间为Code + RO-data + RW-data的总和,所以如果这些内容比芯片的FLASH空间大,程序就无法被正常保存在芯片的FLASH了。
2023-06-21 07:58:11
6769
6
原创 imx6ull固化和更新uboot、zImage和dtb方法---超详细总结
往期精彩文章推荐:1.2.3.4.5.6.7.进行固化和更新的前提,和已经编译好,并且能成功启动和挂载。在讲解imx6ull固化和更新uboot、zImage和dtb方法之前,先带大家了解一些imx6ull的分区情况以及各自的作用。imx6ull eMMC分区,如下图:):EMMC的0分区前两个块 (扇区 ),里面保存着分区表,从第三块开始存放uboot;):存放Linux内核kernel和dtb设备树;):存放rootfs根文件系统。
2023-06-18 14:36:17
2121
1
原创 Linux中磁盘管理之格式化、分区、挂载-详解
磁头负责在特定的磁道上读取或写入数据。通过控制磁头的移动和定位,可以将磁头定位到目标磁道上的特定位置,以进行数据的读写操作。没有分区时,数据的安全性和稳定性可能会受到更大的威胁,因为整个磁盘上的数据都处于相同的风险之中。格式化磁盘将清除磁盘上的所有数据,并为其提供一个干净的文件系统环境,使其可以开始存储新的数据。磁盘的磁头可以在磁盘表面上移动到指定的磁道上,然后读取或写入磁道上的扇区数据。它允许更好地组织和管理磁盘上的数据,提高性能,提供数据的安全性和稳定性,并允许实现多引导系统和不同文件系统的兼容性。
2023-06-16 07:51:49
3568
原创 rootfs根文件系统制作及挂载方法-详解
根文件系统一般也叫做 rootfs,那么什么叫根文件系统?看到“文件系统”这四个字,很多人,包括我第一反应就是 FATFS、 FAT、 EXT4、 YAFFS 和 NTFS 等这样的文件系统。在这里,根文件系统并不是 FATFS 这样的文件系统代码, EXT4 这样的文件系统代码属于 Linux 内核的一部分。Linux 中的根文件系统更像是一个文件夹或者叫做目录(在我看来就是一个文件夹,只不过是特殊的文件夹),在这个目录里面会有很多的子目录。
2023-06-14 07:47:20
3972
3
原创 详细讲解u-boot之网络移植与调试
首先来回顾一下,上一篇我们采用的是NXP官方默认imx6ull开发板的配置参数,任何参数都未做修改,现在使用默认配置网络未能正确识别,说明我们的硬件设计与官方的设计有偏差。,从设备树文件中可以得到,imx6ull FEC1对应位ethphy0,而ethphy0对应的phy地址默认位2,这与我们开发板硬件给的phy地址不符合,因此修改设备树中FEC1对应的phy地址为0。查找结果如上,spi4接口中使用了GPIO5的7和8两个管脚,并且该设备status状态为“okay”激活,解决方法如下,
2023-05-23 12:25:47
15688
2
原创 u-boot移植:详细讲解移植u-boot.2022.10版本到imx6ull开发板
在U-Boot中添加自己的开发板NXP官方uboot中默认都是 NXP 自己的开发板,虽说我们可以直接在官方的开发板上直接修改,使u-boot可以完整的运行在我们的板子上。但是从学习的角度来讲,这样我们就不能了解到u-boot是如何添加新平台的。接下来我们就参考NXP官方的I.MX6ULL EVK 开发板学习如何在u-boot中添加我们的开发板或者开发平台。里面有很多宏定义,如配置u-boot默认串口打印使用uart的第几个口,网口默认使用哪个网口等,也有一些u-boot环境变量的的默认配置。
2023-05-21 17:35:43
2884
4
原创 C语言之链表详解
链表是一种基本的数据结构,它由一系列节点组成,每个节点包含一个值和指向下一个节点的指针。链表的特点是可以动态添加和删除节点,而不需要预先知道数据的数量。与数组不同,链表中的节点不一定是连续的存储空间,因此可以有效地利用内存空间。int val;
2023-04-10 08:41:39
7480
原创 C语言之环形队列
int *queue:指向环形队列的指针;int front:指向队列的头部;int rear:指向队列的尾部;int size:队列的容量。int *queue;int front;int rear;int size;
2023-04-09 20:33:36
1028
原创 C语言入门阶段08:C语言指针
指针类型指针变量名指针类型指定了指针所指向的数据类型,例如int类型的指针可以指向整型数据,char类型的指针可以指向字符数据,等等。指针类型的声明使用*符号,例如:int *p;// 定义一个指向int类型的指针变量pchar *s;// 定义一个指向char类型的指针变量sint *p;// 定义一个指向int类型的指针变量pint *count;// 定义一个指向int类型的指针变量count指针是C语言中的重要概念,它提供了一种灵活的方式来访问内存中的数据。
2023-04-05 13:49:50
643
原创 C语言入门阶段07:C语言数组
数组是一组具有相同数据类型的元素的集合,这些元素按照一定的顺序排列在一起,并且可以使用一个标识符(即数组名)来引用整个数组。可以通过下标(或索引)来访问数组中的每个元素,其中第一个元素的下标为0。数据类型:数组中元素的数据类型。数组名:用于标识数组的名称。数组大小:数组中元素的个数。如下:其中,data_type表示数组元素的数据类型,array_name表示数组的名称,array_size表示数组的大小,即它可以存储的元素个数。
2023-04-04 08:43:32
170
原创 C语言入门阶段06:C语言函数
同时,函数还可以提高程序的重用性,可以将一些通用的功能封装成函数,供其他部分调用,从而减少了重复的代码,提高了程序的效率和可维护性。总之,函数是C语言中非常重要的一部分,它可以帮助程序员将程序划分为不同的模块,提高程序的可读性和可维护性,同时还可以提高程序的重用性和效率。其中,return_type是函数的返回值类型,function_name是函数的名字,parameter_list是函数的参数列表,如果函数没有参数,可以将parameter_list留空或者使用void关键字表示没有参数。
2023-04-03 08:43:13
245
原创 C语言入门阶段04:C语言运算符和表达式
C语言的设计者在设计语言时考虑了程序员的需求,因此C语言的运算符和表达式非常灵活,可以用于不同类型的操作。C语言提供了多种类型的运算符,例如算术运算符、关系运算符、逻辑运算符、位运算符等。以上是 C 语言中的所有运算符和表达式的详细讲解,需要注意运算符的优先级和结合性,以及常见的错误情况。C 语言中的运算符按照优先级从高到低排列,同一优先级的运算符按照结合性从左往右或从右往左计算。需要注意的是,位运算符只能用于整型数据类型,而且左右两边的操作数必须是同样的数据类型。赋值运算符用于将右边的值赋给左边的变量。
2023-04-01 15:35:55
237
Ymodem-使用STM32F10xxx的USART实现在应用中编程
2024-05-07
千兆网口Freescale-ETSEC-+-Marvell-88E1111-uboot-Linux-驱动分析.pdf
2020-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人