linux驱动开发入门(学习记录)

2023.7.6及7.7

概述了解

cpp 复制代码
                                      一
1.驱动框架
2. 字符设备
块设备,存储相关
网络设备驱动
不一定属于某一种类型
                                      二
1.获取外设或传感器数据,控制外设,数据会提交给应用程序
2.编写一个驱动,及测试应用程序 app。驱动和应用完全分开
3.驱动程序(内核空间)应用程序(用户空间)
4.应用程序-->内核资源(系统调用,异常,陷入)、
5.应用程序通过API函数进行系统调用,POSIX,API,C库
6.陷入-->内核 系统调用号---系统调用
7.驱动设备表现就是一个/dev/下的文件,应用程序调用open,write,close
8.编写驱动时也要编写驱动对应的open,write等,字符设备驱动file_operations结构体
                                      三
1.字符驱动编写---file_operations
2.2种运行方式
(1):将驱动编译进Linux内核中,则当Linux内核启动的时候就会自动运行驱动程序
(2):将驱动编译成模块(.ko)在Linux内核启动以后使用"insmod"加载驱动模块,,,,,<调试驱动>
3.module_init(xxxxx_init)  //注册模块加载函数
 module_exit()   //注册模块卸载函数
                                      四


cpp 复制代码
1.不能使用c库开发驱动程序
2.没有内存保护
3.内核栈小
4.考虑可移植性:   字节序,
给用户提供统一的编程接口,
使用宏代替设备端口的物理地址
不同处理器,使用处理器相关函数

                                       五
1.处理器:intel的PXA系列,ARM的strongARM,MIPS technologies的MIPS,摩托罗拉龙珠,日立SH3,德州仪器OMAP系列
2.ARM处理器系列:ARM7系列,ARM9系列,ARM9E系列。。。。。。。。。。。。
3.ARM处理器选型:
处理器核
系统时钟控制器:::::系统时钟决定了芯片的处理速度
存储器
GPIO数量 
中断控制器
IIS总线接口::::开发音频应用产品
nWAIT信号::外部总线速度控制信号。。利用nWAIT信号与GAL芯片可以实现符合				
PCMCIA标准的WLAN卡和蓝牙卡的接口
实时时钟
LCD控制器
PWM输出。。。。。。。。。。。
4.S3C2400开发板:::。。。。。。。。。。

linux内核子系统
1.进程管理:::进程是操作系统分配资源的基本单位,CPU调度的基本单位
就绪,执行,阻塞态
2.内存管理:::内核为每个进程创建一个虚拟地址空间,虚拟地址空间进行管理
3.文件系统:::
4.设备管理:::完成数据从设备到内存的传输。。数据首先从设备传入内存----CPU处理-----数据传入内存或设备
5.网络:::

linux源代码结构分析
1.arch目录::包含与体系结构相关的代码
2.drivers目录::linux内核支持的大部分驱动程序


相关推荐
逆小舟2 小时前
【Linux】人事档案——用户及组管理
linux·c++
青草地溪水旁2 小时前
pthread_mutex_lock函数深度解析
linux·多线程·pthread
太空的旅行者3 小时前
告别双系统——WSL2+UBUNTU在WIN上畅游LINUX
linux·运维·ubuntu
Hello_Embed4 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中5 小时前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
人工智能训练师5 小时前
Ubuntu22.04如何安装新版本的Node.js和npm
linux·运维·前端·人工智能·ubuntu·npm·node.js
灿烂阳光g5 小时前
domain_auto_trans,source_domain,untrusted_app
android·linux
Magnetic_h6 小时前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
cxr8286 小时前
SPARC方法论在Claude Code基于规则驱动开发中的应用
人工智能·驱动开发·claude·智能体
研梦非凡6 小时前
ICCV 2025|从粗到细:用于高效3D高斯溅射的可学习离散小波变换
人工智能·深度学习·学习·3d