深入探讨:Linux驱动设备的分类(linux驱动设备的分类)

linux驱动设备一般有四类,即硬件设备驱动、文件系统驱动、网络设备驱动和存储设备驱动。其中,硬件设备驱动是最重要的,它通过官方的API函数来控制和驱动硬件设备。具体的设备有:CPU、内存、显卡、磁盘、蜂鸣器、U盘及其他I/O端口设备等等。下面将对硬件设备驱动的一些常用的API函数做一个简要概述:

十余年的鄂伦春网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整鄂伦春建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“鄂伦春网站设计”,“鄂伦春网站推广”以来,每个客户项目都认真落实执行。

1. register_readl/writeX:用于注册外设的读写操作,常用于CPU寄存器访问,例如:

static void register_readl(unsigned long addr, unsigned long *val)
{
*val = readl(addr);
}

static void register_writel(unsigned long addr, unsigned long val)
{
writel(val, addr);
}

2. request_irq/free_irq:用于注册硬件设备的中断,例如:

static void request_irq(IRQn_Type irq, void (*handler)(void), void *dev)
{
NVIC_SetPriority(irq, 10);
NVIC_EnableIRQ(irq);
// 将指定的处理函数挂载到中断任务链上
NVIC_SetVector(irq, handler);
// for HSV00xx set FIQ
NVIC_SetTarget(irq, 1);
// for HSV00xx enable IRQ
NVIC_EnableIRQ(irq);
}
static void free_irq(IRQn_Type irq)
{
NVIC_DisableIRQ(irq);
// for HSV00xx disable FIQ
NVIC_ClearPendingIRQ(irq);
}

3. request_DMA/free_dma:用于注册硬件设备的DMA,例如:

static int request_dma( DMAC_Channel dma, int dir, int mode, unsigned int size )
{
DMAC_SetTransferSize( dma, size );
// 设定传输模式
DMAC_SetTransferMode( dma, mode );
// 设定TRX_TYPE, 为Memory/Peripheral模式
DMAC_SetTransferType( dma, dir );
// 设定DMA传输接口
DMAC_SetTransferInterface( dma, 0, 0, 1, 0 );
// 启动DMA
DMAC_Start( dma );
return 0;
}
static void free_dma( DMAC_Channel dma )
{
DMAC_Stop(dma);
}

除了以上硬件设备驱动外,Linux还提供了文件系统驱动、网络设备驱动和存储设备驱动。文件系统驱动实现文件系统的功能,例如ext2、ntfs、fuse等;网络卡驱动实现网络的功能,功能如网卡的控制、收发包等;存储设备驱动实现硬盘等外设的操作,支持u盘、移动硬盘、sd卡等等。以上就是linux驱动设备的分类情况。

创新互联(cdcxhl.com)提供稳定的云服务器,香港云服务器,BGP云服务器,双线云服务器,高防云服务器,成都云服务器,服务器托管。精选钜惠,欢迎咨询:028-86922220。

分享文章:深入探讨:Linux驱动设备的分类(linux驱动设备的分类)
转载注明:http://www.36103.cn/qtweb/news30/9930.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联