工程结构
项目配置
开发者可以通过sdkconfig配置此项目的配置,并在build/config/sdkconfig.h中生成一系列宏定义
构建系统
idf.py管理了以下工具
- CMake,配置待构建的项目
- Ninja,用于构建项目
- esptool.py,烧录目标硬件设备
一些常用命令
idf.py create-project <project name>
idf.py create-component <component name>
idf.py set-target <target>
idf.py fullclean
idf.py menuconfig
idf.py build
idf.py clean
idf.py flash
idf.py docs
idf.py size
components简介
系统API
app_update:OTA
app_trace:JTAG debug
bootloader:初始化硬件,初始化系统,生成bootloader.bin,分区表,flash 加密,安全引导和空中升级 (OTA)
bootloader_support:为bootloader组件提供api接口
console:控制台终端交互
freertos:操作系统
hal:抽象chip
esp_system:IPC,Call function with external stack,软件复位,复位原因,堆内存,MAC 地址,eFuse 中的自定义 MAC 地址,本地 MAC 地址和全局 MAC 地址,芯片版本,SDK 版本,应用程序版本,看门狗
efuse
esp_common:Error Codes and Helper Functions
esp_https_ota:provides simplified APIs to perform firmware upgrades over HTTPS.
esp_event:事件循环库
esp_hw_support:Interrupt allocation(中断),随机数产生器,睡眠模式,DMA的memcpy
esp_timer:定时器
esp_rom
esp_pm:电源管理
heap:堆栈
log:日志
perfmon:Performance Monitor
pthread:底层线程,衍生system/pthread cxx/pthread
soc:SoC 硬件功能的定义
lwip:网络时间
ulp:Ultra Low Power超低功耗协处理器编程
外设API
driver
spi_flash
hal
soc 时钟树
应用层协议
asio:已移除,需要自己下载
ESP-Modbus:已移除,需要自己下载
mqtt
esp-tls
esp_http_client
esp_local_ctrl
esp_http_server
esp_https_server
lwip:ICMP Echo
mDNS:一种组播 UDP 服务,用来提供本地网络服务和主机发现。
Mbed TLS
蓝牙API
bt
存储API
fatfs:文件系统
量产程序-通过csv配置关键信息,批量烧录
nvs_flash:非易失性存储库
driver/sdmmc:SDMMC 主机驱动
driver/spi:SD SPI 主机驱动
sdmmc:SD/SDIO/MMC 驱动程序
esp_partition:分区 API
spiffs:SPIFFS 文件系统
vfs:虚拟文件系统组件
wear_levelling:磨损均衡 API
配网api
protocomm:协议通信
wifi_provisioning:Wi-Fi 配网
连网api
esp_wifi
wpa_supplicant
esp_eth
openthread:一种基于 IPv6 的物联网网状网络技术
esp_netif:IP 网络层协议
other
cmock
cxx
espcoredump
esptool_py
esp_adc
esp_app_format
esp_gdbstub
esp_hid
esp_lcd
esp_phy
esp_psram
esp_ringbuf
http_parser
idf_test
ieee802154
json
linux
mbedtls
newlib
partition_table
protobuf-c
riscv
tcp_transport
touch_element
unity
usb
xtensa