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 分钟前
【JavaWeb学习 | 第二篇】CSS(1) - 基础语法与核心概念
前端·css·学习
小白讲编程10 分钟前
C++ 基础学习总结:从入门到构建核心认知
c++·学习·青少年编程
牛奶咖啡1343 分钟前
Linux中安装部署Hadoop集群的保姆级安装配置教程
linux·hadoop·openjdk21安装配置·openjre21安装配置·hadoop集群安装配置·linux的ssh配置·linux实现免密登录配置
dessler1 小时前
MYSQL-数据库介绍
linux·运维·mysql
Garc1 小时前
linux Debian 12 安装 Docker(手动)
linux·docker·debian
kaoa0002 小时前
Linux入门攻坚——52、drbd - Distribute Replicated Block Device,分布式复制块设备-1
linux·运维·服务器
Kay_Liang2 小时前
【Hive 踩坑实录】从元数据库初始化到 HiveServer2 启动的全流程问题解决
大数据·linux·hive·hadoop·笔记·mysql·ubuntu
NiKo_W2 小时前
Linux Socket网络编程基础
linux·服务器·网络
啊略略wxx2 小时前
嵌入式Linux面试题目
linux·运维·服务器
半桔2 小时前
【IO多路转接】深入解析 poll:从接口到服务器实现
linux·运维·服务器·php