以esp32-s2开发需要了解的地方(esp32-s2为例)

本文详细解读ESP32-S2芯片的系统复位阶段GPIO设置,包括Strapping管脚作用、片上存储结构、地址映射、时钟配置,以及如何编写入口函数和理解分区表。特别关注GPIO在不同功能中的应用和内存布局优化。

1.系统f复位阶段需要关注的GPIO

ESP32-S2 系列芯片共有 3 个 Strapping 管脚(GPIO0,GPIO45,GPIO46),这几个IO口默认都是内部上拉/下拉的,在芯片的系统复位(上电复位、RTC 看门狗复位、欠压复位、模拟超级看门狗 (analog super watchdog) 复位、晶
振时钟毛刺检测复位)过程中,这3个GPIO的状态会被写入锁存器中,直到MCU关机。

在这里插入图片描述

  • GPIO45:用来选择外部flash的供电电源,此外如果flash是1.8V的话,那么其它信号线也要做一下电平转换。
    在这里插入图片描述
  • GPIO0:用串口下载时,需要提前将此IO短接到GND,然后在上电,即可进入下载模式。
  • GPIO46:用来关闭日志的操作,关闭日志打印,可以节约部分功耗。此外datasheet中说可以由 eFuse 位控制切换到 DAC_1 管脚(这个后面在研究)

2.片上存储

ESP32-S2 系列芯片片上存储包括:

  • 128 KB ROM:用于程序启动和内核功能调用,(乐鑫把常用的函数封装到ROM中,这里也有BL0,第一阶段boot
  • 320 KB 片上 SRAM:用于数据和指令存储
  • RTC 快速存储器:为 8 KB SRAM,可被主 CPU 访问,在 Deep-sleep 模式下可以保存数据
  • RTC 慢速存储器:为 8 KB SRAM,可被主 CPU 或协处理器访问,在 Deep-sleep 模式下可以保存数据
  • 4 Kbit eFuse:其中 1792 位保留给用户使用,例如用于存储密钥和设备 ID

3.地址映射

更详细的可以查看官方文档
下图中的灰色部分为ROM预留的内存,不是开发给客户的。灰色地址不可用
在这里插入图片描述

同时从esp-idf中发现,这些常用的c库函数都 已经赋予了指针,所以大胆猜测,这些函数已经集成进ROM中了
.....
memccpy = 0x4001ab00;
memchr = 0x4001ab24;
memcmp = 0x4001ab40;
memcpy = 0x4001aba8;
memmove = 0x4001acb0;
memrchr = 0x4001acec<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值