news 2026/5/4 22:23:00

嵌入式知识篇---嵌入式板子上电启动方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式知识篇---嵌入式板子上电启动方式

嵌入式板子(如开发板、ARM板、单片机系统)的上电启动方式,通常由Boot ROM启动引脚电平存储器类型共同决定。以下是常见的几种上电启动方式:

1. 从片内 Flash 启动(Nor Flash / 嵌入式 Flash)

  • 原理:芯片上电后,PC指针直接指向片内Flash的起始地址(如0x08000000 for STM32,或0x00000000 for many ARM),开始执行程序。

  • 特点:最快、最简单;无需外部电路;代码可一次性烧录;芯片出厂或裸板常用。

  • 适用:单片机、RTOS固件、Bootloader第一级。

2. 从 NAND Flash / eMMC / SD 卡启动

  • 原理:芯片内部 BootROM 将 NAND 前4K/8K代码拷贝到内部SRAM中执行,该代码再初始化DDR并从NAND加载更多内容。

  • 特点:容量大、成本低;启动速度较慢(需复制,且NAND有坏块问题);需BootROM支持NAND控制器。

  • 适用:Linux/Android系统,U-Boot常存放在NAND/eMMC。

3. 从 UART / Serial Flash 启动(串行下载模式)

  • 原理:BootROM 等待串口(UART0)收到特定协议(如XModem、YModem)数据,将接收到的代码存入SRAM并执行。

  • 特点:无需预先烧录任何存储器;只能加载有限大小程序(受片上SRAM限制);速度慢。

  • 适用:烧录裸机程序;紧急修复Bootloader;STM32的System Bootloader模式。

4. 从 USB / OTG 启动

  • 原理:BootROM 初始化USB设备控制器,模拟成USB大容量存储或DFU(Device Firmware Upgrade)设备,主机通过USB发送镜像。

  • 特点:比UART快得多;无需存储卡或编程器;依赖主机USB驱动。

  • 适用:烧写eMMC或Flash;现代SoC(如i.MX、Raspberry Pi)的恢复模式。

5. 从 SPI NOR Flash 启动

  • 特点:介于片内Flash和NAND之间:接口简单、引脚少、支持XIP(Execute In Place,可直接执行代码);读取速度适中,写入较慢。

  • 适用:存储Bootloader或简单固件(如BIOS、U-Boot SPL)。

6. 从 Ethernet / PXE / TFTP 网络启动

  • 原理:BootROM或U-Boot内嵌TCP/IP协议栈,通过DHCP获取IP再通过TFTP下载内核镜像。

  • 特点:无需本地存储介质;适合无盘系统、批量部署、调试;需要网络环境及服务器支持。

  • 适用:服务器、树莓派(网络引导)、工业自动化升级。

7. 从外部并行 NOR / SRAM / ROM 启动(旧式或FPGA)

  • 原理:CS/WE/OE等信号直接连接并行存储器,放在总线地址0位置。

  • 特点:占用引脚多、成本高;速度尚可,支持XIP。

  • 适用:DSP、某些FPGA软核、工控板。

8. 从外部中断 / 调试接口(JTAG/SWD)启动(特殊调试模式)

  • 原理:上电后CPU直接挂起,等待JTAG/SWD连接,由调试主机将代码写入ITCM/DTCM并启动执行。

  • 特点:无需芯片内部有代码;用于底层调试和Flash编程初始化。

  • 适用:开发调试、生产烧录。

启动方式通常由 BOOT 引脚选择

BOOT0BOOT1启动介质典型芯片
0X主FlashSTM32
10System Memory (UART Bootloader)STM32
11SRAM (调试)STM32

在ARM/Linux SoC中(如i.MX6、RK3399):

  • BOOT_MODE[1:0] = 00 → Fuse 决定启动顺序

  • = 01 → Serial Downloader (USB/UART)

  • = 10 → Internal Boot (eFuse预配置的Flash/SD/eMMC)

Mermaid 总结框图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 22:20:46

Python 爬虫高级实战:爬虫黑白名单机制与智能过滤

前言 在大规模集群爬虫、多目标站点批量采集、全网数据抓取以及跨境多源数据汇聚场景下,无差别请求与无规则数据采集会引发一系列严重工程问题:高危违规站点接入、无效垃圾链接泛滥、重复数据冗余采集、反爬风控批量触发、恶意请求导致 IP 封禁、违规内容合规风险激增。传统…

作者头像 李华
网站建设 2026/5/4 22:19:53

如何用Happy Island Designer轻松设计动物森友会完美岛屿:完整指南

如何用Happy Island Designer轻松设计动物森友会完美岛屿:完整指南 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Anim…

作者头像 李华
网站建设 2026/5/4 22:17:02

保姆级教程:用PyTorch复现LSS的Lift模块,搞懂BEV感知的2D转3D核心

从零实现LSS的Lift模块:PyTorch实战BEV感知的2D-3D转换核心 在自动驾驶的感知系统中,BEV(鸟瞰图)视角正逐渐成为主流范式。它像为车辆装上了"上帝之眼",让算法能够穿透遮挡,统览全局路况。而实现…

作者头像 李华
网站建设 2026/5/4 22:14:26

Vibe Coding:动态风格编码与迁移的AI视频生成技术实践

1. 项目概述与核心价值最近在折腾一个挺有意思的玩意儿,叫“skonto/vibe-coded”。乍一看这个项目名,可能有点摸不着头脑,但如果你对AI生成内容、特别是视频和动态图像生成感兴趣,那这个项目绝对值得你花时间研究一下。简单来说&a…

作者头像 李华
网站建设 2026/5/4 22:14:26

CoPaw智能体技能钩子开发指南:从事件系统到安全监控实战

1. 项目概述与核心价值如果你正在使用或开发基于 CoPaw 框架的智能体,并且希望为你的技能(Skill)增加一些“自动化”或“拦截”能力,比如在智能体开始推理前做个安全检查,或者在执行特定命令时记录日志,那么…

作者头像 李华
网站建设 2026/5/4 22:11:29

从零实现ChatGLM对话模型:Transformer架构与自注意力机制详解

1. 项目概述:一个轻量级、可复现的ChatGLM对话模型实现 最近在开源社区里,一个名为 benjitrosch/chatGL 的项目引起了我的注意。乍一看标题,很容易让人联想到清华智谱AI那个知名的ChatGLM系列大模型,但点进去仔细研究后&#xf…

作者头像 李华