linux驱动程序进入内核

linux驱动程序进入内核

ID:6127638

大小:33.72 KB

页数:21页

时间:2018-01-04

linux驱动程序进入内核_第1页
linux驱动程序进入内核_第2页
linux驱动程序进入内核_第3页
linux驱动程序进入内核_第4页
linux驱动程序进入内核_第5页
资源描述:

《linux驱动程序进入内核》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ARM-uClinux下编写加载驱动程序详细过程本文主要介绍在uClinux下,通过加载模块的方式调试IO控制蜂鸣器的驱动程序。实验过程与上篇文章所讲的过程基本相似,更多注重细节及注意事项。       本文适合学习ARM—Linux的初学者。//==================================================================硬件平台:MagicARM2200教学试验开发平台(LPC2290)Linuxversion2.4.24,gccversion2.9

2、5.3电路连接:P0.7——蜂鸣器,低电平发声。实验条件:uClinux内核已经下载到开发板上,能够正常运行;与宿主机相连的网络、串口连接正常。//==================================================================       编写蜂鸣器的驱动程序相对来说容易实现,不需要处理中断等繁琐的过程,本文以蜂鸣器的驱动程序为例,详细说明模块化驱动程序设计的主要过程和注意事项。       一、编写驱动程序       驱动程序的编写与上文所说的编写过

3、程基本相同,这里再详细说明一下。//==========================================//蜂鸣器驱动程序:beep.c文件//-------------------------------------------------------------------#include   /*模块相关*/#include     /*内核相关*/#include      /*linux定

4、义类型*/#include            /*文件系统file_opertions结构体定义*/#include      /*出错信息*//*PINSEL0注意:低2位是UART0复用口,不要改动*/#definePINSEL0(*((volatileunsigned*)0xE002C000))   /*P0口控制寄存器*/#defineIO0PIN(*((volatileunsigned*)0xE0028000))#defineIO0SET(

5、*((volatileunsigned*)0xE0028004))#defineIO0DIR(*((volatileunsigned*)0xE0028008))#defineIO0CLR(*((volatileunsigned*)0xE002800C))#defineMAJOR_NUMBER254   /*自定义的主设备号*/#defineBEEP_CMD0                 /*自定义的控制命令*//*函数声明*/staticintbeep_open(structinode*inode,st

6、ructfile*file);staticintbeep_ioctl(structinode*inode,structfile*file,unsignedintcmd,unsignedlongarg);staticintbeep_release(structinode*inode,structfile*file);staticintbeep_init(void);staticvoidbeep_cleanup(void);/*******************************************

7、*************/volatilestaticintbeep_major=MAJOR_NUMBER;     /*全局变量:主设备号自定义为254*//********************************************************//*注册函数:用到file_operations结构体。将蜂鸣器结构体自命名为beep_test,在注册模块时要用到*/staticstructfile_operationsbeep_test={   owner:THIS_MODULE

8、,   ioctl:beep_ioctl,  open:beep_open,  release:beep_release,};/*注意:此处的分号(;)不要丢掉*//*********************************************************/#defineBEEPCON0x00000080staticvoidbeep_port_init(void)//蜂鸣器端口初始化:设置

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。