您的位置 首页 java

嵌入式浅谈与学习方法

一、 嵌入式 概况

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

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

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

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

  • 1)硬件,包括 CPU (如ARM)、存储(如flash)、I/O(显示模块、通讯模块、视音频模块、I/O控制电路等)。
  • 2)系统级软件,主要是操作系统也就是 OS ,以及I/O软件如LCD、 蓝牙 、WIFI、CDMA、声音等子系统。
  • 3)应用软件,如基于 LINUX 的应用开发,基于Android的应用开发,基于iOS的应用开发等。

二、嵌入式处理器分类

  • 嵌入式微处理器 (单板机)
  • 嵌入式微控制器 单片机
  • 专用处理器(DSP等)
  • 嵌入式片上系统(SOC、SOPC)

三、嵌入式系统

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

嵌入式浅谈与学习方法

常见的嵌入式操作系统:μ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.什么是嵌入式?

  • 传统定义(狭义嵌入式):以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
  • 当前定义(泛嵌入式):除PC之外的一切计算机系统。

2.三次信息化浪潮

  • 第一次 浪潮 1980年前后 个人计算机 信息处理
  • 第二次浪潮 1995年前后 互联网和移动通信网 信息传输
  • 第三次浪潮 2010年前后 物联网、云计算和大数据 信息爆炸
嵌入式浅谈与学习方法

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

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内核视频教程文档资料免费领取后台私信 【内核】 自行获取.

嵌入式浅谈与学习方法

嵌入式浅谈与学习方法

哪怎么打破这些困扰呢?

接下来听我一一道来。

主要从

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

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

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

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

主要从

  • 进程管理 专题
  • 内存管理 专题
  • 网络协议栈专题
  • 设备驱动管理专题
  • 文件系统及内核组件专题

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

最新Linux内核大纲

进程管理专题

嵌入式浅谈与学习方法

内存管理专题

嵌入式浅谈与学习方法

网络协议栈专题

嵌入式浅谈与学习方法

设备驱动管理专题

嵌入式浅谈与学习方法

文件系统及内核组件专题

嵌入式浅谈与学习方法

项目实战

嵌入式浅谈与学习方法

适合于

  • 1.从事业务开发多年,对底层原理理解不够深入的在职工程师
  • 2. 从事嵌入式方向开发,想转入互联网开发的在职工程师
  • 3. 从事Qt/ MFC 等桌面开发,薪资多年涨幅不大的在职工程师
  • 4. 从事非开发岗位(算法岗,运维岗,测试岗),想转后台开发岗位的在职工程师
  • 5. 工作中技术没有挑战,工作中接触不到新技术的在职工程师
  • 6. 自己研究学习速度较慢,不能系统构建知识体系的开发人员
  • 7. 了解很多技术名词,但是深入细问又不理解的工程师
  • 8. 计算机相关专业 想进入大厂的在校生(本科及以上学历,有c/c++基础)

文章来源:智云一二三科技

文章标题:嵌入式浅谈与学习方法

文章地址:https://www.zhihuclub.com/187640.shtml

关于作者: 智云科技

热门文章

网站地图