sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1950回复:8

关于linux

楼主#
更多 发布于:2002-08-08 17:58
想想看,其实驱动也没啥,先来个init.
然后有
 open;
 close:
 ioctl:
好象就可以做很多事情了。
111
netfbi
驱动小牛
驱动小牛
  • 注册日期2001-11-27
  • 最后登录2010-07-27
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-10 18:57
老大果然是高手,小弟可能需要写块pci在linux下,到时要多多帮忙哦。一句话胜过千页书啊。
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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的作用差不多吧。
    其实偶觉得写代码只是部分的工作量,还有很大一部分精力是读接口芯片的资料,那部分也很花时间。
111
netfbi
驱动小牛
驱动小牛
  • 注册日期2001-11-27
  • 最后登录2010-07-27
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-09 18:45
能否谈谈在linux下对pci设备驱动等设备的写法,就想那几个init()
一样。
longge
驱动中牛
驱动中牛
  • 注册日期2002-07-10
  • 最后登录2005-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-09 17:42
果然是驱动的行家啊!
除了记忆什么都带不走; 除了足迹什么都留不下。
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-09 16:40
指点说不上,要跑起来偶觉得通常一两个星期就应该可以了吧(当然要硬件对头哈)
111
tuesday420
驱动牛犊
驱动牛犊
  • 注册日期2002-07-08
  • 最后登录2003-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-09 16:23
哇!大虾!菜鸟我正开始做linux下的pci加密卡的驱动程序,觉得满头江湖,你能指点一下否?
  e-mail也行:tuesday420@163.net :D
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-08-09 13:11
别的东东得做硬件的人说吧。
象偶的drv无非就是

init()
{
   getdmaaddr;
   register_chrdev(...);
   get baseaddr;
   ioremap;
}

drv_open
{
   request_irq(...);
}

drv_ioctl
{
    switch(...);
}

好象也没什么特别的。。。。
111
longge
驱动中牛
驱动中牛
  • 注册日期2002-07-10
  • 最后登录2005-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-08-08 18:21
这是框架,还要考虑很多东西地!
你是因为熟了才感觉没什么地!
除了记忆什么都带不走; 除了足迹什么都留不下。
游客

返回顶部