它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。BSP有两个特点:硬件相关性和操作系统相关性。 设计一个完整的BSP需要完成两部分工作: A、 嵌入式系统的硬件初始化和BSP功能。
嵌入式软件是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式开发可以分为硬件、驱动、内核和应用四个方向。如果希望向嵌入式软件方向发展,Linux+ARM是一个常见的选择。嵌入式Linux开发包括上层应用、系统开发和驱动开发。自学嵌入式时,可以先学习C语言和计算机组成原理,然后是模拟电路和数字电路。接下来学习汇编语言、单片机、操作系统和C++。
软件方面:嵌入式系统工程师,主要表现为工控开发和消费品开发,关于工控开发,以工业控制计算机为例。业内称之为系统级嵌入式开发,以C语言为主要开发语言,系统底层级别的基本碰不到,工程师要做的是实现上层的应用开发。当然有人会说,C语言的开发门槛不低,精通C语言本身就是较高的门槛。
嵌入式开发:偏底层,学好C,单片机也可归类到这里。在实际的项目中嵌入式开发的角色其实也可以分成三种,一种偏硬件的,做的大部分工作可能是画电路板,原理图之类的。另一种偏应用层的,其实和做应用开发的差不多,板子做好以后基本和在PC上开发是一样的。