⑴ 如何编写驱动程序
可以啊 不过得找到硬件号以及工作的必要端口号
然后用C语言些
看看硬件通信方面的书籍对你有帮助的当然有些东西是商业机密 你不一定能拿到所有的公开信息
原理吗就是消息响应机制
比如首先为摄像头创建进程x
进程1希望调用进程x 利用摄像头
进程x开放端口给进程1 进程1取得资源
进程x同时挂起(有很多算法如 银行家算法)。。。。。。
是不是偏题了?
⑵ 怎么写驱动程序
游戏辅助不是驱动吧!那个是脚本一类的吧!用vb或Java吧!
⑶ usb驱动程序怎么写
如果只是简单的做驱动,你就先学一下USB方面的协议,然后直接学习WinDriver,这样,你只需要写一次驱动就能得到Nt/2000/9X/linux......的驱动,如果要深入的搞,那学完USB方面的协议,还要学DDK的用法,9X下面要学VXD,2000下面要学WDM,linux下面还要重新学一些东西
⑷ 驱动程序可以自已写吗自已写该怎么写。
如果你有足够的专业知识,可以自己写,也可以改编现有的驱动程序。但是,驱动程序都是根据硬件本身的具体情况来编写的,所以,一般来说,驱动程序,只有出产相关硬件的厂商来编写。其它人编写很可能会出问题,因为他(他们)不清楚或不能非常好的解决硬件-驱动-系统这三者之间的关系。应该说,还没有人愿意去替厂商来做这种费力不讨好的事情。
⑸ 如何学习写简单的驱动程序
买本书是必须的
我见过的最简单的驱动入门书
linux设备驱动开发技术及应用 (韩)
可以在pc上接LED做实验,很简单和富有实践性
实例丰富,讲解细致入微,归纳总结得很好
⑹ 如何写简单的驱动程序
学了汇编,不知道该如何写个山寨的windows7啊!都要用到什么东东,最好有个大体框架什么的,感激不尽!
⑺ 如何写驱动程序
C语言....
⑻ 如何编写驱动程序
代码:
#include<linux/mole.h>
#include<linux/kernel.h>
#include<asm/io.h>
#include<linux/miscdevice.h>
#include<linux/fs.h>
#include<asm/uaccess.h>
//流水灯代码
#define GPM4CON 0x110002e0
#define GPM4DAT 0x110002e4
static unsigned long*ledcon=NULL;
static unsigned long*leddat=NULL;
//自定义write文件操作(不自定义的话,内核有默认的一套文件操作函数)
static ssize_t test_write(struct file*filp,const char __user*buff,size_t count,loff_t*offset)
{
int value=0;
int ret=0;
ret=_from_user(&value,buff,4);
//底层驱动只定义基本操作动作,不定义功能
if(value==1)
{
*leddat|=0x0f;
*leddat&=0xfe;
}
if(value==2)
{
*leddat|=0x0f;
*leddat&=0xfd;
}
if(value==3)
{
*leddat|=0x0f;
*leddat&=0xfb;
}
if(value==4)
{
*leddat|=0x0f;
*leddat&=0xf7;
}
return 0;
}
//文件操作结构体初始化
static struct file_operations g_tfops={
.owner=THIS_MODULE,
.write=test_write,
};
//杂设备信息结构体初始化
static struct miscdevice g_tmisc={
.minor=MISC_DYNAMIC_MINOR,
.name="test_led",
.fops=&g_tfops,
};
//驱动入口函数杂设备初始化
static int __init test_misc_init(void)
{
//IO地址空间映射到内核的虚拟地址空间
ledcon=ioremap(GPM4CON,4);
leddat=ioremap(GPM4DAT,4);
//初始化led
*ledcon&=0xffff0000;
*ledcon|=0x00001111;
*leddat|=0x0f;
//杂设备注册函数
misc_register(&g_tmisc);
return 0;
}
//驱动出口函数
static void __exit test_misc_exit(void)
{
//释放地址映射
iounmap(ledcon);
iounmap(leddat);
}
//指定模块的出入口函数
mole_init(test_misc_init);
mole_exit(test_misc_exit);
MODULE_LICENSE("GPL");
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏
你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。
⑼ 驱动程序怎么写
不用驱动,
像USB对接线有专门卖的,
我记得单单线是连不起来的,它中间觅人小小的数据处理芯片的。
⑽ 驱动程序怎么编写
要看是什么操作系统,还要先了解底层接口。