尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

BSP的概念

BSP的概念
📅 发布时间:2026/6/19 10:38:22

BSP的概念

在 U-Boot(以及整个嵌入式开发领域)中,BSP(Board Support Package,板级支持包) 是连接通用软件(如 U-Boot 核心、Linux 内核)与具体硬件电路板的“桥梁”,是让通用软件能在特定硬件上正常运行的最小化支持集合。

简单说:U-Boot 的核心是“通用的引导框架”,而 BSP 是为“某一款具体电路板”定制的适配代码/配置,没有 BSP,U-Boot 核心无法识别你的硬件,也无法启动。

一、BSP 的核心作用:让 U-Boot 认识你的硬件

U-Boot 作为嵌入式系统的引导程序,核心功能是初始化硬件、加载内核,但不同电路板的硬件差异极大(比如 CPU 型号、内存、Flash、网卡、串口、GPIO 等)。BSP 的核心目标就是:

  1. 硬件初始化:告诉 U-Boot 如何配置当前电路板的核心硬件(如内存时序、串口引脚、Flash 控制器),让硬件从“上电默认状态”进入“可工作状态”;
  2. 硬件资源映射:告诉 U-Boot 硬件资源的位置(如内存地址、寄存器地址、设备树节点),让 U-Boot 能操作这些硬件(如读写 Flash、通过串口打印信息、通过网卡下载文件);
  3. 适配引导流程:定制与当前电路板匹配的引导逻辑(如从哪个存储介质启动、内核加载地址、传参方式)。

二、U-Boot 中 BSP 包含哪些具体内容?

U-Boot 的源码结构中,BSP 相关代码通常集中在特定目录,核心组成部分如下:

1. 板级配置文件(最核心)

  • 路径:include/configs/<board_name>.h(老版本)或 configs/<board_name>_defconfig(新版本 Kconfig 配置);
  • 作用:定义电路板的关键参数,比如:
    • CPU 型号、架构(如 ARM、RISC-V);
    • 内存大小、内存起始地址(如 CONFIG_SYS_SDRAM_BASE=0x80000000);
    • 串口波特率、串口控制器编号(如 CONFIG_BAUDRATE=115200);
    • Flash 类型(NAND/NOR/eMMC)、容量、地址;
    • 引导相关配置(如默认启动设备、内核加载地址 CONFIG_SYS_LOAD_ADDR);
    • 支持的外设(如网卡、USB、SD 卡)开关。

2. 板级初始化代码

  • 路径:board/<vendor>/<board_name>/(如 board/rockchip/rk3568-evb/,对应瑞芯微 RK3568 评估板);
  • 核心文件:
    • board.c:板级初始化入口(如 board_init() 函数),负责初始化内存、Flash、外设引脚等;
    • lowlevel_init.S(汇编文件):早期硬件初始化(上电后最先执行),比如关闭看门狗、配置时钟、初始化栈,为 C 语言代码运行做准备;
    • 其他外设适配代码(如网卡、eMMC 的板级适配)。

3. 设备树(Device Tree,DTB)

  • 路径:arch/<arch>/dts/<board_name>.dts(如 arch/arm/dts/rk3568-evb.dts);
  • 作用:用“树形结构”描述硬件资源(如 CPU 核心、内存、串口、GPIO 引脚、外设控制器),替代传统的“硬编码”,让 BSP 更灵活(同一芯片的不同电路板可复用大部分 DTS 代码);
  • 注意:U-Boot 会加载 DTB 并解析,后续也会将 DTB 传递给 Linux 内核,是 BSP 中“硬件描述”的核心。

4. 驱动适配(可选)

  • 若 U-Boot 核心自带的通用驱动(如 eMMC 驱动)无法直接适配电路板的硬件细节(如引脚复用、时序参数),BSP 会包含少量驱动补丁或板级驱动适配代码。

三、为什么 U-Boot 必须依赖 BSP?

U-Boot 的核心代码是“通用的”——它不绑定任何具体电路板,支持多种 CPU 架构(ARM、RISC-V、x86 等)和外设类型,但它不知道你手里的电路板:

  • 内存是 512MB 还是 2GB?
  • 串口用的是哪个引脚?
  • 内核存在 eMMC 的哪个分区?

这些“电路板专属信息”都必须通过 BSP 告诉 U-Boot,U-Boot 才能完成硬件初始化并引导内核。

四、实际开发中 BSP 的使用场景

  1. 移植 U-Boot 到新电路板:核心工作就是编写/修改 BSP——基于芯片厂商提供的参考 BSP(如瑞芯微、全志的评估板 BSP),调整配置文件(defconfig)、设备树(dts)和板级初始化代码(board.c),适配自己的电路板硬件;
  2. 修改现有电路板的功能:比如新增一个串口、更换更大容量的 Flash、启用网卡功能,本质上是修改 BSP 中的配置(如打开 CONFIG_ETH 开关)、设备树(添加网卡节点)或板级初始化代码(配置网卡引脚);
  3. 芯片厂商提供的 BSP:芯片厂商(如 NXP、Rockchip)会为自己的芯片配套评估板(EVB)提供完整的 U-Boot BSP,开发者可基于此快速适配自己的产品板(减少重复开发)。

总结

U-Boot 中的 BSP 是“电路板专属的适配层”,包含:

  • 硬件配置(defconfig);
  • 硬件描述(dts);
  • 硬件初始化(board.c、lowlevel_init.S);
  • 外设适配代码。

它的核心价值是屏蔽硬件差异,让通用的 U-Boot 核心能在特定电路板上“即插即用”,是嵌入式引导程序移植和开发的核心环节。

相关新闻

  • 亿级O2O(智能设备)系统架构笔记【原创】
  • 2025年11月中国短视频制作公司排行榜:五强服务与效果评测
  • 2025年11月纯粮白酒品牌评测榜:久久十强对比全记录

最新新闻

  • 高中/高三/高考 回忆录
  • 从晶体管到可编程单元:深入解析FPGA芯片的架构层次与设计哲学
  • 02 代码整洁之道阅读笔记
  • 2026年卫生间漏水维修服务适配指南:昆山鼎壹万防水补漏公司及苏州本地服务商综合适配解析 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • Onekey完整教程:一键解锁Steam游戏DLC的终极方案
  • 2026年南京知名3D效果图制作公司大盘点,你知道几家?

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号