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