什么是BSP?理解LINUX BSP 您所在的位置:网站首页 bsp和sdk 什么是BSP?理解LINUX BSP

什么是BSP?理解LINUX BSP

2024-07-17 01:52| 来源: 网络整理| 查看: 265

 

 

BSP(Board Support Package)指板级支持包,可支持操作系统更好地运行于硬件主板。

对于一般的嵌入式系统,硬件部分需要嵌入式硬件工程师设计硬件电路,而新出厂的电路板需要BSP 来保证其能稳定工作,在此基础之上才能进行下一步的软件开发。

BSP 是介于主板硬件和操作系统之间的系统软件之一,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。

BSP 是相对于操作系统而言的,不同的操作系统对应于不同定义形式的 BSP。

例如 VxWorks 的BSP 和 Linux 的 BSP 相对于某一 CPU 来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写 BSP 一定要按照该系统 BSP 的定义形式来写,这样才能与上层 OS 保持正确的接口。

由于 BSP 处于在硬件和操作系统、上层应用程序之间,因此 BSP 程序员需要对硬件、软件和操作系统都要有一定的了解。

1Bring up:

板子刚出厂时是不好含任何软件的,BSP工程师需要结合硬件原理图修改从芯片厂商拿到的参考代码,调试板子,使板子上的操作系统能够正常稳定工作,从而提高一个稳定的开发调试环境,行话叫做“Bring up”。这个过程设计计算机原理、操作系统、处理器架构等,术语BSP工程师最具有价值含量的工作之一。

2赋能外设,提供接口:

经过第一步,板子的CPU和基础的期间已经能正常工作。这个阶段中将使能所有的外设,并为后面要开发的应用程序提供对应的软件控制接口。这个过程实质是对应的操作系统驱动开发的过程,需要掌握硬件的工作原理,操作系统的相关知识。

3开发应用程序

 经过第二步,板子上所有的设备都已经可以正常使用了,这个阶段的任务就是开发应用程序来实现某种特定的功能,应用程序会使用第二步提供的软件接口控制板子上的 设备来完成这一功能。

Linux BSP 板集支持包

Linux Board Support Package(BSP) contains various components as shown in the picture.

Linux板支持包(BSP)包含各种组件,如图所示。

These components work together to create complete Linux system running on NXP’s S32V2 processors.这些组件协同工作以创建在恩智浦S32V2处理器上运行的完整Linux系统。

U-boot

u-boot是一个引导加载程序。It is a boot loader program. 

提供架构和平台支持Provides architectural and platform support

提供最少的驱动程序并执行初始配置Provides minimal drivers and does initial configurations

支持不同的引导流(sdhc/ftp/qspi、安全引导)Supports different booting flows (sdhc/ftp/qspi, secure boot)

 U-boot是什么?

一个通用的引导加载程序一个硬件平台的开源固件Bootloader广泛应用于嵌入式领域

 U-boot它有什么作用?

使电路板在复位后处于正常状态将OS(Linux)映像加载到板上并启动操作系统

U-boot的启动过程:

Reset vector points to SRAMBegins execution in SRAMInitializes UARTChecks info on version numbers, clocks and displays on screenInitializes DDRRelocates itself to RAMContinues execution in RAMInitializes higher level devices : Ethernet, SDHC, etc.Begins command interpreterStarts Kernel

U-boot的启动过程:

将矢量点重置为SRAM在SRAM中开始执行初始化UART检查屏幕上的版本号、时钟和显示信息初始化DDR将自身重新定位到RAM在RAM中继续执行初始化更高级别的设备:以太网、SDHC等。开始命令解释器启动内核

 

 

Linux Kernel

它是真正的Linux内核和操作系统的核心。It is actual Linux Kernel and core of the OS.

提供架构和平台支持Provides architectural and platform support

完全支持设备驱动程序和设备树Full support for device drivers and device tree

继续目标的硬件初始化。Continues the HW initialization of the target. 提供硬件和用户空间接口。Provides HW and user space interfaces.

 Linux Kernel: Device Tree Linux Kernel comes with Device Tree Blob(.dtb) fileA device tree is a tree data structure that describes the physical devices in a system − So, it isolates hardware configuration from actual Linux KernelThis makes Linux Kernel independent of the description of the machine hardware. − This also makes Linux Kernel easy to port to new platforms and removes lot of redundant codeDevice Tree is OS independentSupported platforms: ARM, PowerPC, MIPSDTS format is technically described in ePAPR (Embedded Power Architecture Platform Requirements) specificationDeviceTree    链接---------------------------------》 Linux Kernel: Device Tree

Linux内核附带设备树Blob(.dtb)文件设备树是描述系统中物理设备的树数据结构− 因此,它将硬件配置与实际的Linux内核隔离开来,这使得Linux内核独立于机器硬件的描述。− 这也使得Linux内核易于移植到新平台,并删除了大量冗余代码

设备树与操作系统无关 支持的平台:ARM、PowerPC、MIPS DTS格式在ePAPR(嵌入式电力架构平台需求)规范中有技术描述

 

 

 

Resources http://free electrons.com/ com/+ LXR http://elinux.org/Device_Tree http://elinux.org/Device_drivers https://lwn.net/Kernel/LDD3/ www.devicetree.org/ https://www.kernel.org/doc/Documentation/arm64/booting.txt https://www.yoctoproject.org/

Board Support Package顾名思义,就是板级支持包,说白了就是最底层底层的驱动+与某种操作系统的接口。

学过单片机或arm的都知道驱动,如果这些驱动能够支持某种操作系统(如linux)运行在这个板子上,那么就说它是这个操作系统在这个板子上的bsp。

比如你编译不同版本嵌入式linux操作系统时,低的版本可能只支持到2410,2440,高的支持到6410板子以上,通用的linux已经根据一定标准把流行的几种的硬件板子的bsp都做好了,所以不用开发bsp,但是特殊的板子或者特殊的需求(比如有的功能需要绕开操作系统做到最底层)都需要开发bsp,没有它操作系统运行不了

软件定义汽车时代下,智能汽车软件架构逐步向 SOA 演进_搜狐汽车_搜狐网



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有