Linux操作系统是一款开源的操作系统,其内核由Linus Torvalds在1991年开发。作为一款开源操作系统,Linux已经在各种设备和场景中得到广泛应用,从个人桌面电脑到服务器、手机、路由器和嵌入式系统等。
Linux内核是操作系统的核心部分,负责管理系统的硬件资源和提供基本的系统服务。为了让Linux适配各种硬件设备,开发者们编写了各种设备驱动程序,这些驱动程序背后的接口被称为“Lin            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-02-27 10:28:10
                            
                                112阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            procfs接口创建
实现效果:
在/proc下创建一个clk节点,通过cat /proc/clk可查看内容:
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/proc_fs.h>
#include <linu            
                
         
            
            
            
            前期准备
内核配置打开debugfs:
CONFIG_DEBUG_FS=y
挂载debugfs文件系统:
mount -t debugfs none /sys/kernel/debug
代码实现
读写变量:
#include <linux/debugfs.h>
#include <linux/module.h>
#include <linux/types.h&            
                
         
            
            
            
             LINUX中已经集成了一些组件的相关驱动,但是随着机器相关组件芯片不断更新,相应的驱动程序也在不断的更新,LINUX中集成的驱动程序难免有些不能满足需要,其最突出的问题,莫过于NVIDIA的显卡驱动程序。在当今视频显示芯片领域,随着3D图形显示芯片的激烈市场竞争,S3、3Dfx、Matrox 、Trident等一些老牌3D显示芯片生产厂商已经渐渐退出了市场。nVIDIA、ATi、Int            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-31 19:30:51
                            
                                50阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             MAC(链路层)+PHY(物理层/RTL8201F,88E1111);集成型DM9000,RTL8139CP 由于网络数据传输量较大,不论是分开型还是集成型,通常会在MAC和PHY之间引入DMA,MAC和PHY之所以有分开,是因为MAC属于数字电路部分,而PHY则属于模拟部分,负责将接收到的数据传输给MAC层,MAC层将接收到的数据传输给上层协议,如IP层,IGMP层。PHY层也负责将由MAC层            
                
         
            
            
            
            Linux系统上的/proc目录是一种文件系统,即proc文件系统。
与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-04-04 14:04:35
                            
                                1077阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            【摘要】前文我们分析了一个虚拟硬件的网络驱动例子,从中我们看到了网络设备的一些接口,其实网络设备驱动和块设备驱动的功能比较类似,都是发送和接收数据包(数据请求)。当然它们实际是有很多不同的。 1、引言 首先块设备在/dev目录下有设备节点,而网络设备没有这样的设备入口。read,write等常规的文            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-05-26 09:19:00
                            
                                493阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            转自:http://blog.csdn.net/joard_yang/article/details/6225937译自:linux-2.6.31.14/Documentation/input/multi-touch-protocol.txt简介 为了使用功能强大的多点触控设备,就需要一种方案去上...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-01-07 01:24:00
                            
                                135阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
                         
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-07-22 12:23:00
                            
                                1243阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            本文章为《STM32MP157 Linux系统移植开发篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板)。stm32mp157是ARM双核,2个A7核,1个M4核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRTOS、RT-Thread等实时操作系统,STM32MP157开发板所以既可以学嵌入式linux,也可以学stm32单片机。 针对F            
                
         
            
            
            
            (2008-08-08 15:02:19)转载▼标签:itlinuxkerneldriver分类:Linux序言设备驱动程序的一个基本功能就是管理和控制设备,同时为用户应用程序提供管理和控制设备的接口。我们前面的“Hello World”驱动程序已经可以提供读写功能了,在这里我们将扩展我们的驱动以支...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2014-12-09 14:13:00
                            
                                108阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            1,ioctlpreface--starting point ,format,mount volume,in addition to the abovefile system -- allows users to store and retrive data; organized in a hier...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-12-30 09:07:53
                            
                                132阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            mongodb对外接口或驱动:https://docs.mongodb.com/ecosystem/drivers/,包含C,C++,Go,Python等。 C驱动 mongodb的C驱动,即libmongoc,是一个用于开发mongodb的C库。依赖libbson,libbson用于生成和解析BS            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-11-03 11:32:00
                            
                                100阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            UART,IIC以及SPI作为三个基本的低速接口协议,是我们经常使用的,本系列将简单介绍SPI的接口协议,然后用几个简单的demo案例(对flash的操作)对SPI接口进行熟悉。 本文介绍SPI通信协议的基本内容以及FLASH芯片的相关基本的知识。 基于FPGA实现SPI接口协议(一)一,SPI通信协议的基本介绍二,SPI 通讯协议工作模式三,FLASH芯片的简单介绍1,芯片容量与分布2,芯片接口            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-30 08:54:14
                            
                                173阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                对于字符设备驱动程序,之前都是在驱动程序中定义并设置file_operations结构体,实现各种需要用到的函数,注册file_operations结构体,框架比较简单,但是在Linux中,却很少看见这样框架的代码,那是因为在Linux中设备驱动模型一般都由总线、设备、驱动这个三大部分组成。这是一种分层分离的思想:分层:核心层和设备相关层分开。分离:            
                
         
            
            
            
            什么是流接口:请看文章最后     WinCE提供了四种设备模型,其中两种是专门用于WinCE的模型,另外两种外部模型来自其他的操作系统。基于WinCE的两种模型是本机的设备驱动程序和流接口的驱动程序。两种外部模型用于通用串行总线(USB)和网络驱动器接口标准(NDIS)驱动程序。其中流接口驱动程序是为连接到基于WjnCE平台的外围设备而设计的,这些外围设备包...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-09-28 17:59:29
                            
                                307阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            nVIDIA nForce系列主板芯片组最新驱动1.23版For Linux(2007年9月2日发布)目前Linux的用户群不断壮大,各种版本的Liunx系统如雨后春笋般的出现。各大硬件设备供应商都积极开发Liuux下的驱动程序,nVIDIA也不例外。本次开发的nForce系列主板驱动已开放源代码。NVIDIA还提供在最初Linux安装时可能需要的预编译存储(sata_nv)和Ethernet(f            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-23 11:31:08
                            
                                186阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            相信很多友友也遇到了同样的问题,在Linux上开发Android程序,有真机但却没有驱动,而一般手机的驱动都是Window上的,为此我也烦恼了很久,终于在今天,无意中找到了在Linux上安装Android手机的驱动,其实也不算是安装驱动啦,整个过程,不用下载任何东西,不用安装任何东西,只需写一个文件,就可以了,甚至与Window上安装驱动还方便快捷,我就是用这个方法,让我那台古董机华为C8600能            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-17 11:10:59
                            
                                241阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            probe函数中一般完成一下任务: 1、通知内核设备执行DMA的寻址能力,说明设备支持64位还是32位的DMA地址。如果不支持64位的地址,则尝试32位的:err = dma_set_mask(pci_dev_to_dev(pdev), DMA_BIT_MASK(64));
	if (!err) {
		err =
		    dma_set_coherent_mask(pci_dev_to_de            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-26 14:56:15
                            
                                183阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            POLL操作1、POLL运行过程:poll是一个系统调用,其内核入口函数为sys_poll,sys_poll差点儿不做不论什么处理直接调用do_sys_poll,do_sys_poll的运行过程能够分为三个部分: 1,将用户传入的pollfd数组复制到内核空间,由于拷贝操作和数组长度相关。时间上这是一个O(n)操作,这一步的代码在do_sys_poll中包含从函数開始到调用do_poll            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-12 23:32:46
                            
                                166阅读