- 博客(39)
- 收藏
- 关注
原创 centos 7.3下安装vsftp(内含有视频教程)
1.说明 1)优快云上有很多关于centos配置vsftp的教程,但基本上配置出来不能用,不知道为什么。 2)教程为视频教程,请前往www.sharing-iot.com进行观看,课程名称为centos下搭建FTP。 3)搭建环境为阿里云+centos7.3+vsftp. 4)教程从安装VSFTP开始,到最后测试可用,大家跟着一步一步做,10分钟就好了。PS:一定要仔细,一定要仔细,一定...
2018-09-04 20:10:46
619
原创 十六、一个基本的GPIO驱动程序
前面学习和了解了字符设备和文件系统是怎么关联起来的,这篇文章就来实践一下,加深前面的理解。我们写一个基本的GPIO引脚驱动用于驱动板载的LED灯和蜂鸣器,并在文件系统里面创建字符设备文件节点,用于控制GPIO引脚。
2025-12-07 11:37:41
303
原创 十五、设备文件与设备驱动是如何关联的
在Linux下,一切皆文件,这个说法对于字符设备也是成立的。对于字符设备,我们会在/dev目录下创建一个设备文件(也叫做设备节点),然后读写这个文件就可以实现应用程序与字符设备的交互。但是字符设备文件属于文件系统的范畴,而字符设备驱动属于字符设备子系统的范畴,那么它们是如何配合从而实现从文件系统的层面访问到字符设备的呢?这篇笔记要阐明的就是应用程序如何通过/dev目录下的字符设备文件名找到对应的字符设备驱动并实现与字符设备的交互。
2025-12-02 14:53:06
131
原创 十三、Linux内核模块开发基础
对于宏内核,由于服务直接在内核态提供,故用户应用程序的数据可以通过系统调用直接交给内核服务处理,数据拷贝少;按照现代操作系统的内核派系,Linux属于宏内核,其所有的核心功能和服务都在内核里面提供;为了解决宏内核服务功能扩展的问题,Linux引入了内核模块,我们实现了模块功能并将其编译为.ko格式的内核模块文件后,就可以进行动态加载和移除,以此实现内核服务的扩展。对于宏内核,由于其服务也集成在内核里面,故内核镜像大,不易扩展,想添加新的功能需要重新编译内核;如果想查看内核输出的所有消息,可以使用。
2025-11-30 16:00:32
209
原创 十二、驱动开发环境准备
由于我的主机电脑没有固定的有线网口,所以用的USB转接网口,其插拔会影响主机的网络状态,故单独组件了一个brige网络,以免其插拔影响到虚拟机上网功能或者主机与虚拟机的连接。1.由于想用clangd实现vscode + clangd的代码精确跳转,所以需要一个较高的linux内核版本,但是又不想系统占用太大的空间,因此选择操作系统镜像选择debian-12服务器版。ens37:Host-Only,用于主机连接虚拟机,实现SSH和Samba共享等功能,IP = 192.168.189.100。
2025-11-29 14:47:54
249
原创 十一、Linux内核的构建和编译
linux的默认配置文件位于arch/arm/configs目录中,而u-boot的默认配置文件位于根目录下的configs中。
2025-11-25 20:30:48
104
原创 十、UBOOT学习笔记
kbuild配置系统中已经有一套默认的配置参数,对于跟默认值不同的参数,或者需要新增的配置参数,就放在xxx_defconfig配置文件中。根据实验的结果,环境变量使用EMMC还是SD卡取决于启动设备,如果是从EMMC里启动的UBOOT,则默认的当前mmc设备为EMMC,并且从EMMC里加载环境变量;的构建都是用./scripts/Makefile.build,所以接下来探索./scripts/Makefile.build。处,也就是说我们需要烧录的是uboot.imx,而不是uboot.bin。
2025-11-20 09:35:39
849
原创 九、异常处理(Exception Handling)
本篇文章是《ARM Cortex-A v7》编程手册第九章—Exception Handling的学习笔记。
2024-03-12 21:31:25
2469
原创 七、使用隐式规则(Using Implicit Rules)
本篇文章是《GNU Make》官方文档的第10章—Using Implicit Rules的学习笔记。
2024-01-26 21:30:45
679
原创 一、GNU Make基础
本篇学习笔记主要总结了《GNU make》里面前三章部分的一些重要知识点,引入了一些重要的概念,为方便后续章节的学习打下基础。
2023-12-20 21:37:03
1821
原创 六、Cache — 缓存
本篇笔记为《Cortex-A(armV7)编程手册》第8章 - Caches的学习心得,总结了Cache的基本原理和Cortex-A系列处理器的Cache结构知识。
2023-12-09 18:25:59
1625
原创 一、烧录代码镜像到IMX6ULL上去运行
本文详细介绍了IMX6ULL启动设备的概念,分析了IMX6ULL的几种启动模式,以及如何生成和烧录代码镜像到启动设备。
2023-10-08 21:52:53
932
2
原创 四、引入总线设备驱动的概念,基于平台驱动的LED字符设备驱动
基于平台驱动实现的Linux LED字符设备驱动,支持多个LED灯,从基本的字符设备驱动的自定义设备结构体来表示一个LED,过渡到到使用通用的平台设备来表示一个LED灯
2023-03-04 12:16:18
191
原创 三、最终的LED字符设备驱动,体现驱动程序分层和分离的设计思想
经过进一步分层后的Linux LED驱动框架,将最初的LED驱动拆分为通用的系统级LED驱动框架 + 芯片相关的芯片级驱动 + 板级相关的板级驱动,体现了Linux驱动的分层设计思想和面向对象的接口抽象
2023-02-28 18:11:10
190
原创 二、改进后的LED字符设备驱动,体现驱动程序分层设计思想
经过分层后的Linux LED驱动框架,将最初的LED驱动拆分为通用的系统级LED驱动框架 + 芯片相关的芯片级驱动,体现了Linux驱动的分层设计思想和面向对象的接口抽象能力。
2023-02-28 16:55:23
148
原创 基于IAP实现的STM32F系列固件升级(远程升级 + SD卡升级)
基于IAP技术对STM32系列芯片进行固件更新和升级,包括远程升级和SD卡,U盘升级等。
2022-10-30 19:29:06
3499
原创 深入分析linux内核的内存分配函数devm_kzalloc
深入分析Linux内核里面的内存分配函数devm_kzalloc,了解其内存分配和自动释放的过程。
2022-10-04 12:21:14
11947
3
嵌入式Linux LED字符设备驱动,基于平台驱动实现,使用设备树定义LED灯资源,引入pinctrl和gpio子系统
2023-03-15
Linux LED字符设备驱动,基于平台驱动的LED字符设备驱动,支持多个LED灯,体现Linux驱动的分层设计思想
2023-03-04
Linux LED字符设备驱动,基于平台驱动的LED字符设备驱动,支持多个LED灯,没有体现分层设计思想
2023-03-04
嵌入式Linux字符设备驱动-分层后的LED字符设备驱动-系统级驱动+芯片级驱动
2023-03-02
经过进一步分层后的Linux LED字符设备驱动,系统级驱动 + 芯片级驱动 + 板级驱动
2023-03-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅