![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux设备驱动学习
Linux设备驱动学习
十分钟ll
学吧,还能咋滴
展开
-
Linux设备驱动开发学习打卡1
此时,需要设备的驱动设计有面向操作系统内核的接口,把原本单一的“驱使硬件设备行动”变成了操作系统内与硬件交互的模块,对外呈现为操作系统的API,此时应用软件工程师需要调用操作系统的API接口间接的访问驱动实现对硬件的控制。设备驱动充当了硬件和软件之间的纽带,他让本难以沟通的应用软件和硬件之间可以变得更好的相互促进相互协同。并不是所有的计算机系统都一定要有操作系统,对于一些功能单一控制比较简单的系统是不需要使用操作系统的。这个时候需要应用软件工程师直接调用设备驱动的接口,设备驱动来直接完成对硬件的控制。原创 2023-12-26 15:32:19 · 330 阅读 · 0 评论 -
Linux设备驱动学习打卡5
1969年发布的RS-232修改版RS-232C是嵌入式系统应用最广泛的串行接口,它为连接DTE(数据终端设备)与DCE(数据通信设备)而制定。RS-232C标准接口有25条线(4条数据线、11条控制线、3条定时线、7条备用线和未定义线),常用的数据线有9根,他们是RTS/CTS(请求发送/清除发送流控制)、RxD/TxD(数据收发)、DSR/DTR(数据终端就绪/数据设置就绪流控制)、DCD(数据载波检测)Ringing-RI(振铃指示)、SG(信号地)信号。由于发烧,今天的笔记先写到这吧。原创 2023-12-30 17:01:38 · 342 阅读 · 1 评论 -
Linux设备驱动学习打卡4
NOR(或非)和NAND(与非)是市场上两种主要的Flash闪存技术。两种Flash与CPU的接口方式也各有不同,NOR Flash与CPU的接口方式是类SRAM接口(包括:数据总线、地址总线、读信号、写信号、片选、字节使能、就绪/忙、中断);NAND Flash接口包括:I/O总线(地址、指令和数据通过这组总线传输,一般为8位或16位)、芯片启动(CE)、写使能、读使能、指令锁存使能、地址锁存使能、就绪/忙(Ready/Busy,R/B#:如果NAND器件忙,R/B#信号将变为低电平。原创 2023-12-29 14:59:15 · 381 阅读 · 1 评论 -
Linux驱动开发学习2
编写Linux设备驱动要求工程师具有非常好的硬件基础,懂得SRAM、Flash、SDRAM、磁盘的读写方式,UART、I2C、USB等设备的接口及轮询、中断、DMA的原理等等。除网络设备外,字符设备和块设备都被映射到Linux文件系统的文件和目录,通过文件系统的系统调用接口即可访问字符设备和块设备。*编写Linux设备驱动要求工程师有一定的Linux内核基础,但不需要深入研究,只要明白驱动和内核的接口即可。*编写Linux设备驱动要求工程师有非常好的多任务并发控制和同步的基础。原创 2023-12-27 12:10:11 · 341 阅读 · 1 评论 -
Linux设备驱动开发学习打卡3
网络处理器是一种可编程器件,他应用于电信领域的各种任务,如包处理、协议分析、路由查找、声音/数据的汇聚、防火墙、QoS等。因此,改进的哈佛结构针对程序和数据,其实没有独立的总线,而是使用公用数据总线来完成程序存储模块或数据存储模块与CPU之间的数据传输,公用的地址总线来寻址程序和数据。数字信号处理器包括,定点DSP、浮点DSP。从指令集角度讲,中央处理器可以分为RISC(精简指令集计算机)、CISC(复杂指令集计算机)两类,CISC强调增强指令的能力、减少目标代码数量,但是指令复杂,指令周期长;原创 2023-12-28 21:42:39 · 409 阅读 · 0 评论 -
设备驱动添加到源代码
①.找到驱动对应的drivers里面的文件夹(对应好你选择的设备例如字符驱动就到char文件夹里面)cd drivers/char。添加 obj - $(CONFIG_HELLO) +=helloDev.o(你自己的.o文件名)设置default模式y/m/n(直接模仿里面现成的就行)③在drivers/char中vi Makefile。②在Kconfig中添加设备vi Kconfig。“bool:只支持编译到内核里,也就是y/n”参数“tristate:表示三态y/m/n”原创 2024-01-19 14:22:00 · 340 阅读 · 1 评论 -
Linux内核源码编译过程
对于驱动的添加相对复杂的过程是编写他的Makefile文件,这时候可以借助Cmake直接生成对应驱动的Makefile文件,能大大的降低驱动编写的难度。顶层得Makefile调用底层的Makefile→最后把文件都链接成镜像文件。“g++ *o -o test” 编译所有.o文件生存可执行文件test。执行完成后会生成一个test文件执行文件使用指令“ ./test ”Makefile→针对所有源码的Makefile文件。“g++ 文件名 -c” 会先生产.o文件。“./test” 执行文件。原创 2024-01-23 20:57:24 · 389 阅读 · 0 评论