阅读:1948回复:8
关于linux
想想看,其实驱动也没啥,先来个init.
然后有 open; close: ioctl: 好象就可以做很多事情了。 |
|
|
沙发#
发布于:2002-08-08 18:21
这是框架,还要考虑很多东西地!
你是因为熟了才感觉没什么地! |
|
|
板凳#
发布于:2002-08-09 13:11
别的东东得做硬件的人说吧。
象偶的drv无非就是 init() { getdmaaddr; register_chrdev(...); get baseaddr; ioremap; } drv_open { request_irq(...); } drv_ioctl { switch(...); } 好象也没什么特别的。。。。 |
|
|
地板#
发布于:2002-08-09 16:23
哇!大虾!菜鸟我正开始做linux下的pci加密卡的驱动程序,觉得满头江湖,你能指点一下否?
e-mail也行:tuesday420@163.net :D |
|
地下室#
发布于:2002-08-09 16:40
指点说不上,要跑起来偶觉得通常一两个星期就应该可以了吧(当然要硬件对头哈)
|
|
|
5楼#
发布于:2002-08-09 17:42
果然是驱动的行家啊!
|
|
|
6楼#
发布于:2002-08-09 18:45
能否谈谈在linux下对pci设备驱动等设备的写法,就想那几个init()
一样。 |
|
7楼#
发布于:2002-08-10 10:10
告诉你吧,偶原来写驱动至少是两台机器,一台写代码,同时把内核所有源码用souce insight 做成一个工程,然后看别人怎么写的,自已来抄。hoho.大部分代码框架就可以生成了,接下来就看硬件spec,要不然就直接问做硬件的兄第“你说吧,你在仿真的时候都干了些什么事,快交待出来,heihei”。
然后,如果硬件没什么问题,驱动很快就ok啦。 至于代码的写法,差别比较大啦,没看到内核里的驱动源码有很多种写法么,偶只是依样画葫炉的哈。 就pci卡吧,通常在init时要得到几个比较重要的资源,irq,baseaddr,通常还会要申请dmaaddr,然后注册设备,挂上中断处理函数。 准备就绪后,应用程序打算告诉卡一些数据要处理,可以write,可以ioctrl,然后把数据dma到卡上,卡算完了发中断(要不你就在这儿一直查询状态),你的中断处理程序再做相应的处理(通常把数据dma到内存啦)。 好了,整个工作就完了。 整个过程很简单吧。不象win2k下的wdm,还有什么pnp,power等东东,startio,adddevice,再加driverentry可能和init的作用差不多吧。 其实偶觉得写代码只是部分的工作量,还有很大一部分精力是读接口芯片的资料,那部分也很花时间。 |
|
|
8楼#
发布于:2002-08-10 18:57
老大果然是高手,小弟可能需要写块pci在linux下,到时要多多帮忙哦。一句话胜过千页书啊。
|
|