大家好,欢迎来到IT知识分享网。
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 SRAM
- Begins execution in SRAM
- Initializes UART
- Checks info on version numbers, clocks and displays on screen
- Initializes DDR
- Relocates itself to RAM
- Continues execution in RAM
- Initializes higher level devices : Ethernet, SDHC, etc.
- Begins command interpreter
- Starts 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
Linux Kernel: Device Tree
- Linux Kernel comes with Device Tree Blob(.dtb) file
- A device tree is a tree data structure that describes the physical devices in a system − So, it isolates hardware configuration from actual Linux Kernel
- This 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 code
- Device Tree is OS independent
- Supported platforms: ARM, PowerPC, MIPS
- DTS format is technically described in ePAPR (Embedded Power Architecture Platform Requirements) specification
- DeviceTree 链接———————————》
Linux Kernel: Device Tree
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 演进_搜狐汽车_搜狐网
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/136656.html