tag 标签: 上海嵌入式

相关博文
  • 热度 31
    2012-11-25 16:51
    2067 次阅读|
    8 个评论
          作者:下家山       我今天看到Mike_GS的博客“深圳回来,一声叹息”后,看到那几张图片,突然想到了,“恬静”这个词,也许这才是人生应该的状态!   我出生在大山沟下,小时候最喜欢的是跟妈妈上山砍柴!(这座山就是我家背后的那座山,除了狮子,其他动物如老虎时有出么,野猪是常见动物),我喜欢登上最高处,一览众山小,特别是早晨,可以看到下面云雾缭绕,各个小山只露出小小山尖!中午在山上吃带去的干粮!喝山泉水,听花草虫鸣,飞禽走兽叫,特别是那石蛙(一种亲蛙,可以发出“咚咚”的声音,就像用锤子敲打山石的声音)!我更喜欢爬上树,唱在学校里学来的歌,可以毫无顾忌的唱,有多大嗓门就多大嗓门的唱!可惜,那个时候我没有学会吹笛子!   小时候向往大都市,竟然向往像电视里面说普通话!后来如愿,从湖北来到深圳,上海工作!常听人说,从小城市过来,不习惯大城市里面的节奏,太快!也许在一线城市工作习惯了或者说自己生来就是劳碌的命,我却没有这感觉!直到这两年,我感觉躺下,不管是午休,还是晚上!窗外都是喧闹的声音,让我不能安静入睡,也许跟我创业之后的心境有关,我突然感到这是城市的脚步声!此时,却是怀念小时候躺在家里的床上,抬眼即可看到窗外雨水顺着桃树叶子滴下的声音,能够听到春天晚上田野里传来的一片蛙声,能够闻到耕田开春后的泥水气息,夏天里一村的小朋友在打谷场里追逐萤火虫的场景!   不知中国的顶尖企业家如“李彦宏”们,何时考虑把研发部放到三线城市,比如宜昌,或乡村? 难道人生唯利是图?赚很多很多钱,不是为了过上更“恬静”的生活么?在山泉汇集的小湖泊里游泳不必在自己别墅里的游泳池更自由么,仰泳的时候可以看着天上的白云掠过,可以感觉到水下的小鱼儿撞到自己!      2012-10-20   下家山     写于上海.松江                    
  • 热度 56
    2012-11-25 16:51
    4693 次阅读|
    32 个评论
      今天偶然翻到我原来工作的盘,发现一个很好的文档,现在不是流行“云”么,前几天见了个朋友,说到他们的wifi module可以集成tcp/ip协议栈,很方便连到云端,呵呵,想起自己刚毕业时一天到晚看到的诺基亚白皮书里WAP协议中的很多参考图),就把外网画成一朵云的样子(大笑想起当年如日中天的NOKIA,今天也有没落的一天,真是感叹三十年河东,三十年河西,一个公司的决策层如果不能高瞻远瞩,就离没落越来越近了,google有“云电视”,中国很多公司在做“云存储”!其实,很多IT者也不知道“云”到底什么概念,与天上的云有什么关系!              我一般不喜欢转载别人的东西,希望搞原创(魔鬼搞原创真的很累,而且别人转载也不注明出处和作者,就像这篇讲云的文档一样,我原来从同事那里考过来的时候就没有看到出处,我今天想注明都不可能,),但是,这篇云的文章写的诙谐幽默,在此向作者致敬!!!强大        下家山转载(各位找到作者出处的请补个贴,谢谢!)   云里雾里的云计算 【1】   有一次去开会,台上的人在讲云计算。我问身边的听众,“听懂了吗?感觉如何?” 听众答,“云里雾里的,感觉特神秘。” 我说,“这说明讲员讲得好。有没有注意到寺庙里的气氛也很神秘?不神秘,就没有崇拜。不崇拜,你怎么肯掏钱买香火?”   【1】云计算要解决什么问题? 1997年,Google的两位创始人,Larry Page和Sergey Brin,找Andy Bechtolsheim募集投资。 Andy问,“你们打算做什么?” Larry和Sergey答,“打算把互联网上所有网页都下载,然后建一个搜索引擎。” Andy说,"把互联网上所有网页统统下载?!需要多大空间?   几个Giga不行吧,几个Tera也不行吧,几个Peta,几个Zetta?。。。嗯,我看几个Googol也许才能撑得住。知道Googol吗?就是10的100次方,就是一个1后面拖100个0!" 估计是Andy觉得这个项目不太靠谱,所以给的钱不多,只有1百万美元。只有这么一点钱,如果去买高端的存储系统,显然是不够的。走投无路的情况下,Larry和Sergey决定用PC之类便宜的机器,组建一个机器集群。先凑合着用,等以后数据量增加以后,再购买更多的PCs,扩大集群的容量。 这个故事的真实性,有待考证。但是从中可以看到Google集群,也就是Google云计算的核心,要解决的四个问题。 1. 大规模的存储空间,用于存储海量的数据。 2. 随着业务的发展,新的数据源源不断地增加,存储空间需要相应扩大。用术语讲,这叫可扩展性,scalability。 3. 系统的硬件设备必须便宜,通常使用大宗产品(commodity),譬如PC,或者价格便宜,中等性能的Dell server。 4. 便宜的硬件设备,经常死机。所以在设计这个集群的时候,必须保证不能因为个别机器死机,导致整个系统的崩溃。也就是系统的稳定性要好,reliability。   【2】从Google集群到云计算,云计算的商业模式 起初Google集群是供内部使用的系统。Google为什么要开放这个系统,包装成云计算平台,给外界使用呢? 这要从Google的商业模式说起。Google的绝大多数收入来自于广告,其它产品与服务的收入十分有限。其它产品包括Google盒子,这是给企业内部网用的搜索引擎。把Google盒子安装到企业内部网,企业员工就可以搜索企业内部的文档,包括可以公开的文档,也包括仅供企业内部查阅的资料。虽然技术很新颖,但是卖得并不好。据ZDNet的报道 ,2008年度,Google盒子的收益,占Google总利润的份额,不到2%。       Google search appliance, 俗称Google盒子。 Courtesy http://mytwentyfive.com/blog/wp-content/uploads/byme/Google%20Search%20Appliances.jpg 单一的收入来源,抗风险的能力差。譬如经济危机一来,各个企业的广告预算缩减,势必影响到Google的利润。怎么办?挖掘自身的优势,发现更多卖点,搞多种经营。 Google的技术优势在哪里?有人说,Google的搜索结果精确,所以PageRanking算法是其精髓。其实,算法容易模仿复制,即使几年前PageRanking是Google的独家秘籍,但是今日各大搜索引擎,都有类似算法。 让Google独步天下的是它的集群。2006年,Google集群的规模 是45万台机器。两年过去了,有人推测现在的规模又翻了一番。由于Google从不公布准确数字,所以大家只能靠Google给硬件厂商下的订单推测。 推测虽然不准确,但是即便是10万台机器的规模,在历史上也是从无古人的,在当代也是独一无二的。而且,更重要的,是这个超大规模的集群系统已经经历了10年的实际运行,在实践中被证明,它是可靠的,是可扩展的,每台机器的价格也是低廉的。完全符合上一节列举的四个要求。   但是如何依靠这个独门神器挣钱呢?思路有两条。   1. 做hosting,数据托管。其它企业不用建自己的数据中心了,把数据存在Google的集群里得了,每个月交点托管费。 2. 不少Google的应用服务很有人气,譬如Gmail,Gtalk,Reader,Online docs,Picasa,Google earth还有YouTube等等。这些服务对于个人用户而言,完全是免费的。但是Google从来没有说给企业用户使用,也是免费的。譬如某家商店,开了一个网站,网站上需要贴很多照片,还要给个地图给顾客引路。这个商店不需要自己动手建照片存储中心,也不需要开发技术难度更高的地图软件,只要调用 Google提供的相关服务就好。商店建网站是为了赢利,所以Google当然要向商店收钱。 第二个思路还有个副产品,那就是给Google创造更高的流量。流量越大,说明观众越多。对于广告商来说,哪里观众多,就愿意在哪里投放广告。所以,如果第二个思路能给Google带来更高流量,那么会吸引更多的广告,给Google带来更多的广告收入。 Google的高管们一合计,觉得有钱途。于是乎,大张旗鼓地制造舆论,educate the market。 造舆论,讲究的是措辞的简练,气势的磅礴。这个新的服务叫什么? 用工程师的语言,准确地定义,应当是“超大规模的,可扩展的,低成本但是高可靠性的服务器集群系统”。Google市场部的人一听,头摇得像拨浪鼓。不行不行,既不简练,也没有气势。 研究来研究去,于是乎,“云计算cloud computing” 这个概念粉墨登场了。   【3】Google云计算的矛头指向谁? 有一次听一位IT业长者指点江山。长者说,“Google像一个阳光少年,一路顺风顺雨,张张扬扬。让人羡慕,招人喜欢。而微软像一个稳健的中年人,一路风吹雨打,过五关斩六将,毁誉参半。对于它的支持者而言,它是令人敬重的领袖,对于它的竞争者而言,它是令人敬重的对手,无论如何,微软是令人敬重的。” 问及电脑的killer applications,长者说了三个,1. Email,2. Office产品系列,包括Word,Excel和PPT等,3. Web。Email和Web都是泛称,不特指某家公司的产品,但是Office系列是微软公司的产品。长者这样的表述,足见他对微软的推崇。 很少有人不知道微软,但是很少有人很了解微软。随便问两个问题,1. 微软哪一年成立的,2. 微软在哪个城市成立的,有多少人答得上来? 微软是在1975年4月,于新墨西哥州的Albuquerque市成立的,后来搬到了华盛顿州的西雅图市郊。从那时到2008年6月30日,Bill Gates掌舵了33年。然后把CEO的宝座让给了Steve Ballmer,自己则专心致志去散钱搞慈善去了。 Bill Gates舍得捐出自己绝大部分家产,这个心胸让所有地球人叹服。但是Bill为了保证他的基金会平稳运转,自己退休的同时,让微软一员老将,Jeff Raikes跟着他离开微软,出任基金会的CEO。Jeff Raikes离职,对于微软而言,是不可估量的损失。为什么这么讲?   微软有三个产品系列, 1. 大家熟悉的XBox游戏机,是微软the Entertainment and Devices Division的拳头产品。这个部门是微软从单纯的软件公司,扩张到家电行业的触角。虽然XBox的成功毋庸置疑,但是它能不能给微软带来丰厚的利润,是摆在这个部门,尤其是其掌门人,Robbie Bach面前的巨大挑战。 2. The Platforms and Services Division,去年7月份被一分为二。一个专注于改善Windows操作系统,另一个负责在线服务。原来的掌门人,Kevin Johnson,挥挥衣袖离开微软,去Juniper Networks出任CEO。 新的两位掌门人中,有一位是我们中国人,毕业于复旦大学的陆奇。从复旦毕业后,陆奇留学美国CMU,攻读博士学位。博士学位拿到后,经历了短暂的动荡,1998年陆奇加盟Yahoo。他从工程师干起,扎扎实实,一路升到副总裁。2009年1月,陆奇学长离开Yahoo,出任微软Online Services Group的president。他的职责是,领导微软对抗Google。 2009年,争夺互联网霸主的大戏正式开演。     陆奇博士   Courtesy http://news.cnet.com/i/bto/20080619/qi_lu_mugshot_cred_yahoo_sm_300x422.jpg 3. 对于Windows操作系统的评价,好坏参半。但是对于Microsoft Office系列产品,业界基本上交口称赞。负责Office部门的原掌门人,就是刚才提到的Jeff Raikes。           Jeff Raikes Courtesy http://i2.sinaimg.cn/IT/it/2008-01-11/U58P2T1D1967790F13DT20080111134704.jpg 2009年上演互联网争霸赛,微软与Google双方的战略意图相当明显。 1. 微软以陆奇为主帅,强攻Google的核心业务,网络搜索。 2. Google砸重金推广云计算,挑战微软的拳头产品,Outlook email系统,和Office产品系列。 攻防战的关键,在于寻找对方的软肋。   Microsoft Outlook vs Google Gmail Microsoft outlook email系统的软肋,在于它的后台系统不够稳定,容量也不容易扩展。对于用户而言,经常会遇到Outlook服务器联系不上,以及存储空间不够的麻烦。 看准这两点,Google把Gmail系统的号召力定位在,1. 稳定性,2. 无限的存储空间。Google之所以敢于这么叫阵,本钱就在于云计算平台。 当然微软也不会示弱,它们反制的着力点在于保密性。 譬如有一家企业叫foobar,Google的销售人员游说到,“别用Outlook了吧,那玩意儿经常掉线,而且隔三岔五地骚扰你说,存储空间没有了,请立刻删除不必要的emails。你的emails都很重要,怎么能删呢?用我们的gmail吧。”  Foobar公司的IT主管说,“我们公司的邮箱地址是@foobar.com,换成@gmail.com,不仅不方便,而且也有损于我们公司技术实力的形象。” Google的销售人员说,“不用换邮箱地址,表面上看仍然是@foobar.com,用户也可以继续使用Outlook桌面工具,但是后台服务器被悄悄地换成了Gmail的云计算平台。” Foobar公司的IT主管心思有点动摇。 这时候,微软的销售人员上门,说到,“听说你们想把email后台系统换成gmail?这可需要一点勇气。你们把公司所以emails,存放在Google的平台上,万一Googler与服你们的emails,贵公司的商业机密,。。啊,哈哈。” 所以,为Google进言,欲挑战微软outlook,必先解决gmail的保密性。也就是其它公司的emails虽然存放在Google的云计算平台,但是Google能够提供足够的技术保证,即便是Googler有意与服,他们也看不到。   Microsoft Office vs Google Docs Microsoft office 产品的软肋,在于所有文件存放在电脑本地。 譬如我在办公室写了一个设计草稿,通过email把文本发给一个同事审阅。晚上回家后,查看email,收到同事回复,说他做了一些文字上的改正,修订版本放在email的附件中,同时建议多加几个插图。我加了几个插图后,文件尺寸变得很大,email发了很久,还是没有顺利发出。于是我把文件存在U盘上,第二天上班后,拿给同事看,然后进一步修改。 Google的销售人员游说到,“你这样左一个文本,右一个文本,不仅不容易找,而且修改过的内容很容易遗漏。用Google Docs,就可以省掉所有这些麻烦。文本放在Google云计算平台上,无论你是在办公室里,还是在家里,你都可以对同一份文本进行修改。而且你可以与你的同事共享这个文本,他也可以对同一份文本进行修改。” 我问,“万一我不同意同事的修改怎么办?” Google的销售人员回答,“没关系,就像wiki一样,所有修改都有记录。如果需要,你可以恢复旧版本。还有,如果你需要查找几年前你写的另一份文件,你不必记住名字,只要一搜索就可以从故纸堆里找出来。” 于是我心旌动摇,准备建议领导把公司的设计文档全部放到Google Docs里去。这时候,微软的销售人员上门了。“听说你要建议把公司所有机密设计文件,转移到Google Docs中去?不怕Googler偷看呀?” 我说,“Google已经提供了解决方案,给我们所有文件加了密,密钥掌握在我们手里。即便Googler想偷看,他们也看不到。” 微软的销售人员说,“这样就好,安全第一。另外,你们的设计文档格式很简单吗?示意图怎么画,Google Docs有类似于微软Visio那样的工具吗?还有,如果你要比较两份不同的文件有什么差异,Google Docs有没有微软Word那样‘比较与合并’ 等等功能?” 微软反制的着力点在于,Google Docs的所有操作都在浏览器里完成,所有功能都通过Ja分隔vaScript实现。受制于Ja分隔vaScript的限制,Google Docs在功能上,不仅目前赶不上Microsoft Office,而且预计在相当长的未来,也不可能与之抗衡。   【4】云计算大战,Google出招   两军对垒,通常双方阵线连绵数十公里。在发动进攻的时候,很少出现全线推进的情况。相反,进攻往往出现在有限几个突击口上。集结强大兵力,在几个突击口上猛烈打击,期望在敌方阵线撕开缺口,然后向敌方纵深挺进,分割敌人阵线,再逐个合围,各个击破。   巴巴罗萨战役 Operation Barbarossa Courtesy http://upload.wikimedia.org/wikipedia/commons/3/34/Operation_Barbarossa.png 大公司之间竞争也有类似特点,双方都有很多产品与服务,而且功能类似,这就像战争中两军对峙的阵线。当一个公司向对手发动竞争攻势的时候,往往选择少数几个产品,大做广告和其它市场推销活动,以期迅速扩大在相关市场的占有率。这类似于在战争中,选择突破口,集结兵力,发动冲击,企图撕开敌军阵线。 譬如Google Docs,虽说它上线已有相当时日,但是从没有见到Google大规模宣传这个服务。所以Google Docs与Microsoft Office,是对峙的阵线,而不是发动进攻的突击口。 Google在云计算战役中,选择的突破口是什么产品与服务呢?答案,Google gadgets。   Google gadgets Courtesy http://www.elanso.com/U/Db3/b3a49166ba7dcceb2221664c2e6181f1/128317955143437500.gif Google gadgets简化了建网站的工作。每个网页可以视作多个元素集成,譬如上面显示的网页包含6个元素,从左上到右下分别是天气,时钟,日历,YouTube视频,生活小窍门,以及搜索。网页元素,portlet,这个概念早在1999年就已经出现。Google gadgets是portlets的一种实现方式,与其它实现方式相比,Google gadgets的优势是使用方便。 譬如某人想建一个网站,在网站的首页的下方,想插入一个搜索框。他不用担心如何去实现隐藏在页面背后的搜索引擎,他要做的,仅仅是在网页的HTML里,插入几行 Ja分隔vaScript。这几行Ja分隔vaScript,不仅在页面上显示了一个搜索框,而且更重要的是把这个网页与Google的云计算平台联系在一起。每当用户输入搜索请求时,这段Ja分隔vaScript就把用户的请求,转发给Google搜索引擎,然后接收Google搜索到的结果,并显示在网页上。 Google gadgets的意义在于,不再像以往的产品那样,在电脑本地获取服务和内容。Google gadgets的服务和内容,来自于Google云计算平台。譬如以往的时钟,显示的时间是由电脑自己演算出来的。如果系统设置错误,时钟就有可能出错。但是Google gadget的时钟,它的时间不是电脑本地演算的,而是从Google云计算平台索取的。只要Google云计算平台不出错,只要网络链接正常,即便电脑本身的设置出了问题,Google gadget时钟也照样准确。   Google gadgets不仅可以给建网站的人提供便利,基于同样原理,Google又推出了Google desktop gadgets。它给千千万万普通的电脑使用者,带来多样化的,时尚的服务。       Google desktop gadgets Courtesy http://vishnus.name/blog/files/vishnu_yahoowidgetmemoryuse.jpg   有人说,Google gadgets让电脑弱智。因为一旦Google gadgets大行其道,电脑就无需强大的CPU和存储空间,它所需要的无非是浏览器,接收用户的请求,转发给Google云计算平台,云计算平台提供内容与服务,然后浏览器接收这些来自云计算平台的内容与服务结果,并且把它们显示给用户。   其实,企图让电脑弱智的,不仅仅是Google云 计算,早在1996年,Oracle总裁Larry Ellison就提出过网络电脑(Network computer)的构想。网络电脑的功能,仅限于浏览器,而内容与服务来自于网络服务器端。与Google云计算平台不同的是,Larry的构想是,网络服务器端最好是Oracle的数据库以及Oracle的应用服务器。     十多年过去了,Larry的构想没有成为现实,原因有三,   1. Network computer的卖点是便宜,因为与传统PC相比,NC无需昂贵的CPU,内存和硬盘。但是近十年来,PC的价格迅速下跌,NC的卖点失去了吸引力。   2. Larry Ellison设想的,以Oracle Database为核心的网络服务器,没有提供很好的可扩展性,也没有提供大量的有吸引力的应用。   3. 网络带宽的发展,没有超过PC计算能力的发展。   十年后的今日,以Google云计算平台为代表的网络服务器集群,比Oracle Database有了长足的改进。不仅可扩展性更好,而且Google提供了很多能吸引人的服务,譬如搜索,视频(YouTube),地图等等。   同时,虽然网络带宽的发展没有超越PC计算能力的发展,但是至少在很多地区,网络带宽不再是制约网络服务发展的瓶颈。   Network computer失败的三条原因中,两条发生了变化,所以,Google拾起老概念,换上新包装,向微软发起攻势。其战略目标,无非是弱化PC本地计算能力的重要性,增强对Google云计算平台的依赖性。   下一步Google gadgets的发展方向是什么?   请注意,目前绝大多数gadgets都是单向使用Google云计算平台所提供的内容与服务,而缺少促进用户上传新的内容和新的服务的gadgets。   所以,不妨大胆预测一下,Google下一步将非常热衷推出像论坛(forum),维基网页(wikipage)这样的gadgets。通过它们,促进用户给Google云计算平台上传用户生成的数据。   进一步,Google将投入巨大资源,发展AppEngine。AppEngine的用处是方便用户开发新的服务逻辑,并且在云计算平台上运行这些新的服务。但是AppEngine的开发,势必遇到很多技术上的困难。详细分析,我们留给下一篇来讨论。   【5】是云计算,还是云存储?   Gadgets的目标是方便大家建网站。但是单靠gadgets,建网站的工作还是不够方便。   通常网站有三个组成部分,1. 网页,2. 业务逻辑, 3. 数据存储。如果说网页相当于商店,那么业务逻辑相当于车间,而数据存储相当于仓库。商店,车间和仓库三者中,技术含量最高的,当属车间。   因为文件太大,无法让各位看官即刻饱眼福!见谅!各位下附件   吧!各位有查到作者出处,补个贴吧!
  • 热度 16
    2012-10-8 21:19
    1404 次阅读|
    0 个评论
    Ubuntu FCITX 小企鹅后面出现乱码/方块问题      作者:下家山 这里关于怎么在ubuntu下安装中文支持包,安装Fcitx,就不多说了,网上介绍比较多了,我这里只对网上资料遗漏的地方做些补充。 本人原来一直用的SCIM,但是发现有时候输入某些汉字时造成程序(MSNQQ)死掉,于是一气之下把SCIM给删了,然后装了fcitx,第一次看到真正的Linux输入法(有个小企鹅),但是发现怎么按ctrl+space都没反应,根据网上的说法试了很多,最后发现是要在/etc/X11/Xsession.d/下面建立一个文件95xinput 内容如下: export XMODIFIERS=@im=fcitx export GTK_TM_MODULE=fcitx export XIM=fcitx export XIM_PROGRAM=fcitx fcitx 但是,当我写这篇tip时,发现/etc/X11/Xsession.d/下还有个95input文件,我不知是我捣鼓出来的,还是原来有的,我记不清了,如果95xinput不行,就补上这个吧,其内容如下:        XMODIFIERS=@im=fcitx export GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx Fcitx 这样,ctrl+space可以激活了,但是却看不到切换的内容,也就是FCITX 小企鹅后面出现乱码/方块问题。 大家都说在 .fcitx/config文件里 显示字体(中)= 显示字体(英)=Sans 显示字体大小=14 主窗口字体大小=12 字体区域=zh_CN.UTF-8 是否使用AA字体=1 是否使用粗体=1 数字后跟半角符号=1 Enter键行为=2 分号键行为=2 大写字母输入英文=1 转换英文中的标点=1 联想方式禁止翻页=1 的“显示字体(中)=”后面加上某种字体,有的说是加”STHeiti”,,有的说是加”AR PL ShanHeiSun Uni”,但按照别人说的就是不行。那么这些字体是从哪里来的呢? 原来有个命令fc-list,这个命令就会列出系统所支持的输入法,我发现我的列表里有 WenQuanYi Zen Hei,文泉驿正黑,文泉驛正黑:style=Medium,中等 这么一行,于是在“显示字体(中)=”后面加上WenQuanYi Zen Hei,果然ctrl+space后可以看到智能拼音,ctrl+shift可以看到五笔字型等其他的输入法了。        我高兴的太早了。        在我兴奋之余,发现不能翻页。        #gedit .fcitx/config        查看        发现 下面有        上一页=- ,        下一页== .        但是,我怎么组合都没用。        改来改去,最后改成     上一页=,        下一页=.        成功了,其实要翻页只要按键盘上的”点号”就行了,下翻到底自然会上翻。        其实,.fcitx下面还有其他的比较有用的设置,比如去掉打字速率,版本等!    2008-10-28   下家山     写于上海。松江                                      ,有什么问题可以给我邮件ximenpiaoxue4016@sina.com或加我群198204885             
  • 热度 31
    2012-10-8 21:11
    4565 次阅读|
    7 个评论
    最近收到一位初学者的问题,因为比较典型,而且我也做了比较长的回复,所以,贴在这里与大家共勉!   问题:   因为是学计算机的,所以尽管对嵌入式很感兴趣却止步在操作系统和硬件中间的一道坎上。我们对电子的东西一窍不通,甚至都没亲自做过一个连接串口的设备控制器的驱动。   恳请老师给做做启蒙帮忙开窍。我举个例子。假如我现在在淘宝或者电子市场买到一片线阵CMOS,我还能买到一个运行Linux的开发板比如Mini2440,然后我想做的事是自己拼一台扫描仪。那么怎么就能让这个开发板上的系统来驱动CMOS,让它运行。这中间要做什么,CMOS输出的信号是不是还要经过什么处理,最后又以什么样的形式到达串口或者并口或者其他什么接口,然后这个硬件设备又如何注册自己到Linux,Linux又如何通过驱动程序控制设备。比如我现在让它动,给它一个命令,步进电机就能按我要的速度带动这个CMOS运动。   操作系统只告诉编程人员调用系统函数,调用块设备字符设备的读取函数或者写入函数,但写了东西时候怎么进到设备里面?是不是有通用的设备控制器,针对某一种总线买来就能用,而外围设备又怎么搭配这样的设备控制器?CMOS出来的电信号又是怎么安排流入总线进入存储设备等等这些。我甚至都不知道设备控制器还要什么外围辅助的电源吗?还要什么别的控制吗?时序又是怎么确定的,频率多大是哪里决定的等等等等。 所以希望在这里能一步一步学。恳请各位给予指导、启蒙。我想除了这个CMOS扫描仪的例子我也举不出来更好的例子了,希望能有人解答问题。 谢谢!!! 我的回答:   我也是计算机专业毕业的,在嵌入式这个领域,学计算机的其实占有很大的优势,因为他们对OS的理解比电子信息,自动化的要好,当然在底层芯片的工作原理上,却不占优势,但,整个嵌入式领域,OS却是最深奥的!其实,你考虑的很全面和深刻了,如果还在学生阶段,若能尽快动手做些东西,那么你今后应该可以在研发这条路上走得很好!你的这些问题,我没有时间一一作答,下面我举一个简单的通过I2C总线如何读写EEPROM的,例子,希望对你有帮助! 要实现一个这样的功能,首先,你要看你这个要控制的设备的datasheet,搞清楚他的从设备地址,子设备地址,(如果从来没有接触过I2C总线,那么你要研究研究),然后就开始要写驱动了,写驱动当然要熟悉linux驱动架构,linux驱动主要分模块驱动和内核驱动,(通常大家所说的网络设备,字符设备,块设备是说的设备的分类,想必你可以理解),我们这里讲内核驱动,这种驱动在内核起来后会在文件系统dev下面生成一个设备文件,这个设备文件就是应用程序与内核(或者说驱动)沟通的一个纽带,那么怎么实现的呢! 在驱动代码里面,首先要配置I2C总线接口,然后映射虚拟地址,然后设置时钟,这个时钟是CPU这边I2C控制器(master)的时钟,不是你要驱动的那个EEPROM(slave)的时钟,然后就是注册设备文件描述符,建立设备文件了; 好,这个设备文件描述符,是个很大的结构体,其中有大家比较熟悉的函数如:open,write,read,ioctrl等函数,那么这些函数就相当于windows的那套API函数,是给应用程序调用的。这里当然要写一个open函数,一个close函数,还要写一个write,read函数,(具体怎么写,你去参考其他代码) 驱动是为应用服务的, 在应用程序这边,我们就可以调用系统函数open,write,read,close! linux操作系统把我们要控制的设备抽象成了一类对象(文件),所以叫设备文件,既然是文件,对应用程序来说就透明了,应用程序不用去关心驱动是怎么写的,他只要知道这些接口函数该怎么调用就行了,而且象通用的open,write,read函数都是象访问一个文本文件一样,没有什么区别!!!   由这个问题想到的:   我一口气回答完了这个问题,而且写了那么多,但我总觉得还有些东西没有告诉这些初学者!现在其实已经到了中午12:21,但是,这就就像写作文,灵感来了,想一气呵成,所以继续写完吧,也了却了一桩心思!我很热爱研发工作(我曾因用arm7控制image sensor拍出天花板图片而欣喜若狂,想出去表达这种欣喜,晚上10点多,打个的士却不知去哪里玩,最后去网吧打游戏),我在研发之中找到了自信,找到了生命的意义,人一旦有了自信,工作中的,生活中的问题都会有信心去解决,(呵呵,老板听到这样的心声应该在窃喜,因为只有这样的工程师才能做出真正的产品,才会不那么跟他计较待遇,但话又说回来,这样的工程师老板会出高薪强这要)   我做嵌入式9年研发,2年教学,我也从对研发工作的热爱但又不知该如何入手走过来,嵌入式确实涉及面很广,硬件软件(当然我这里说的是底层,就是做driver或BSP,firmware这些职位的,上层应用的严格讲不叫嵌入式工程师),硬件要看懂原理图,IC datasheet,软件要熟悉相关总线协议,呵呵不要被驱动,协议这些字眼吓到。(驱动,就是让某个硬件设备动起来,就是设置里面相关register,裸奔时代其实就是一种驱动,只是大家不那么叫而已,协议,就象看间谍剧里面的地下党接头暗号,简单的很简单,负责的当然很复杂)!   那么嵌入式该如何学呢!现在的很多老师,书籍,培训机构,一谈到驱动,就是虚拟地址什么的,在我看来那是故弄玄虚。所以,在我的教学里面,我从来就不是一上手就跟学生讲什么虚拟地址,首先要让他们有个感性认识,那么什么是感性认识,举个例子!声卡驱动,先也不去讲什么驱动,先移植一个mplayer,先听听美妙的音乐是自己开发板上出来,然后有了这个兴趣,有了这个乐趣之后再去看内核代码,应用程序!而且,这里还有个误区就是,一些初学者,一上手就要自己写驱动,可以说这是不可能的事情,所以,各位如果真想学好嵌入式linux,还是先多看看里面的驱动是怎么写的,只有熟悉了现有的linux驱动架构,你才可以写出自己的驱动!而且,不要贪多,什么驱动都想学,其实先找个比较容易的切入点,把某一种驱动确实搞清楚后,再去拓展也不迟!   裸奔也叫嵌入式哦,因为嵌入式一般都会跑OS,所以,我这里也是跟Linux一起说的!                          2012-9-12   下家山     写于上海。松江                                       本文是我个人意见, 有什么问题可以给我邮件ximenpiaoxue4016@sina.com或加我群198204885
  • 热度 32
    2012-10-8 21:08
    3567 次阅读|
    14 个评论
    作者:下家山(仅代表个人观点) 中国的高速发展离不开高科技,国家连续多年,乃至今后都会高调倡导“自主创新”。高科技产品代表一个国家的发达水平,但中国离发达国家的距离还很长,少说也有20年。很明显的电子产品中,打印机,复印机,数码相机都是日本垄断,大街上,10部轿车就有6部是日本的。其他,各种芯片都是欧美,日韩的。而,我们日常所见,所用的数码产品也都是欧美,日韩的。也许,有人说,中国的联想,TCL,海尔,华为,中兴,创维。。。。。。,也是中国(乃至世界)家电,电脑,手机的品牌。但是,他们没有什么核心技术,他们所用的所有的芯片都是国外的。打个简单的比方,联想从国外买了大大小小三四十个芯片,这三四十个芯片两个香烟盒就可以把它装下,到了国内,通过各类工厂做线路板,机箱,连接线,电源,包装成一台我们现在看到的漂亮的标有Lenovo牌子的电脑,并且再出口。假设这台电脑的售价是5000RMB,但那三四十个芯片(加上各类电容电阻,电容电阻也是国外进口的)的成本大概要2000RMB!这样卖一台电脑的毛利润的2/5是为外国人赚得,也就说他们带过来一小包芯片,我们却要装一大卡车东西跟他们换。更要紧的是,我们的劳动量是他们的上百倍。这单是从硬件方面来说,而从软件方面来说,我们也没有自己的软件,所有的操作系统,开发所用的工具软件,都是国外的!有一句话说的好,一流的企业做标准,二流企业做品牌,三流的企业做产品。我们从事嵌入式开发,所看的资料都是英文,这些资料就是标准,也就是我们只能被别人牵着鼻子走。      我们中国地大物博,人口众多,就任何一个产品的市场来说,没有任何一个国家的市场有我们国家大,所以,世界各公司都瞄准了中国,13亿人口,而且处在经济高速发展时期,人们的购买力越来越强,打开几个国家的市场不如打开中国一个国家的市场。因此,全世界的公司只要能够进入中国就进入中国,并且不同程度上,在中国各地都设有办事处,研发机构,在这些进入中国的企业中,台湾,香港,澳门是最容易进入中国大陆的。中国人多,劳动密集型的各类工厂应由尽有,而且都是廉价劳动力;这样,中国的市场,中国遍地的工厂,廉价的劳动力,是世界各公司最理想的选择。      在这一背景之下,世界各大公司都把研发机构也设在了大陆,这样势必需要大量的研发人员。虽然,中国的大学生很多,而且还找不到工作,但很多公司却又招不到合适的人。为什么会出现这种情况呢?这是中国的教育体制决定的,在中国考取大学难,毕业容易,考取研究生难,毕业容易;但,在国外,考取大学容易,毕业难。因为,在国外毕业设计是非常重视而且考核极其严格的,在离毕业前两年就开始准备毕业设计,并且在各假期前就联系好了实习单位,他们的毕业课题都是些很有难度的!这样在他们毕业后,通过读书期间的假期实习,加之最后的毕业设计,已经为他们打下了很好的实践基础。加之他们各院校都与外面的公司保持着研发设计关系,这样他们的老师会很好的把握社会的实际需要,并带着他们做项目!而,在中国,每个上过大学的人,应该知道是怎么回事!      在各类研发机构当中,嵌入式开发占主要地位,嵌入式涉及到的行业有,手机,数码相机,路由器,交换机,ATM机,IPTV,IP,GPS,POS机,条码扫描器等等,各种电子产品。 嵌入式开发应用领域如此广泛,需要大量的人才充实进去。                                   2012-9-18   下家山     写于上海.松江                                       本文是我个人意见, 有什么问题可以给我邮件ximenpiaoxue4016@sina.com或加我群198204885