一、嵌入式概况

IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

从应用对象上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

嵌入式设备是一台专用的、微型计算机。由三个层次的相关内容组成:

二、嵌入式处理器分类三、嵌入式系统

计算机系统由硬件和软件组成,在发展初期没有操作系统这个概念,用户使用监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬件、软件资源也愈来愈丰富,监控程序已不能适应计算机应用的要求。于是在六十年代中期监控程序又进一步发展形成了操作系统(Operating System)。发展到现在,广泛使用的有三种操作系统即多道批处理操作系统、分时操作系统以及实时操作系统。

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(1)

常见的嵌入式操作系统:μC/OS-II、 VxWorks、嵌入式Linux、Win CE……

四、嵌入式发展前景

嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类:

一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。

另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果这类人对硬件原理和接口有较好的掌握,也完全可以写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以软件研发人员完全不用担心在嵌入式市场上的无用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是趋势。 嵌入式领域较新,发展非常快,很多软硬件技术出现的时间都不太长(如ARM处理器、嵌入式操作系统、LINUX操作系统),大多数人没有条件接触或进入嵌入式行业,更谈不上能有机会接受专业人士的指导。因此,踏进这个行业的难度比较大,嵌入式人才稀缺,身价自然也水涨船高。

权威部门统计,我国嵌入式人才缺口每年50万人左右。根据前程无忧网发布的调查报告,嵌入式软件开发是未来几年最热门和最受欢迎的职业之一,具有10年工作经验的高级嵌入式工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也达到了3000—5000元,中高级的嵌入式工程师月薪平均超过10000元。 做软件实际上有高下之分,开发语言从机器语言、汇编到C、c ,再到红透半边天的Java、C#等,该学哪种呢?为什么有些开发者工资低,而有些开发者千金难求?为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要10k的薪水?

还是门槛,比如月薪15k的Linux嵌入式开发职位,门槛就有 Linux系统、Shell编程、Linux开发环境、C语言、ARM硬件平台、数据结构、linux内核、驱动程序等,粗略数数就有8道关口,他需要非常熟悉整个的计算机体系,能做出实际的产品,而Java的开发者却仅仅是会使用名叫Java的语言工具,始终高高飘在众多层次之上,开发项目非常快,甚至可以不知道OSI模型,很可能自始至终都是软件蓝领。 嵌入式开发本身也有高下之分,至少包含嵌入式应用程序工程师和底层的驱动内核工程师两种。前者同样是使用现成工具进行简单劳动,比如使用J2ME开发小游戏或者进行一些界面开发,而后者是根据芯片具体情况把操作系统(如Linux)移植到上面,同时编写必要的驱动程序,改写相应的内核代码。很显然后者是一个公司真正的技术核心。而技术核心的工资很可能是其他开发者的数倍。

嵌入式开发突出强制和项目,学习不仅仅是学习几项技术,而是构建你的知识体系。比如学习嵌入式开发,就要从基础Linux,C语言,数据结构开始,到ARM,汇编,Linux内核、驱动等,更重要的是更多的项目练习,设计至少5个项目,多达10000行强制核心代码的编写可以让你真正获得知识。为进入外企或者出国做准备。未来的几年内,随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。美国著名未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智能(电脑) 工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,日用范围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。经济型闪存将会成为嵌入式市场的一个方向。

五、我对嵌入式的认识

我目前就读于西安邮电大学计算机科学与技术专业大二。不像一些目标明确、志向远大的同学。我对自己专业所知甚少,大一仅仅局限于学习好课上知识与学校所授课程。学校有许多创新实验室,大二第一学期参与了实验室项目——循迹小车,认识了许多知识丰富、目标远大、进取向上的同学,在他们的带领下,我对嵌入式有了一些初步的认识。

在生活中,许多被冠以“智能”产品,都应用到了嵌入式。嵌入式要求人们对硬件软件都要扎实过硬,并且具有创新能力和创造意识,能够出类拔萃、与众不同。嵌入式未来会是我们的生活越来越智能化。虽然嵌入式很难学,门槛众多,但只要有信心和行动,我相信一定会有收获。

六、为什么学习嵌入式?

1.什么是嵌入式?

2.三次信息化浪潮

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(2)

七、什么人适合学嵌入式?

1.嵌入式开发用到哪些知识?

  1. 第一层次:C语言
  2. 第二层次:ARM汇编、shell脚本、Python脚本、C 、Java
  1. 第一层次:Linux
  2. 第二层次:Android、RTOS(u-cos、Raw-os)
  1. 会看原理图
  2. 懂通信原理及编程(串口、IIC、SPI、USB)
  3. 懂LCD、触摸屏等常见原件工作原理及编程

2.嵌入式开发需要什么技能?

八,嵌入式转内核工程师路线

在建议从事嵌入式开发吗?

作为工作近十年的嵌入式工程师而言,个人不建议从事,如果需要买房结婚,家里没矿。那么,建议别搞嵌入式,嵌入式真心待遇不行,真的待遇不行。别看什么所谓大牛啥的,互联网软件金融算法之类开发,如果你做到那个层次,薪水是同等嵌入式的一倍或者几倍,另外,有几个做到那个层次的?还有就是,现在芯片公司把驱动甚至底层封装的越来越好了,比如海思的,厂家只需要把demo板裁剪裁剪,然后应用玩出花就好了,这样子和嵌入式已经关系不大了。最后,现在,嵌入式应用,尤其出名c的开发机会,已经被Qt,c 挤占了很多。总而言之,嵌入式,尤其纯c的,薪水,工作机会越来越少,和差了。

提升嵌入式底层原理开发,我建议你们去零声教育,专门做底层原理讲解。

文末有学习路线参考!

更多linux内核视频教程文档资料免费领取后台私信【内核】自行获取.

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(3)

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(4)

Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂

哪怎么打破这些困扰呢?

接下来听我一一道来。

主要从

给大家推荐一下内核大神的学习路线

全方面系统全面的讲解底层原理开发技术:

1、五大专题,共计150 个课时

2、20个实战操作模块,2w 代码;

主要从

全方面系统全面的讲解底层原理开发技术:

最新Linux内核大纲

进程管理专题

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(5)

内存管理专题

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(6)

网络协议栈专题

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(7)

设备驱动管理专题

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(8)

文件系统及内核组件专题

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(9)

项目实战

嵌入式从入门到放弃(嵌入式浅谈与学习方法)(10)

适合于

,