查看ESP8266 Boot的源代码
←
ESP8266 Boot
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
=== Flash === SPI Flash 非 OTA 系统,分两部分,一部分在 Flash 片内偏移 0x00000 开始处,启动后由片内 Bootloader (XTOS) 自动加载到内存的部分;另一部分为运行时需要的时候再加载到内存的部分,这两部分内存映射地址都定义在 *.ld 链接脚本的 MEMORY 标志下,比如典型的: <source lang=bash> $ head ld/eagle.app.v6.4096.ld MEMORY { dport0_0_seg : org = 0x3FF00000, len = 0x10 dram0_0_seg : org = 0x3FFE8000, len = 0x14000 iram1_0_seg : org = 0x40100000, len = 0x8000 irom0_0_seg : org = 0x40240000, len = 0xBF800 } </source> 则其对应的 Flash 内偏移为: 0x00000 --- 启动自动加载到 RAM 的部分 0x40000 --- 运行需要后再加载的部分 OTA 系统: 0x00000 --- 启动自动加载到 RAM 的部分,boot.bin (OTA 核心实现在这里) 0x01000 --- 4KB 开始,为运行需要后再加载的部分,user1.bin 这两个部分,第一部分是 ESP Firmware 格式 (Little Endian),第二部分实际就是 .irom0.text 直接写入在 Flash 上,且直接映射到内存地址空间。其中 ESP Firmware 格式为: ;;File header <pre> Byte Description 0 Always 0xE9 1 Number of segments 2 SPI Flash Interface (0 = QIO, 1 = QOUT, 2 = DIO, 0x3 = DOUT) 3 High four bits: 0 = 512KB, 1 = 256KB, 2 = 1MB, 3 = 2MB, 4 = 4MB, Low four bits: 0 = 40MHz, 1= 26MHz, 2 = 20MHz, 0xf = 80MHz 4-7 Entry point 8-n Segments </pre> ;;Segment <pre> Byte Description 0-3 Memory offset 4-7 Segment size 8...n Data </pre> ;;Footer The file is padded with zeros until its size is one byte less than a multiple of 16 bytes. A last byte (thus making the file size a multiple of 16) is the checksum of the data of all segments. The checksum is defined as the xor-sum of all bytes and the byte 0xEF. <br>
返回到
ESP8266 Boot
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面