关于LINUX下驱动的一些不明白

hotsnow1943 2008-04-08 05:31:03
刚刚学了LINUX下驱动的编程

但是有一些疑惑,希望高手能够给小子解答一下,感谢万分!!!

我原先学过单片机,在单片机的开发中,如果用到传感器之类的,有些传感器都有自己的通信协议,为了能够正确的接受传感器的数据,也必须根据通信协议写驱动。就小子我个人现在对驱动的认识也差不多就是这样。

但是在学习LINUX驱动编写的时候,在编写的过程中好象没有跟设备的通信有关的语句,这是为什么呢?对于一些特殊的设备,那要怎么编呢?还有,在LINUX下是不是只有字符、块设备、网卡这三类驱动?

由于小子是菜鸟,所以可能提的问题有些许可笑,望高人能够不吝赐教,再谢!
...全文
251 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotsnow1943 2008-04-22
  • 打赏
  • 举报
回复
第一次结帖,才知道分数是要自己分配的

55555555~~~

分来分去才发现能分给各位大大们的分数太少了

早知道多弄点分了~~~

多谢各位大大不吝赐教,分数太少希望各位大大不要介怀~~~~

不过,既然是大大,当然应该不缺这么几分的~~~

哈哈哈哈~~~~
fantry_t 2008-04-14
  • 打赏
  • 举报
回复
一上手就看鼠标驱动,真是太不幸运了。
鼠标,键盘,终端驱动是linux内核中最难的char类型设备的驱动。
找个简单的驱动看看,比较容易入门
hzcpig 2008-04-14
  • 打赏
  • 举报
回复
通信协议有些是写死在具体的驱动模块里,有些通用的协议也有些写成大家共用的模块,比如i2c。
hotsnow1943 2008-04-14
  • 打赏
  • 举报
回复
呵呵~~~
多谢fantry_t 提醒

那再问一下,大家最初都看一些什么驱动作为学习了~~~

在这里再谢诸位大大的解答~~~~
henrylee1981 2008-04-13
  • 打赏
  • 举报
回复
自己最好把整个Linux下的驱动大概的看一下,然后你就会发现它有框架的,然后找一个比较简单的设备驱动再看,这样学的比较快!
杨帆_8318 2008-04-13
  • 打赏
  • 举报
回复
所谓的写Linux驱动就是高级的填表.,经典!

本身内核给你的就是一个框架,你按照这个框架把东西填满就行了,
至于填什么,就看你自己的协议实现了
linkstack 2008-04-12
  • 打赏
  • 举报
回复
以USB来说:
根据usb protocol封装数据的代码已经定义成函数放在内核里了(usb subsystem),所以不需要自己写了
yclz 2008-04-10
  • 打赏
  • 举报
回复
所谓的写Linux驱动就是高级的填表.
cnwolf 2008-04-09
  • 打赏
  • 举报
回复
linux的驱动编程只是按照linux的内核框架编写一个module

这个module可以让linux管理你的设备

至于如何与你的设备通信,需要根据设备的实现协议自己定义的
AksenXu 2008-04-09
  • 打赏
  • 举报
回复
写在什么地方都可以。就是一些函数调用的问题。
但是因为linux使用的人很多,所以为了代码可以复用
就约定了一些架构和层次,所以按照他的结构来写驱动的话,比较简单
也可以让其他人使用。但是分得架构越多,代码层次越复杂就越难理解
往往调用的地方太多,对于我们这些菜鸟来说,入门就比较难了,呵呵
hotsnow1943 2008-04-09
  • 打赏
  • 举报
回复
那自己定义是什么意思呢?

是不是也要写在驱动的模块里面?
hotsnow1943 2008-04-08
  • 打赏
  • 举报
回复

多谢AksenXu

有看过一个鼠标的驱动,结构比较复杂,一直都没看出来是在什么地方实现的,看来是不够细心,仔细,要再认真的看几遍
AksenXu 2008-04-08
  • 打赏
  • 举报
回复
看看那本经典的linux设备驱动程序吧。
可以有一个概念上的认识。
你说的那个通信协议肯定是要有的啊,只是linux下的驱动结构层次比较多,你仔细跟一个驱动,就会发现协议是在什么地方实现的啦。

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧