嵌入式偏硬件和偏软件的区别

2024-11-20 07:26:42
推荐回答(2个)
回答1:

如果严格分的话应该属于软。
嵌入式其实就是面向应用、成本功能严格要求的计算机系统。这个系统只要求完成特殊的功能,所以不必要的组件(包括软硬)就被“丢弃”。
如果把计算机划分成3层的话,应该大致是下面的情况:
硬件---》系统---》应用程序
一般来讲硬件部分的工作比较少。(或者应该叫我个人觉得比较少,一次完成后改动很少)
嵌入式的工作主要集中在“系统”和“应用”这个层面上。
系统层面的主要包括bootloader、os的剪裁、移植,驱动开发等等,这一层上很多开发都需要与硬件打交道,说穿了,就是让各种硬件可以“跑起来”。
应用程序就不多说了,和一般应用程序开发一样,只是需要交叉编译而已。
问题补充:系统层面的主要包括bootloader、os的剪裁、移植,驱动开发等等这是不是要求对硬件比较了解,能做到上边的需要哪些前期准备?
个人认为有一定了解就行了,每个组件都有产品说明书,看看就搞定了。说白了的到最后大部分的事情就是操作一下cpu的控制寄存器。前期准备......这个就就不好说了。买点相关书籍当小说看吧,呵呵。最好是买一套开发板自己先摸摸,这样应该最有帮助。
ps:其实嵌入式这个概念很大,除了日常用的pc,其它所有的智能设备都可以叫嵌入式,换句话说,就是叫你从什么都没有开始自己弄一台电脑出来,然后把特定程序放进去跑。所以目前凡是和计算机相关的知识都可以叫准备。

回答2:

一个嵌入式产品,一般分为硬件平台+软件系统
早期的单片机工程师,画电路图、画板子、写程序可以自己单独完成。
而到了嵌入式ARM时代,系统复杂度增大,而且在平台上往往还要跑操作系统
这就导致了一个复杂的嵌入式系统不可能一个人完成,往往需要团队合作与分工。
比如有做硬件方面的,画电路图、画板子,各种器件选材、硬件故障分析等,我们一般称为嵌入式硬件工程师,如此之外,在硬件平台上porting系统的时候,也会跟软件工程师一起工作,帮助解决移植过程中的一些硬件问题。
偏软,我们可以看做是嵌入式软件工程师,专注软件层面开发或业务逻辑开发。根据软件的层次,一般又分为驱动工程师和应用工程师。
应用工程师跟在PC上,现在差别不是很大,不同之处,就是考虑嵌入式平台的人机交互、比如触摸屏、无线连接、各种传感器的应用等。
驱动工程师跟硬件、寄存器打交道就很多了,涉及到Bootloader、系统底层BSP、驱动开发、系统移植等。要求对操作系统、硬件、ARM都有一定了解。