今日科普|嵌入式芯片启动过程
### 嵌入🎲式芯片启动过程

启动过程的起点:ROM中的固件
当我们按下电源开关,嵌入式芯片是如何从沉寂中苏醒,开始执行第一行代码的呢?这一切的奥秘,其实都藏在芯片内部的ROM(只读存储器)中。ROM中预先🎈网页版烧录了芯片最基础的软件,也就是所谓的Boot ROM或者ROM Code。在X86架构的老前辈8086芯片中,当电源稳定后,Reset引脚接收到电平跳变,一系列电路动作会让代码段寄存器CS恢复为0XFFFF,指令指针寄存器IP恢复为0X0000,它们组合成的20位地址正好指向ROM中存放的第一条代码的位置。这个过程对于ARM架构的芯片来说也是类似的,32位芯片在通电后,PC指针寄存器复位至零地址,随后从中断向量表的reset向量处获取下一个跳转的地址。
BootLoader:接力赛的选手
虽然Boot ROM是芯片启动的起点,但它并不直接启动我们的应用程序或操作系统。这时,BootLoader(自举加载程序)就登场了。BootLoader就像是接力赛中的选手,它负责从Boot ROM手中接过“接力棒”,继续引导系统的启动。以运行嵌入式Linux的SoC为例,它的操作系统、文件系统和应用程序通常存放在NAND Flash中。在启动过程中,Boot ROM会先将一部分代码搬运到SRAM中,这部分代码就是Boo🈁tLoader。BootLoader进一步初始化外部DRAM,然后将操作系统内核搬运到DRAM中去运行。值得注意的是,BootLoader并非一成不变,开发人员可以根据需要对它进行定制,以实现特定的启动需求和功能。
启动模式的多样性:以STM32为例
不同嵌入式芯片可能有不同的启动模式,这主要取决于芯片的架构和设计。以STM32系列芯片为例,它支持多种启动模式,包括从主闪存存储器启动、从系统存储器启动和从片上SRAM启动。主闪存存储器启动是我们最常用的模式,程序通常下载到这里,重启后也直接从这里启动。系统存储器启动模式则是由厂家设置的,一般用于从串口下载程序。而片上SRAM启动模式则主要用于程序调试,因为SRAM没有程序存储能力。STM32的启动模式通过BOOT0和BOOT1引脚电平状态来选择,启动模式只决定程序烧录的位置,加载完程序之后会有一个重映射,真正产生复位信号时,CPU还是从开始位置执行。
嵌入式芯片的启动过程是一个复杂而精细的过程,它涉及硬件与软🔴网页版件的协同工作。随着技术的不断发展,启动过程也在不断优化和完善。例如,一些高端芯片现在支持BootROM验签功能,以确保启动代码的安全性和完整性。此外,随着物联网和边缘计算的兴起,嵌入式芯片的启动过程也面临着新的挑战和机遇。如何在保证启动速度的同时,提高系统的安全性和可靠性,将是未来嵌入式芯片启动技术发展的重要方向。
相关产品 >
-
FET4418-C核心板
S5P4418核心板基于三星四核Cortex-A9 S5P4418方案设计。S5P4418核心板强大的多媒体性能,支持双屏同显异步显示。S5P4418核心板320PIN引脚将CPU资源全部引出,扩展更丰富。如需S5P4418解决方案,S5P4418多媒体解决方案,S5P4418硬件方案,可咨询400-885-3357咨询客服。 了解详情
-
FET3568-C核心板
RK3568性能强而稳 国产芯|嵌入式RK3568系列核心板,采用瑞芯微国产高性能AI处理器RK3568设计生产,RK3568兼具CPU、GPU、NPU、VPU于一身,RK3568 性能、性价比在同类产品中具有较高优势,RK3568处理器是一款定位中高端的通用型SoC, RK3568核心板主要面向工业互联网、HMI、NVR存储、车载中控、工业网关等领域。目前RK3568系列已经批量稳定出货
了解详情

