嵌入式开发 ------那点故事

[前言]

看到很多人,特别是初学者对 嵌入式 感兴趣,想学嵌入式,但又十分困惑,痛苦, 因此,我觉得有必要抽空写些东西来"普渡众生",当然我不是佛,用"普渡众生"这个词不大合适,但一时也找不到合适的词了,先将就一下吧. 还有就是别叫我大神, 我不是大神,一介草民而已,只不过暂时在这方面懂得比有些人多一点而已,其它方面,他们比我懂,因此,大家是平等的。既然是一介草民,因此,我也不打算遵循那么多条条框 框的限制了。我平生最讨厌教科书以及其它一些所谓"老师"文邹邹的说教,因此,我打算用草民都能听懂的话来写这个嵌入式系列的东西,如果用这种方式你能把 嵌入式搞明白的话,从一个侧面也说明嵌入式其实并不是相象中的那么难,当然也不简单。

"心急吃不了热豆腐",因此,如果你真想要好好理解或者掌握嵌入式,你应该从第一节开始看起。我不喜欢好高骛远的人,作为一个做技术的人,应该有点技术人的心境和品质:能静得下来,脚踏实地一步一个脚印.

我打算从嵌入式最开始写到最结束,当然这只是一个想法,因为全部写完,需要很多很多时间,不清楚有没有那么多时间,毕竟还要养家挣钱阿,谁让投胎时不小心 选择了HARD模式呢。鉴于我辛辛苦苦的敲字,因此,请大家自觉尊重我的版权,欢迎转载,但要注明出处,别把我这个原创给搞丢了,那样我会很伤心的。 --- RE.ER嵌入式学院(杨)。


第一回第1节

    什么是嵌入式技术? 简单通俗直白的说:就是实现嵌入式系统的技术。
    哪什么是嵌入式系统?
    网上或书上泛滥成灾的定义是:嵌入式系统是针对某个应用,软硬件可裁减的,对体积,功耗,成本等等有严格要求的一个计算机系统。看起很复杂很抽象,其实就两点:
    第一,嵌入式系统是一个计算机系统
    第二,嵌入式系统是针对某个应用的,也就是通常所说的“专用的”。
    也就是说,嵌入式系统说白了,就是针对某个应用的计算机系统!
    其它什么的:软硬件可裁减的,对体积,功耗,成本等等有严格要求的这堆修饰词,是做好一个嵌入式系统所需要考虑的因素,注意是做好,做好跟做出来是两码事,当然,真要做好一个嵌入式系统,考虑这些还远远不够,还有其它很多的需要考虑,这个,我计划写完这个系列后,再写个怎么做好嵌入式系统的"章回体",我写了个嵌入式产品研发过程管理系统,这个系统是基于CMMI3规范的,按照哪个系统讲如何做好嵌入式产品开发应该就足够了。

    大家都知道PC,或者笔记本电脑,PC或笔记本电脑是一个计算机系统,只不过是一个通用的计算机系统。通用的意思,是指没有特定的用途,什么都可以干,比如你可以拿笔记本来上网,来听歌,来看电影,来看照片,甚至还可以开发程序,做服务器等等....,反正你想干什么就干什么,没有强制的特定得用途。因此,是通用的,但嵌入式系统是专用的。
    怎么来理解这个专用呢?专用就是针对某个特定的用途。
    举例:
    刚才不是说在PC上可以看照片吗?把看照片的应用扣出来,做成一个计算机,就是针对某个应用的计算机了,作出来后,这个计算机叫什么名字?叫数码像框,电脑城一堆一堆的。按照刚才说的定义,不难看出,数码像框是嵌入式系统!
    把听歌的应用扣出来,做成一个计算机,这个计算机叫什么?叫mp3播放器。mp3播放器是针对听音乐的计算机,因此,mp3播放器也是嵌入式系统!
    把看电影的应用扣出来,做成一个计算机,这个计算机叫什么?叫mp4播放器。mp4播放器是针对看电影的计算机,因此,mp4播放器也是嵌入式系统!
    ......
    从这里,我们可以看得出来PC和嵌入式的一个大致区别了,对嵌入式系统应该也有个大致的印象了.
第一回第2节
   
    但是不是说,嵌入式系统就只能基于PC来应用呢?
    不是,如果只是这样的话,嵌入式就没有存在的必要了,除了来自PC的应用外,嵌入式系统更N的应用,应该就是除PC外的其它各行各业了! 我们吼了好多年的信息化社会,信息化社会,什么是信息化社会? 我认为信息化社会不是指能上个网就是信息化社会,而是所有东西都数字化、信息化,那才叫信息化社会,这个,应该就是嵌入式的用武之地了!
    还是先从每个人都见过的东西入手来说,这样你好理解!
    POS机大家应该都见过把,就是去超市,去家x福和沃x玛买东西时结账收银的那个东西。哪个东西就是POS机,典型的嵌入式系统: 首先,POS机确实是一个计算机,有主板有CPU有操作系统有软件,具备计算机的核心特征,因此是一个计算机。其次,它是针对一个专门应用的计算机,这个专门应用就是结账收银! 按照我们之前对嵌入式系统的定义,不难理解,POS机就是一个嵌入式系统!
    我们把这个POS机(先说原始的大头的POS机)跟PC比较一下。大家对PC都很熟,因此,以PC为参照和基准进行比较!
我们从硬件和软件两方面来比较:
    先说硬件:PC上的硬件有哪些呢?有CPU,内存,显卡,声卡,硬盘,网卡,键盘,鼠标等东西,如果我们要参照PC来做一个POS机的话,该怎么做呢?
    看看POS机上都需要哪些东西:CPU,内存是必须的,网卡、显卡和键盘应该是要的,声卡和鼠标应该就没太大的必要了。因此,如果要基于PC来做POS机的话,就要去掉声卡和鼠标,同时,增加一个显示屏(pos机有两个屏的),一个打印机.去掉一些硬件,加一些硬件,这就是硬件可裁减。硬件要工作,是需要软件支持的,至少需要驱动支持,因此,去掉一些硬件添加一些硬件,软件也必须跟着要去掉一些,添加一些,这就是软件可裁减, 加一起,就是嵌入式系统定义里面的那句话了:嵌入式系统是针对某个应用,软硬件可裁减的,xxxxxx的计算机系统。可裁减的意思理解了吧?
    上面的:xxxxx 是定义中的:体积,功耗和成本。体积和功耗,其实在POS机中感觉还不是太明显,因为这种大头的POS机对体积不敏感,放它的空间有滴是(当然也不能极品的整得太大),对功耗也不是太敏感,交流电供电,每天都要关机发热也不大.这两点在手机之类的手持设备的嵌入式产品中是很敏感的。你的手机做成砖头那么大,估计你就不想买了(除非女同胞防身用),如果功耗很大,充满电只能用1个小时,无论如何你肯定是不会买的,因此,嵌入式系统的定义中,说:对体积和功耗有严格要求,就是这个意思,大致理解了吧?
    再说成本,这个非常敏感。简单举个例你就一下明白了: 假如你是苹果公司的老板,一年卖了1000万部IPHONE,如果iphone的某个元器件能够省10块钱,卖1000万部就节省1个亿,节省出来的钱就相当于是赚的钱,如果实在不想赚钱的话,拿去给员工发奖金也好阿! 因此,嵌入式设备对成本是非常敏感的!

    基于对成本敏感的这一点,你要明白: 我们做嵌入式产品,不是哪个CPU 牛X 就用哪个CPU,而是要综合多方面的因素来选择,arm9能搞定的,就不用arm11,就不用a8,就不用a9。不选贵的,只选对的,然也!

     ---- 一个字一个字的写还是蛮辛辛苦苦的,因此,如要要转载的话,请带上原创哈:RE.ER嵌入式学院(杨)
第一回第三节


还是继续分析一下POS机,通过这个分析,希望得到一些关于嵌入式应用的启发。

在这个地方多花点文字我觉得是值得的。因为,我们学习嵌入 式的目的是什么?我觉得不是为了考试而学,也不是为了学而学,如果是这样的话,那还是别学了,反正纯理论的东西过不了几个晚上就搞忘的,浪费时间、精力和 金钱。我认为,嵌入式的学习应该是为了用而学,也就是说要把所需的知识和技术付诸实际应用,这样才有价值,也只有这样,才能有真正的收获,同意我观点的请 举个手!因此,还是要继续分析一下嵌入式的应用。
没有POS机的时代,结帐收银只能靠纯手工的方式。按照这种方式的话,家X福啊沃X玛什 么的这种巨型超市就别开了,开了也亏本,原因在于结帐是个瓶颈,一天结不了几个人的帐,一天下来也就卖不了多少东西,那还不亏本?因此,POS应用于超市 这个场合,是用计算机代替人工从而提高效率,这个效率的提高,除了表现在结帐本身外,还表现在数字化方式带来的后期统计和分析的快捷。

在这个案例中,一个关键点就是:计算机代替手工,或者说是嵌入式系统代替手工。对,就是它,典型的嵌入式应用思维方式!如果还没理解的话,我换句话来说:你看见什么地方还是手工方式来整的,如果发现了,考虑下,能否做一个嵌入式系统来代替它?想想就激动。
留意一下身边的各种场合各种应用,按照这个思维方式,估计你会获得超过想象的惊喜和机会!机会啊,现在每个人都需要的是:机!会!

还 是回到POS机,我再问个问题,除了这种大型超市外,你还在什么地方见到过?来,一起说说:饭店、宾馆、书店、加油站....,还有呢?还有没有?这不是 无聊,这是有价值的,价值在什么地方?那我换过来问你:什么地方你觉得应该有但还是没有?想想,如果想到了,恭喜你,这就是你的机会!马上整一个POS卖 给他,不就得了。什么?他有特殊要求,特殊就特殊吧,怕什么,你又不是做纯销售做代理的,客户有特殊需求,就开发一个给他不就得了,要不然你学了半天嵌入 式技术是干嘛用的?

这给我们带来什么启发?那就是从应用领域的宽度去挖掘机会,这么一说可大了,工业农业服务业第三产业第四产业第五产业第六产业....自个找去吧

嵌入式的魅力也就在于此
---- 一个字一个字的敲还是蛮辛辛苦苦的,因此,如要要转载的话,请带上原创哈:RE.ER嵌入式学院(杨老师)
第二回第1节

原创:RE.ER嵌入式学院

        [前言】

这是第二回,从今天开始讨论技术。如果没看到第一回的,建议先看第一回(贴吧里面的帖子标题是:打算写部嵌入式的章回体,"普渡众 生". 这是第一回,百度贴吧首发),第一回讲的是嵌入式的应用。为什么要看第一回呢,原因在于:嵌入式是实践性很强的技术,属于工程实战派,对于嵌入式技术的学 习,很重要的一点是要学以致用。我的观点(当然REER嵌入式学院的观点也是)是:学了不用,还不如不学。原因在于:其一,根据遗忘规律,理论的东西过不 了几个晚上就忘了,因此,这样的学习是浪费时间、浪费精力、浪费金钱。其二,真正要掌握知识,必须要做。俗话说:纸上得来终觉浅,绝知此事要躬行,就是这 个道理;第三,知识只有用于实际应用,才有价值,否则,唯一的价值就只剩吹牛了。

言归正传。

原创:RE.ER嵌入式学院

先来回顾一下嵌入式的概念:
嵌入式系统针对某个应用的,软硬件个裁剪的,对成本、功耗、体积等有严格要求的计算机系统。
从这里可以看得出来,嵌入式系统本质上就是一个计算机系统。

PC也是一个计算机系统,因此,从这一点来说,本质上嵌入式和计算机是一回事。既然这样,我们先从大家熟悉的PC入手进行分析。
PC的层次结构相信大家都非常清楚吧:

------------------------
应用层
------------------------
文件系统
------------------------
操作系统内核
------------------------
BIOS
------------------------
硬件(主板)
------------------------

在 这个层次结构中,硬件就是PC的主板,上面包含很多元器件,如CPU,内存,硬盘,显卡,网卡......等。BIOS,就是上电运行的第一个程序,也就 是上电后看到的字符界面, 他完成两个功能,第一是初始化硬件,第二是把操作系统从硬盘加载到内存运行。BIOS运行完之后,就轮到操作系统跑了,操作系统大家都知道 吧,windows xp / windows7 / redhat / ubuntu等等.如果真想做嵌入式开发的话,强烈建议安装一个linux操作系统(ubuntu就不错)。从开发的角度,操作系统内核还可以再细分一 下,这个我们后面说,先别搞复杂了,免得晕。在操作系统层,最下面是操作系统内核。BIOS运行结束后,会启动操作系统内核,内核启动结束后就进入文件系 统,我们的应用程序就是放到文件系统里面的。


这是PC的层次结构,既然嵌入式系统也是计算机系统,因此,嵌入式也应该是这样一个层次结构:

------------------------
应用层
------------------------
文件系统
------------------------
操作系统内核
------------------------
Bootloader
------------------------
硬件(主板)
------------------------

嵌 入式的层次结构与PC有一点不同,从下往上数的第二层:PC叫BIOS,而嵌入式叫Bootloader.什么是Bootloader 呢?Bootloader就是boot + loader,boot就是初始化,loader就是加载,加载内核到内存运行,因此,bootloader和BIOS其实就是一回事(当然,BIOS的 功能比Bootloader要负责很多,因为BIOS中有很强大的配置功能),只是叫法不同而已.

清楚这点后,我们再从开发层面来比较一下两者的区别。

先说PC,以IBM的笔记本为例。
这 台笔记本的开发,硬件(主板)是IBM做的(不管是自己开发的还是外包的,反正你IBM要负责开发好),Bootloader也是IBM开发的,操作系统 内核是微软开发的,驱动可能是IBM开发的(也可能是微软,我不清楚,发正不需要我们来开发)、文件系统也是搭好的。对于绝大多数人来说,唯一需要做的, 就是上层应用层开发,比如web开发,vc,vb,java,.net开发等等。

而嵌入式系统就大不一样了。前面说了,嵌入式是针对某个 应用的计算机系统,因此,不同的嵌入式系统,针对的是不同的应用场合。应用不一样,需求也就不一样。比如POS机和数码相框,POS机需要打印机,数码相 框就不需要打印机。既然需求不一样,那么硬件也就相应的不一样,硬件不一样了,软件也就不一样了(硬件要工作至少需要驱动吧),因此,要开发一个嵌入式系 统,从最底层的硬件到最上层的软件,都需要我们开发。
 未完待续



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值