b52ed34f82173fcdda7534a6b181c102.png嵌入式开发从大类上来说,主要分为两类:1)嵌入式硬件开发;2)嵌入式软件开发。对于嵌入式硬件开发而言,硬件是必须要懂得,因为涉及到电路原理图的设计。对于嵌入式软件而言,如果细分的话,又可以分为驱动开发和软件开发。这两者都需要一定的硬件知识,所以,嵌入式开发有必要学习硬件。1嵌入式硬件开发嵌入式硬件开发的工作就是根据用户需求、产品经理的要求,设计技术方案并细化技术方案,设计电路原理。这个过程包括技术方案的提出、技术方案的评审、硬件芯片/元器件的选型、技术方案原理的实施等。毫无疑问,硬件开发必须要懂硬件,而且是精通。61348d2f7adf4c0d6676f8e2bc1af005.png2嵌入式驱动开发这个职位在大公司里是有的,在小公司可能就取消了。这个岗位的工作职责就是编写驱动程序。什么是驱动程序,就是介于硬件和软件之间、将硬件接口形成软件指令/代码。方便程序员去调用,这样就避免了程序员直接去理解硬件原理,只需要调用相应的驱动接口即可。如下图,要让继电器动作,单片机必须输出高电平,驱动开发就是将该过程形成一个接口:JDQ_ON;JDQ_OFF,程序员在驱动继电器时,直接调用JDQ_ON或者JDQ_OFF,就可以了,从而忽略了硬件。

b1ee73769c423217858716a090a6f3fe.png

这个职位是为软件开发服务的,要熟悉硬件接口,知道硬件的工作过程,并形成可调用的代码。所以,必须要懂硬件。3嵌入式软件开发该职位,其实已经是程序员的范畴,但是与上位机程序员、网站程序员相比,该职位还是偏硬的,因为该职位是对硬件编程,所面对的平台是工控板,是单片机、ARM、DSP等,只不过,所用的硬件接口都被驱动开发者做好了,控制硬件时只需要调用驱动接口就可。在小公司,驱动开发和软件开发是放在一起的,甚至在更小的公司硬件设计、驱动设计、软件设计都是一个人在做,软硬通吃。所以,嵌入式软件开发还是要懂一些硬件。

395b823976b7dcdb17a6297bf3982457.png

所以,对于硬件而言,即使你是软件开发者,也要懂一点硬件,可以不会设计电路,但是一定要能看懂电路。应为驱动开发者,如果犯一点小错误可能就导致软件开发者调试好久,如果懂硬件的话,可能就能及早地发现问题所在。所以,即使是嵌入式软件开发者,也要懂一定地硬件。ab098f0473faed7171b346531ea87e23.png
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐