阅读:1989回复:18
大虾 关于嵌入式linux驱动开发提供点建议吧
最近 准备开发一款pcmcia的wi-fi驱动
有些不知道头绪 以前写过许多嵌入式linux多线程应用,对嵌入式linux也有一定的认识,《linux设备驱动》也看的非常熟悉,现在我的主要疑问就是; 开发嵌入式linux下的设备驱动有些什么好的调试工具呢?kgdb好像只能用于x86;有些什么好的经验可以介绍呢? 第二个就是 要开发pcmcia的802.11b的设备驱动的思路是怎么样的啊? 看见斑竹不准在这里提太入门的问题,我也是鼓起勇气才提的,呵呵 我问的是些方法论的问题,不是什么具体的技术问题,应该不会占用各位大虾太多时间吧!谢谢了! |
|
沙发#
发布于:2005-05-27 14:29
1。<<linux设备驱动>>如果熟悉了,开发一般的驱动就没有大的问题了。
2。串口输出,printk来看,是最常用的了,一般也够了 3。pcmcia的802.11b的驱动,先要熟悉pcmcia驱动的架构,再看802。11b驱动。有pcmcia 802.11b的开发包,把流程看明白了,作适当的修改,就可以满足你的需要。两年多以前做的,都记不清了 4。这版试windows开发,linux有一个专版 5。给一点分以资感谢和鼓励,不然可能没有人愿意回答。 |
|
板凳#
发布于:2005-05-27 16:28
不好意思,虽然LINUX在桌面OS风头正劲,但在嵌入式中却没有多大发展,因为它不太适合
|
|
|
地板#
发布于:2005-05-27 16:47
不好意思,虽然LINUX在桌面OS风头正劲,但在嵌入式中却没有多大发展,因为它不太适合 何出此言?linux非常适合嵌入式开发。在国内嵌入式开发,linux已经成为主流了吧? |
|
地下室#
发布于:2005-05-27 18:42
感谢楼上的建议
恩 一定记得给分的 呵呵 |
|
5楼#
发布于:2005-05-28 10:39
[quote]不好意思,虽然LINUX在桌面OS风头正劲,但在嵌入式中却没有多大发展,因为它不太适合 何出此言?linux非常适合嵌入式开发。在国内嵌入式开发,linux已经成为主流了吧? [/quote] Linux确实不太适合嵌入式开发,先不论它的个头,就先看一点,如中断响应吧,Linux有很多不可打扰的关键区以及Linux的任务调度,不光有技术原因还有人为原因,去看瑞典研究小组及中国计算所专家针对Linux的源码分析,你就会明白了。 |
|
|
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的源码分析,你就会明白了。 你自己都看过吗?如果你都看过,我可以和你一起切磋,因为我都看过 |
|
7楼#
发布于:2005-05-29 09:22
<<Linux有很多不可打扰的关键区以及Linux的任务调度 2.6的内核确实是抢占性的,但是中断发生时难道仅是有抢占性就可达到吗?请说说中断响应时间包含哪几块?很抱歉,你得重看 :P |
|
|
8楼#
发布于:2005-05-29 10:19
2.6的内核确实是抢占性的,但是中断发生时难道仅是有抢占性就可达到吗?请说说中断响应时间包含哪几块?很抱歉,你得重看
回复:我是没有看,有时间看一看。 嵌入式系统和实时式系统是一事吗?请把我帖子看全。 没有一个人能掌握所有的领域,如果对于自己不太熟悉的,还是不要轻易下结论,以免误导初学者 |
|
9楼#
发布于:2005-05-29 11:15
小弟插上一句
确实不是所有的嵌入式系统对实时性要求都那么高 我现在用的MontaVista的嵌入式linux就是完全抢占式的,它在标准的linux调度之上加了一个完全抢占的任务调度层;实时性强的由新的调度搞定,一般的交给原来的linux任务调度 具体的实现不祥 ^_^ |
|
10楼#
发布于:2005-05-29 12:12
相信在嵌入式开发中确实有些问题是仁者见仁 智者见智
讨论是非常必要的 不然像我这样的小虾米怎么能见世面 zhaock兄,你在2楼所说的pcmcia-802.11的开发包是不是就是所谓的pcmcia-cs package;如果不是的话,在哪里可以down到呢? 能和你交朋友吗?我的qq 7448436 想你学习! |
|
11楼#
发布于:2005-05-29 13:17
相信在嵌入式开发中确实有些问题是仁者见仁 智者见智 当时我们公司做的是ap,我没有具体参与这个项目,也了解一些。 我移植过pcmcia-cs的驱动。 802.1x卡一般是用在pcmcia的接口上,所以在pcmcia-cs的上面 还有802.11b的驱动。pcmcia-cs是有支持wireless的部分,因为我们做的是ap,还需要hostap的驱动,你可以从google中搜到,也看看。 pcmcia-cs包带的文挡,讲的很具体,你重点看看吧。 这部分还是两年前接触过,已经记不太清了。 抱歉我不用qq。 |
|
12楼#
发布于:2005-05-30 16:12
2.6的内核确实是抢占性的,但是中断发生时难道仅是有抢占性就可达到吗?请说说中断响应时间包含哪几块?很抱歉,你得重看 桌面系统和嵌入式系统对OS的需求有很多差异,而差异最明显的就在实时与安全角度 就是MontaVista目前也还没有取得稳定,说明LINUX并不适合嵌入式开发 先从实时的角度考虑,中断延迟是巨大的问题,cli后任何设备中断能抢下来吗?这里面根据瑞典研究人员对LINUX源代码分析,一般是用最坏情况下的性能作为标准,有一个这样的区域居然执行需要2万个执行周期,线程响应,调度策略都是问题,这里面就有优先级翻转的特殊情况。 再论安全,LINUX的驱动程序都是和核心在一个BULK中,这样在嵌入式这样大量需要驱动的地方,对核心构成了巨大的威胁,因此现在很多嵌入式OS采用的是微内核技术。 以上仅是很少一部分技术因素 非技术因素还有很多 你所说“最大的优点它是免费的。” 其实上过当的用户专门为此发明了一个名词叫“貌似免费”,由于LINUX内核规模的复杂性,造成支持Linux的开销远远大于其他嵌入式系统 毕竟LINUX从诞生之日就是为桌面和服务器领域打造的,其实我觉得它甚至目前在桌面领域都不太成功,所以就让它在这个领域中一路好走吧,或许用于嵌入式领域只是国人的一厢情愿 |
|
|
13楼#
发布于:2005-05-30 16:46
老兄,做过没有做过嵌入式开发?先给我一个答案。
然后我在和你讨论具体代码。 如果按照你说的LINUX不适合嵌入式开发,我知道很多哥们就都 要失业了 |
|
14楼#
发布于:2005-05-30 17:33
老兄,做过没有做过嵌入式开发?先给我一个答案。 哎,郁闷,偶的专业是搞硬件的,后来发现代表硬件的半导体,中国和国外差距太大,而失望离去,作为外行改搞软件,后来在UNIX上搞了一些医疗设备的控制软件,以上技术分析其实就是以前针对UNIX系统的,后来身体。。。往事不堪回首,现在发现中国半导体工业落后,其实软件更落后,可能很多人不同意我的观点,但仔细想想,我知道很多人已心有凄凄焉。。。年纪一天天大了,难道这又是离去的时候了吗。。。 |
|
|
15楼#
发布于:2005-05-30 20:39
哎,郁闷,偶的专业是搞硬件的,后来发现代表硬件的半导体,中国和国外差距太大,而失望离去,作为外行改搞软件,后来在UNIX上搞了一些医疗设备的控制软件,以上技术分析其实就是以前针对UNIX系统的,后来身体。。。往事不堪回首,现在发现中国半导体工业落后,其实软件更落后,可能很多人不同意我的观点,但仔细想想,我知道很多人已心有凄凄焉。。。年纪一天天大了,难道这又是离去的时候了吗。。。 看来老哥还真的没怎么做过嵌入式开发。 你所说的,主要是linux实时性的支持上不够,但现在很多嵌入式没有那么强的实时性要求,vxwork是很强,但价格很昂贵,不是所有的公司都用得起。 不知道你听说过uclinux没有,主要用在没有mmu的cpu上,现在应用的非常广泛。 我确实同意国内软件和国外的差距也不小,但是如果我们不去做,不去坚持,如何去缩小这个差距呢。 国外有很多40,50的程序员,老哥也就30出头吧,何必语带悲观呢? 听你的话,是不是生过一次病,而且不轻,那更要注意身体,身体是革命的本钱。 老兄如果英雄无用武之地,可以到我们公司来看看,我们现在很缺 老兄这样的windows系统级程序员呢。 如果有msn, 我们在msn上好好聊聊。 现在能碰到一个共同切磋的高手,还真是不容易 |
|
16楼#
发布于:2005-05-30 23:07
老兄,做过没有做过嵌入式开发?先给我一个答案。 嵌入式Linux的市场份额在逐年下降,win ce则是逐年上升。 5年以后,嵌入式Linux将被淘汰。手机、数字电视、汽车电子连同都将被Longhorn一统天下。 微软刚刚在中国建立了MSN的门户网站,为的可不是同新浪竞争,目的就是为Longhorn铺路。 |
|
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代码的分析上多做些工作。 |
|
18楼#
发布于:2005-05-31 09:36
<<中断延迟是巨大的问题,cli后任何设备中断能抢下来吗 确实是大病一场,而且现在还在复原中。。。郁闷,所以现在很慌啊!我可以说完全没有在Linux上做过嵌入式开发,只在UNIX上作过,那时嵌入式开发这个概念可以说甚至还没有,不过UNIX同现在的Linux几乎没有太大的差别,<<linux内核原代码情景分析>>大概是前年看得吧,其中还有这样一句,系统程序员都抠门到了机器的时钟周期,可是中断响应的指标是最坏情况下的响应时间,你应该将所有的cli这样的语句全部找出来实际得看一下,现在,嵌入式处理器频率还不是很高,也许很快会改善,这方面也许我的估计落后了 另外,你可以在看一下,linux那个简单的调度策略,根本没有嵌入处理系统做任何优化,还有,在处理关键线程的时候,却总不得不响应各种软件中断,还有它本身庞大繁杂的体系,你也提到了<<linux内核原代码情景分析>>的两位老先生是多么辛苦,嵌入式系统没有必要涉及到那么复杂,而且我认为在这样大一个系统上作定制,其中还有很多不可知因素,如那些处理各种芯片BUG,虽然它支持最多的处理器类型,但我认为它已经无法脱离开这个庞大的系统,而可以尽可能bug free地存在,它只适合与Windows竞争。 至于windows原代码,其实我惊奇地发现大家还是非常有信心的,我觉得方式是不是应该变一下,老大你先贴出哪怕是一点具体的代码或思想分析来,不成熟不要紧,正如arthurtu大侠所说,刚开始肯定不是太好,慢慢就可以了,关键是把火先烧起来 |
|
|