linuxzhang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-30
  • 最后登录2005-05-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1990回复:18

大虾 关于嵌入式linux驱动开发提供点建议吧

楼主#
更多 发布于:2005-05-27 13:34
最近 准备开发一款pcmcia的wi-fi驱动

有些不知道头绪    以前写过许多嵌入式linux多线程应用,对嵌入式linux也有一定的认识,《linux设备驱动》也看的非常熟悉,现在我的主要疑问就是; 开发嵌入式linux下的设备驱动有些什么好的调试工具呢?kgdb好像只能用于x86;有些什么好的经验可以介绍呢?

第二个就是 要开发pcmcia的802.11b的设备驱动的思路是怎么样的啊?

看见斑竹不准在这里提太入门的问题,我也是鼓起勇气才提的,呵呵

我问的是些方法论的问题,不是什么具体的技术问题,应该不会占用各位大虾太多时间吧!谢谢了!
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-05-27 14:29
1。<<linux设备驱动>>如果熟悉了,开发一般的驱动就没有大的问题了。
2。串口输出,printk来看,是最常用的了,一般也够了
3。pcmcia的802.11b的驱动,先要熟悉pcmcia驱动的架构,再看802。11b驱动。有pcmcia 802.11b的开发包,把流程看明白了,作适当的修改,就可以满足你的需要。两年多以前做的,都记不清了
4。这版试windows开发,linux有一个专版
5。给一点分以资感谢和鼓励,不然可能没有人愿意回答。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-27 16:28
不好意思,虽然LINUX在桌面OS风头正劲,但在嵌入式中却没有多大发展,因为它不太适合
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-05-27 16:47
不好意思,虽然LINUX在桌面OS风头正劲,但在嵌入式中却没有多大发展,因为它不太适合

何出此言?linux非常适合嵌入式开发。在国内嵌入式开发,linux已经成为主流了吧?
linuxzhang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-30
  • 最后登录2005-05-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-27 18:42
感谢楼上的建议
恩 一定记得给分的  呵呵
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-28 10:39
[quote]不好意思,虽然LINUX在桌面OS风头正劲,但在嵌入式中却没有多大发展,因为它不太适合

何出此言?linux非常适合嵌入式开发。在国内嵌入式开发,linux已经成为主流了吧? [/quote]
Linux确实不太适合嵌入式开发,先不论它的个头,就先看一点,如中断响应吧,Linux有很多不可打扰的关键区以及Linux的任务调度,不光有技术原因还有人为原因,去看瑞典研究小组及中国计算所专家针对Linux的源码分析,你就会明白了。
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2005-05-28 22:17
<<Linux有很多不可打扰的关键区以及Linux的任务调度
你是说linux内核的不可抢占性,对实时性的支持不够吧,但嵌入式
开发和实时性是一个概念吗?
我在一个公司做过两年的嵌入式驱动开发,产品有router,sip-gateway,firewall,可视电话,802.11的网关等等,都是基于linux的,对实性都没有特别的要求
而且有为linux内核打补丁,实现实时调度的,(2.6是不是已经支持内核可抢占了?没有具体看代码,听说,不敢下结论)
说linux大,实际上它是高度可定制的。
最大的优点它是免费的。
我不知道你是不是做过嵌入式开发,这个结论是从哪里来的?
如果linux不适合的话,至少在国内来讲,都在用什么来开发,vxworks?

<<如中断响应吧,Linux有很多不可打扰的关键区以及Linux的任务调<<度,不光有技术原因还有人为原因,去看瑞典研究小组及中国计算<<所专家针对Linux的源码分析,你就会明白了。

你自己都看过吗?如果你都看过,我可以和你一起切磋,因为我都看过

bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-05-29 09:22
<<Linux有很多不可打扰的关键区以及Linux的任务调度
你是说linux内核的不可抢占性,对实时性的支持不够吧,但嵌入式
开发和实时性是一个概念吗?
我在一个公司做过两年的嵌入式驱动开发,产品有router,sip-gateway,firewall,可视电话,802.11的网关等等,都是基于linux的,对实性都没有特别的要求
而且有为linux内核打补丁,实现实时调度的,(2.6是不是已经支持内核可抢占了?没有具体看代码,听说,不敢下结论)
说linux大,实际上它是高度可定制的。
最大的优点它是免费的。
我不知道你是不是做过嵌入式开发,这个结论是从哪里来的?
如果linux不适合的话,至少在国内来讲,都在用什么来开发,vxworks?

<<如中断响应吧,Linux有很多不可打扰的关键区以及Linux的任务调<<度,不光有技术原因还有人为原因,去看瑞典研究小组及中国计算<<所专家针对Linux的源码分析,你就会明白了。

你自己都看过吗?如果你都看过,我可以和你一起切磋,因为我都看过

 

2.6的内核确实是抢占性的,但是中断发生时难道仅是有抢占性就可达到吗?请说说中断响应时间包含哪几块?很抱歉,你得重看 :P
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2005-05-29 10:19
2.6的内核确实是抢占性的,但是中断发生时难道仅是有抢占性就可达到吗?请说说中断响应时间包含哪几块?很抱歉,你得重看

回复:我是没有看,有时间看一看。
嵌入式系统和实时式系统是一事吗?请把我帖子看全。
没有一个人能掌握所有的领域,如果对于自己不太熟悉的,还是不要轻易下结论,以免误导初学者
linuxzhang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-30
  • 最后登录2005-05-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-05-29 11:15
小弟插上一句
确实不是所有的嵌入式系统对实时性要求都那么高
我现在用的MontaVista的嵌入式linux就是完全抢占式的,它在标准的linux调度之上加了一个完全抢占的任务调度层;实时性强的由新的调度搞定,一般的交给原来的linux任务调度

具体的实现不祥 ^_^

linuxzhang
驱动牛犊
驱动牛犊
  • 注册日期2004-11-30
  • 最后登录2005-05-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-05-29 12:12
相信在嵌入式开发中确实有些问题是仁者见仁 智者见智

讨论是非常必要的  不然像我这样的小虾米怎么能见世面

zhaock兄,你在2楼所说的pcmcia-802.11的开发包是不是就是所谓的pcmcia-cs package;如果不是的话,在哪里可以down到呢?

能和你交朋友吗?我的qq 7448436  想你学习!
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2005-05-29 13:17
相信在嵌入式开发中确实有些问题是仁者见仁 智者见智

讨论是非常必要的  不然像我这样的小虾米怎么能见世面

zhaock兄,你在2楼所说的pcmcia-802.11的开发包是不是就是所谓的pcmcia-cs package;如果不是的话,在哪里可以down到呢?

能和你交朋友吗?我的qq 7448436  想你学习!

当时我们公司做的是ap,我没有具体参与这个项目,也了解一些。
我移植过pcmcia-cs的驱动。
802.1x卡一般是用在pcmcia的接口上,所以在pcmcia-cs的上面
还有802.11b的驱动。pcmcia-cs是有支持wireless的部分,因为我们做的是ap,还需要hostap的驱动,你可以从google中搜到,也看看。
pcmcia-cs包带的文挡,讲的很具体,你重点看看吧。
这部分还是两年前接触过,已经记不太清了。
抱歉我不用qq。


bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-05-30 16:12
2.6的内核确实是抢占性的,但是中断发生时难道仅是有抢占性就可达到吗?请说说中断响应时间包含哪几块?很抱歉,你得重看

回复:我是没有看,有时间看一看。
嵌入式系统和实时式系统是一事吗?请把我帖子看全。
没有一个人能掌握所有的领域,如果对于自己不太熟悉的,还是不要轻易下结论,以免误导初学者
 

桌面系统和嵌入式系统对OS的需求有很多差异,而差异最明显的就在实时与安全角度
就是MontaVista目前也还没有取得稳定,说明LINUX并不适合嵌入式开发
先从实时的角度考虑,中断延迟是巨大的问题,cli后任何设备中断能抢下来吗?这里面根据瑞典研究人员对LINUX源代码分析,一般是用最坏情况下的性能作为标准,有一个这样的区域居然执行需要2万个执行周期,线程响应,调度策略都是问题,这里面就有优先级翻转的特殊情况。
再论安全,LINUX的驱动程序都是和核心在一个BULK中,这样在嵌入式这样大量需要驱动的地方,对核心构成了巨大的威胁,因此现在很多嵌入式OS采用的是微内核技术。
以上仅是很少一部分技术因素
非技术因素还有很多
你所说“最大的优点它是免费的。”
其实上过当的用户专门为此发明了一个名词叫“貌似免费”,由于LINUX内核规模的复杂性,造成支持Linux的开销远远大于其他嵌入式系统
毕竟LINUX从诞生之日就是为桌面和服务器领域打造的,其实我觉得它甚至目前在桌面领域都不太成功,所以就让它在这个领域中一路好走吧,或许用于嵌入式领域只是国人的一厢情愿
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2005-05-30 16:46
老兄,做过没有做过嵌入式开发?先给我一个答案。
然后我在和你讨论具体代码。

如果按照你说的LINUX不适合嵌入式开发,我知道很多哥们就都
要失业了
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-05-30 17:33
老兄,做过没有做过嵌入式开发?先给我一个答案。
然后我在和你讨论具体代码。

如果按照你说的LINUX不适合嵌入式开发,我知道很多哥们就都
要失业了
 

哎,郁闷,偶的专业是搞硬件的,后来发现代表硬件的半导体,中国和国外差距太大,而失望离去,作为外行改搞软件,后来在UNIX上搞了一些医疗设备的控制软件,以上技术分析其实就是以前针对UNIX系统的,后来身体。。。往事不堪回首,现在发现中国半导体工业落后,其实软件更落后,可能很多人不同意我的观点,但仔细想想,我知道很多人已心有凄凄焉。。。年纪一天天大了,难道这又是离去的时候了吗。。。
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2005-05-30 20:39
哎,郁闷,偶的专业是搞硬件的,后来发现代表硬件的半导体,中国和国外差距太大,而失望离去,作为外行改搞软件,后来在UNIX上搞了一些医疗设备的控制软件,以上技术分析其实就是以前针对UNIX系统的,后来身体。。。往事不堪回首,现在发现中国半导体工业落后,其实软件更落后,可能很多人不同意我的观点,但仔细想想,我知道很多人已心有凄凄焉。。。年纪一天天大了,难道这又是离去的时候了吗。。。

看来老哥还真的没怎么做过嵌入式开发。
你所说的,主要是linux实时性的支持上不够,但现在很多嵌入式没有那么强的实时性要求,vxwork是很强,但价格很昂贵,不是所有的公司都用得起。
不知道你听说过uclinux没有,主要用在没有mmu的cpu上,现在应用的非常广泛。
我确实同意国内软件和国外的差距也不小,但是如果我们不去做,不去坚持,如何去缩小这个差距呢。
国外有很多40,50的程序员,老哥也就30出头吧,何必语带悲观呢?
听你的话,是不是生过一次病,而且不轻,那更要注意身体,身体是革命的本钱。
老兄如果英雄无用武之地,可以到我们公司来看看,我们现在很缺
老兄这样的windows系统级程序员呢。
如果有msn, 我们在msn上好好聊聊。
现在能碰到一个共同切磋的高手,还真是不容易
freshwt
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2008-06-13
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-05-30 23:07
老兄,做过没有做过嵌入式开发?先给我一个答案。
然后我在和你讨论具体代码。

如果按照你说的LINUX不适合嵌入式开发,我知道很多哥们就都
要失业了
 


嵌入式Linux的市场份额在逐年下降,win ce则是逐年上升。
5年以后,嵌入式Linux将被淘汰。手机、数字电视、汽车电子连同都将被Longhorn一统天下。
微软刚刚在中国建立了MSN的门户网站,为的可不是同新浪竞争,目的就是为Longhorn铺路。
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
17楼#
发布于:2005-05-31 00:17
<<中断延迟是巨大的问题,cli后任何设备中断能抢下来吗
针对你说的问题,我就贴一行linux的代码,handle_IRQ_event
中的if(!(action->flags & SA_INTERRUPT)) __sti();
可见即使是在中断处理上,也尽量会调用sti,而且真正耗时的操作
已经放到了bottom half,相比于微内核,linux的中断延迟好象不是一个大问题吧
<<linux内核原代码情景分析>>的两位老先生,都50多岁了吧,一行一行的去分析代码,倪光南院士为书所注的序中讲到这本书,和另一本<<嵌入式系统>>说,内容和深度上都是罕见的,不算是过誉之词。我不知道你是否如此细致的去分析过代码,或者说把两位老先生的书一页一页的认真的读过,才得出结论的。因为从你的经历看,你确实没有在linux上做过多少嵌入式开发的工作。
windows原代码,都泄露了这么长的时间了,代码解读的论坛也开了很长时间了,我可以说没有看到一篇有深度的剖析,一方面是我们
确实工作很忙,没有时间去做这个工作,但另外一方面是不是也缺乏象两位老先生一样塌实的治学精神,沉下心来去做呢。
老哥如果有时间,我们到是可以在windows代码的分析上多做些工作。



bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-05-31 09:36
<<中断延迟是巨大的问题,cli后任何设备中断能抢下来吗
针对你说的问题,我就贴一行linux的代码,handle_IRQ_event
中的if(!(action->flags & SA_INTERRUPT)) __sti();
可见即使是在中断处理上,也尽量会调用sti,而且真正耗时的操作
已经放到了bottom half,相比于微内核,linux的中断延迟好象不是一个大问题吧
<<linux内核原代码情景分析>>的两位老先生,都50多岁了吧,一行一行的去分析代码,倪光南院士为书所注的序中讲到这本书,和另一本<<嵌入式系统>>说,内容和深度上都是罕见的,不算是过誉之词。我不知道你是否如此细致的去分析过代码,或者说把两位老先生的书一页一页的认真的读过,才得出结论的。因为从你的经历看,你确实没有在linux上做过多少嵌入式开发的工作。
windows原代码,都泄露了这么长的时间了,代码解读的论坛也开了很长时间了,我可以说没有看到一篇有深度的剖析,一方面是我们
确实工作很忙,没有时间去做这个工作,但另外一方面是不是也缺乏象两位老先生一样塌实的治学精神,沉下心来去做呢。
老哥如果有时间,我们到是可以在windows代码的分析上多做些工作。



 

确实是大病一场,而且现在还在复原中。。。郁闷,所以现在很慌啊!我可以说完全没有在Linux上做过嵌入式开发,只在UNIX上作过,那时嵌入式开发这个概念可以说甚至还没有,不过UNIX同现在的Linux几乎没有太大的差别,<<linux内核原代码情景分析>>大概是前年看得吧,其中还有这样一句,系统程序员都抠门到了机器的时钟周期,可是中断响应的指标是最坏情况下的响应时间,你应该将所有的cli这样的语句全部找出来实际得看一下,现在,嵌入式处理器频率还不是很高,也许很快会改善,这方面也许我的估计落后了
另外,你可以在看一下,linux那个简单的调度策略,根本没有嵌入处理系统做任何优化,还有,在处理关键线程的时候,却总不得不响应各种软件中断,还有它本身庞大繁杂的体系,你也提到了<<linux内核原代码情景分析>>的两位老先生是多么辛苦,嵌入式系统没有必要涉及到那么复杂,而且我认为在这样大一个系统上作定制,其中还有很多不可知因素,如那些处理各种芯片BUG,虽然它支持最多的处理器类型,但我认为它已经无法脱离开这个庞大的系统,而可以尽可能bug free地存在,它只适合与Windows竞争。
至于windows原代码,其实我惊奇地发现大家还是非常有信心的,我觉得方式是不是应该变一下,老大你先贴出哪怕是一点具体的代码或思想分析来,不成熟不要紧,正如arthurtu大侠所说,刚开始肯定不是太好,慢慢就可以了,关键是把火先烧起来
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部