【esp32】1.2 芯片介绍与启动log分析

📅 发布时间:2026/8/29 15:39:02
【esp32】1.2 芯片介绍与启动log分析 目录一、性能对比和芯片特点二、新建工程vscode新建示例工程三、启动log一、性能对比和芯片特点SRAM是总共的ram IRAM-指令ram、DRAM-数据ram Cache缓存 RTC ramROM 的主要功能是存储芯片的启动代码Bootloader。提供芯片内部固件例如 WiFi、蓝牙协议栈。提供部分低级驱动程序和支持库。cmake 生成ninjia文件(类似makefile)ninja执行类似make构建系统、执行编译任务编译器IDF xtensa GCC项目与IDF框架的关系独立通过环境变量引导编译链接二、新建工程vscode新建示例工程三、启动log06-21 16:17:01:289 ESP-ROM:esp32s3-20210327 06-21 16:17:01:299 Build:Mar 27 2021 06-21 16:17:01:303 rst:0x15 (USB_UART_CHIP_RESET),boot:0x2a (SPI_FAST_FLASH_BOOT) 06-21 16:17:01:305 Saved PC:0x4037e6a2 // 复位前cpu执行的代码地址 06-21 16:17:01:306 SPIWP:0xee // spi write protect 06-21 16:17:01:309 mode:DIO, clock div:1 // 双线spi模式 06-21 16:17:01:312 Valid secure boot key blocks: 0 06-21 16:17:01:316 secure boot verification succeeded 06-21 16:17:01:319 load:0x3fce2980,len:0x39cc //0x3fce2980属于 DRAM数据RAMBootloader 从 SPI Flash 复制 14.5KB 数据到 DRAM。 06-21 16:17:01:321 load:0x403c8700,len:0x4 //属于 IRAM指令 RAM存储关键配置或跳转指令。 06-21 16:17:01:322 load:0x403c8704,len:0xcb8 //加载 3.2KB 代码或数据到 IRAM通常是二级 Bootloader 的后续部分。关键硬件初始化代码如时钟配置。 06-21 16:17:01:325 load:0x403cb700,len:0x52e8 //IRAM的另一个区域加载主应用程序的代码段如main函数或RTOS调度器这部分代码需要低延迟执行因此放在 IRAM。 06-21 16:17:01:328 entry 0x403c8914 //入口地址,CPU 开始执行的第一条指令位置。用户程序的Reset_Handler初始化堆栈、硬件。最终调用main() 06-21 16:17:01:331 [0;32mI (71) boot: ESP-IDF v5.3.1 2nd stage bootloader[0m // 二阶段的Boot 06-21 16:17:01:337 [0;32mI (71) boot: compile time Mar 31 2025 16:52:34[0m 06-21 16:17:01:342 [0;32mI (71) boot: Multicore bootloader[0m 06-21 16:17:01:345 [0;32mI (74) boot: chip revision: v0.1[0m 06-21 16:17:01:350 [0;32mI (78) boot.esp32s3: Boot SPI Speed : 80MHz[0m 06-21 16:17:01:355 [0;32mI (83) boot.esp32s3: SPI Mode : DIO[0m 06-21 16:17:01:361 [0;32mI (87) boot.esp32s3: SPI Flash Size : 16MB[0m 06-21 16:17:01:367 [0;32mI (92) boot: Enabling RNG early entropy source...[0m //硬件随机数生成器RNG为后续安全功能如加密、Wi-Fi MAC地址生成提供熵源。 06-21 16:17:01:405 [0;32mI (98) boot: Partition Table:[0m 06-21 16:17:01:419 [0;32mI (101) boot: ## Label Usage Type ST Offset Length[0m 06-21 16:17:01:430 [0;32mI (108) boot: 0 esp_secure_cert unknown 3f 06 0000d000 00002000[0m 06-21 16:17:01:443 [0;32mI (116) boot: 1 nvs WiFi data 01 02 00010000 001eb000[0m 06-21 16:17:01:459 [0;32mI (124) boot: 2 nvs_keys NVS keys 01 04 001fb000 00001000[0m 06-21 16:17:01:475 [0;32mI (131) boot: 3 otadata OTA data 01 00 001fc000 00002000[0m 06-21 16:17:01:492 [0;32mI (139) boot: 4 phy_init RF data 01 01 001fe000 00001000[0m 06-21 16:17:01:509 [0;32mI (146) boot: 5 ota_0 OTA app 00 10 00200000 00200000[0m 06-21 16:17:01:523 [0;32mI (154) boot: 6 ota_1 OTA app 00 11 00400000 00200000[0m 06-21 16:17:01:539 [0;32mI (161) boot: 7 fctry WiFi data 01 02 00600000 00010000[0m 06-21 16:17:01:565 [0;32mI (169) boot: 8 filedata unknown 3e 06 00610000 009f0000[0m 06-21 16:17:01:573 [0;32mI (176) boot: End of partition table[0m //加载固件时的详细分段信息 /* paddr物理地址Flash 中的存储位置。 vaddr虚拟地址加载到内存后的运行位置。 size段大小16进制 十进制字节数。 map仅映射到内存如代码段通过 Flash Cache 执行。 load需加载到 RAM如数据段或 IRAM 代码。 补充 map: 表示该段仅映射到内存但不从Flash加载到RAM例如代码段可以通过Flash Cache直接执行即CPU通过缓存读取Flash中的代码而无需将代码复制到RAM。 load: 表示该段需要从Flash加载到RAM中例如数据段初始化的全局变量或需要高速运行的代码如中断处理程序被加载到IRAM内部RAM中。 */ //代码段Flash → 内存映射,0x00200020从 Flash 的 2MB 偏移开始。 06-21 16:17:01:584 [0;32mI (181) esp_image: segment 0: paddr00200020 vaddr3c140020 size3dbe0h (252896) map[0m //数据段Flash → DRAM,已初始化的全局变量.data 段。 06-21 16:17:01:592 [0;32mI (240) esp_image: segment 1: paddr0023dc08 vaddr3fc9a100 size02410h ( 9232) load[0m //大容量代码段Flash → 内存映射可能是大型库代码如 Wi-Fi/BLE 协议栈。 06-21 16:17:01:609 [0;32mI (242) esp_image: segment 2: paddr00240020 vaddr42000020 size130da0h (1248672) map[0m //数据段Flash → DRAM,更多全局数据或静态变量 06-21 16:17:01:802 [0;32mI (494) esp_image: segment 3: paddr00370dc8 vaddr3fc9c510 size04274h ( 17012) load[0m //IRAM 代码段Flash → IRAM,必须放 IRAM 的代码如中断处理、RTOS 调度器。 06-21 16:17:01:824 [0;32mI (498) esp_image: segment 4: paddr00375044 vaddr40374000 size16044h ( 90180) load[0m //未使用的填充段 06-21 16:17:01:839 [0;32mI (521) esp_image: segment 5: paddr0038b090 vaddr00000000 size04f40h ( 20288) [0m /* 加密相关 */ 06-21 16:17:01:857 [0;32mI (526) esp_image: Verifying image signature...[0m 06-21 16:17:01:873 [0;32mI (526) secure_boot_v2: Verifying with RSA-PSS...[0m 06-21 16:17:01:886 [0;32mI (532) secure_boot_v2: Signature verified successfully![0m // 加载应用程序 06-21 16:17:01:899 [0;32mI (544) boot: Loaded app from partition at offset 0x200000[0m 06-21 16:17:01:912 [0;32mI (544) secure_boot_v2: enabling secure boot v2...[0m 06-21 16:17:01:928 [0;32mI (547) secure_boot_v2: secure boot v2 is already enabled, continuing..[0m 06-21 16:17:01:953 [0;32mI (554) boot: Checking flash encryption...[0m 06-21 16:17:01:959 [0;32mI (559) flash_encrypt: flash encryption is enabled (1 plaintext flashes left)[0m 06-21 16:17:02:773 [0;32mI (566) boot: Disabling RNG early entropy source...[0m // nvs 无数据读出error 06-21 16:17:02:791 [0;31mE (1664) NVS: Nvs read data 0 err 4354[0m 06-21 16:17:02:818 [0;31mE (1666) NVS: Nvs read data 1 err 4354[0m 06-21 16:17:02:843 [0;31mE (1668) NVS: Nvs read data 2 err 4354[0m 06-21 16:17:02:889 [0;31mE (1669) NVS: Nvs read data 3 err 4354[0m 06-21 16:17:02:898 build time : 20250530 17:09:47