ESP32-C3手动烧录bin文件
本文发布于1200 天前,最后更新于787天前,其中的信息可能已经有所发展或是发生改变。

一、应用程序的启动流程

宏观上,该启动流程可以分为如下 3 个步骤:

  1. 一级引导程序 被固化在了 ESP32-C3 内部的 ROM 中,它会从 flash 的 0x0 偏移地址处加载二级引导程序至 RAM (IRAM & DRAM) 中。
  2. 二级引导程序 从 flash 中加载分区表和主程序镜像至内存中,主程序中包含了 RAM 段和通过 flash 高速缓存映射的只读段。
  3. 应用程序启动阶段 运行,这时第二个 CPU 和 RTOS 的调度器启动。

(摘自:应用程序的启动流程 – ESP32-C3 – — ESP-IDF 编程指南 latest 文档 (espressif.com)

二、烧录内容

共需要烧录三部分内容:

1. bootloader.bin

ESP-IDF 软件引导加载程序 (Bootloader) 主要执行以下任务:

  1. 内部模块的最小化初始配置;
  2. 如果配置了 Flash 加密 和/或 Secure,则对其进行初始化。
  3. 根据分区表和 ota_data(如果存在)选择需要引导的应用程序 (app) 分区;
  4. 将此应用程序镜像加载到 RAM(IRAM 和 DRAM)中,最后把控制权转交给此应用程序。

引导加载程序位于 flash 的 0x0 偏移地址处。

(摘自:引导加载程序 (Bootloader) – ESP32-C3 – — ESP-IDF 编程指南 latest 文档 (espressif.com)

2. partition-table.bin

分区表(partition table )是 ESP-IDF 框架中实现的一种分配 flash 的方式 ,对 spi_flash_{read|write|erase} 等接口进行了封装,增加了越界检查,同时尽量避免了直接操作 flash 地址,所以更加简单安全,但分区表擦写操作本身不具备擦写均衡,如果希望使用分区表存储用户数据,只建议存储不会频繁更改的数据。

3. 应用程序.bin

应用程序对应bin文件。

三、烧录对于地址与指令

内容起始地址
bootloader.bin0x0000_0000
partition-table.bin0x0000_8000
应用程序.bin0x0001_0000

其中COM3为对应的COM口,要根据实际进行修改

python -m esptool --chip esp32c3 --port COM3 --baud 460800 write_flash -z 0x0 bootloader.bin
python -m esptool --chip esp32c3 --port COM3 --baud 460800 write_flash -z 0x8000 partition-table.bin
python -m esptool --chip esp32c3 --port COM3 --baud 460800 write_flash -z 0x10000 应用程序.bin

四、总结

这样的烧录结果与调用idf.py -p COM3 flash的效果一致。

五、附件

本文作者: HUII
本文链接: https://www.huii.top/1744.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自飞一网 !部分图片来源见水印或引用。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇