一些嵌入式系统是大规模生产的,受益于规模经济。嵌入式系统控制着今天常用的许多设备,98%的微处理器都是作为嵌入式系统的组件制造的,对于嵌入式驱动开发,个人理解可以主要分为三个层次,初级为自己熟悉模块的工作原理和寄存器操作有深入的认识,可以自己独立开发模块驱动;中级为对整体驱动和SDK的设计有清楚的认知,并能理解设计原理;高级为硬件内核、总线设计、系统内存管理以及嵌入式操作系统有整体认识。
1、什么是嵌入式系统?
嵌入式系统是一个计算机系统,在一个较大的机械或电气系统中具有专用功能,通常具有实时计算约束,作为一个完整的设备的一部分被嵌入,通常包括硬件和机械部件。嵌入式系统控制着今天常用的许多设备,98%的微处理器都是作为嵌入式系统的组件制造的,典型的嵌入式计算机与通用相对应的计算机属性的例子是低功耗,小尺寸,稳定的操作范围和低单位成本。
这是以有限的处理资源为代价的,这使得编程和交互更加困难,然而,通过在硬件之上构建智能机制,利用可能存在的传感器和嵌入式单元网络的存在,既可以优化管理单元和网络级别的可用资源,又可以提供增强的功能,远远超越那些可用。例如,可以设计智能技术来管理嵌入式系统的功耗,数字信号处理器(DSP)是一种常见的标准专用处理器。
由于嵌入式系统专用于特定任务,设计工程师可以对其进行优化,以减少产品的尺寸和成本,并提高可靠性和性能,一些嵌入式系统是大规模生产的,受益于规模经济。嵌入式系统的范围从便携式设备(如数字手表和MP3播放器)到大型固定安装(如交通信号灯,工厂控制器以及复杂系统,如混合动力车辆,MRI和航空电子设备),复杂性从单个微控制器芯片的低端到具有多个单元的高端设备,外围设备和网络安装在大型机箱或机箱内。
2、对于linux驱动开发,尤其是在嵌入式arm上,怎样才能算厉害,比如是做芯bsp?
谢邀,我是剑心,我来回答,对于嵌入式驱动开发,个人理解可以主要分为三个层次,初级为自己熟悉模块的工作原理和寄存器操作有深入的认识,可以自己独立开发模块驱动;中级为对整体驱动和SDK的设计有清楚的认知,并能理解设计原理;高级为硬件内核、总线设计、系统内存管理以及嵌入式操作系统有整体认识。初级阶段:独立模块的原理和寄存器操作作为一名嵌入式初级从业人员,需要对寄存器操作很清楚,知道如何设置、读取和清除比特位,
了解自己负责模块的工作原理,并且能够根据原理图和设计方案,编写模块驱动,对外提供API接口。中级阶段:熟悉驱动总体架构和SDK设计在初级阶段工作一段时间,对于每个模块熟悉以后,需要对模块的总体架构设计有所了解,并清楚底层的驱动API到HAL层,并且到APP层的SDK封装设计原理,高级阶段:清楚内核、总线、内存和操作系统到了高级阶段,你需要了解的就是ARM的内核结构设计,AHB和APB等总线设计,以及时钟分频。
3、嵌入式一年半,现两份offer,一Linux驱动,单片机;二通信协议栈,网络安全产品,怎样选择好些?
谢谢邀请。linux驱动linux驱动,主要写底层代码,各种外设接口调试,需要会用linuxshell指令,能够对linux内核比较熟悉,需要掌握linux底层,以及各类外设接口协议,也需要一定的硬件理论和知识。涉及领域多,产品类型丰富,就业机会和就业岗位多,工资较高,协议栈工程师而通信协议栈,如蓝牙ble协议栈,zigbee协议栈等类似通信协议栈。
做通信协议栈的工程师比linux驱动的人数少,所以有工作经验的人,工资会十分高,去年和一个朋友聊天,为了找一个能写某一款蓝牙芯片固件的人,工资直接开到4万一个月。但同时,整个行业,需求通信协议栈的工程师岗位也相对于单片机和linux的岗位要少很多,主要是通信领域,行业比较专一,岗位机会少,选择性较linux驱动少,相同年限的协议栈工程师比linux工程师的工资要好一些。