各位朋友大家好~ 不管是刚入行嵌入式,还是想往嵌入式方面深入探索,建议您仔细阅读这篇文章,会受到很多启发!
  很多人都以为做嵌入式开发要比做上层应用轻松得多,原因:
  1、上层应用开发项目一个接着一个
  2、上层应用开发代码量庞大
  3、上层应用知识更新太快,需要不断学习
  4、上层应用.......
  其实做嵌入式开发很累,为什么这么说呢?
  嵌入式系统设计包括硬件系统设计与软件系统设计,其中硬件系统设计分为:器件及芯片的选型、原理图设计、PCB板设计,然后制板、焊接。
  这其中遇到的问题不是很复杂,因为芯片本身出现问题的可能性不大,芯片的一切都是由厂家封装好了的,设计人员主要工作是根据电路的功能选择各种元器件、连接器件,在进一步根据器件之间的兼容与协调性选择合适参数的器件,以及进一步提高其抗干扰性能。
  嵌入式软件系统设计比较繁琐,软件系统设计分为:
驱动程序设计
通讯管理程序设计
上层应用功能程序设计
  一、驱动程序设计
驱动程序设计又可再分为2个方面。
  1、硬件驱动模块寄存器配置程序设计(启动与关闭硬件功能的各种配置)。
  我们需要使用哪些硬件模块的哪些具体功能,我们可以通过配置硬件提供的接口寄存器来打开或关闭硬件各个分立功能。
  这里是指打开或关闭硬件的意思,当然也包括通过配置接口寄存器完全实现驱动层功能的(如定时计数器中断服务程序) 这部分程序设计调试起来也很麻烦,比如当你按照厂商提供给你的配置文档的要求进行配置了,但是中断里面出了很多错误或者中断根本就没运行起来,这时你也许会想是不是配置错了、是不是硬件连接有问题、是不是芯片坏了(可能性小,但也会发生)、 厂商给你的电路图上某根线是应该置高电平的但是你却没置从而影响了硬件模块的打开而出错。
  你需要借助万用表来测下电压电流参数是不是符合元器件要求,你需要用示波器捕捉数据电平是否正确!等等.....
  要进行这些程序的设计你必须先学习你所使用的各个芯片所提供的直接文档(文档里面有各种参数,和协议,电路图,杂七杂八的等等.......),
  如果你遇到这些问题,上网搜,一般都很难找到比较好的解决方法,因为相对来说,与硬件有关的程序设计问题网上少得很或者根本就没有,即使有,你拿来也基本上就不能用,也难以看懂,况且芯片那么多又不一样!
  2、驱动程序功能性设计亦即管理硬件层面上数据读写的协议实现,驱动程序的封装、接口设计。
  然而在驱动程序的设计过程中调试是最辛苦的一方面。
  比如在设计总线驱动程序时,我们必须根据元器件厂商提供的协议(通过硬件获取和写入数据的控制协议)来写读寄存器从而获得我们想要的数据。但是在实现协议的过程中我们 会遇到很多不确定的调试因素,如我们向总线传数据的时候,程序单步执行确实通过了,但是结果却不是我们所期望的,那么 ,现在解决这个问题光从程序的层面入手将会很困难,我们需要确定通过执行驱动程序,数据到底有没有送 往总线!光看程序是执行了,但是数据就有可能没有送往总线,而导致错误!
  那么用示波器查看总线上的电平(由数据决定),再结合提供的协议,便能很快地定位问题的所在,达到对协议更好、更快、 更优的正确编程。
  二、通信管理程序设计
通信管理程序设计又分为:
  1、数据链路层协议的程序设计(如电力系统中的DL645、102规约,以及各个硬件厂商所提供的特定协议)包括帧的封装、与拆分、数据校验,数据通道的有效连接、建立、退出,数据的有效性传输等。
  这些程序的设计与调试主要是根据提供的协议,并且还需要对协议进行封装、把协议做成接口的形式。
  2、主机与其他主机之间的通信管理程序,这个可能就是大家用得比较多的TCP/IP协议了,Socket编程。
  三、上层应用功能程序设计
大多类似于客户端,以及各种界面的程序设计。但是由于是嵌入式系统,因此资源有限,不像PC那么多。同时你又要熟悉你所应用的
  嵌入式系统的原理及其提供给你的各种API库,调试起来也困难.......
  如果你做的是基于嵌入式操作系统的驱动程序设计的话,那么就有的烦了!
  这样在调试的时候又多了许多方面的难度:操作系统的移植、裁减(定制)、BSP........ 这其中涉及到的嵌入式实时系统的原理、汇编、内核接口函数, 等等等.... 一旦出现问题你就整天窝在上面吧..... 如果忽略(不存在)硬件问题那还好很多!
  简直就是跟革命似的............
  就吐槽到这里了,其实还能吐槽更多,现在很多程序员都说做嵌入式好,其实觉得做IT行业都一样,95步笑100步,苦得很!整天跟电脑打交道,傻呼呼的..........
  就算你现在不傻,时间长了也会变傻的!你不要不信,不要以为自己搞的是技术,自以为比较高点什么的.......
  还不苦得要死么,老要加班......
  看我们公司搞技术的几位领导,要么是研究所里干了10几年出来的,要么是重点大学的教授,到头来,连个像样的小车都没有.....
  而且他们个个还自负得不得了,不过跟他们在一起喝酒应酬时,发现他们这方面不怎么样,而且谈个业务总喜欢跟人家扯半天技术什么的.......
  现在大学毕业生出来虽然现状都差不多,但是你们大家千万不要气垒,做什么事都要有点自信就行了.... 因为你们具备的是一种学习的能力,
  一定要把这种学习能力运用好,也不一定非得要搞什么技术,其实在中国一直搞技术的人都已经傻了....
  以上这些,只是个人吐槽,估计这也是很多嵌入式er的心理话............
  it行业,不管兴趣如何,都很枯燥无聊.......
  20几岁本应该是人生最灿烂的时光,但是整天对着电脑,对着板子,自言自语,敲敲打打...长此以往不傻才怪.....
  相信大家都有同感........
  况且现在做技术性价比普遍不高.... 个人认为这是影响嵌入式er归属感的一个主要原因。
  想想看,如果你的回报是一个比较标准的层次,那么你就能掌握更多的资源,有了更多的资源你可以去做其他更多的事情, 这样也有利于自己进一步发展........
  做嵌入式的朋友们一定要勇敢的去维护自己的权益..... 全面的发展自己,因为我们还有比较强的学习能力,路就在脚下,你只需要有勇气和信心踏出去第一步就行了,不信你试试?