ESP-IDF 例程——system

17. system 目录

17.1 console/basic 例程

字段 描述
例程名称 console/basic
所在文件夹路径 examples\system\console\basic
核心功能说明 演示如何使用ESP-IDF的console组件创建交互式命令行界面(CLI)。实现了一个基于REPL(Read-Eval-Print Loop)的交互式shell,支持命令历史、自动补全和各种系统命令。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_console_repl_init():初始化REPL
- esp_console_register_help_command():注册帮助命令
- esp_console_cmd_register():注册自定义命令
- 各种系统命令处理函数(如free、restart、deep_sleep等)
输入输出参数说明 输入:
- 通过串口或USB输入的命令

输出:
- 命令执行结果
- 帮助信息
- 系统状态信息
适用场景及典型应用案例 适用于:
- 学习ESP-IDF console组件的使用
- 开发需要命令行界面的应用
- 设备调试和配置
- 系统状态监控
- 作为CLI应用的参考模板

17.2 esp_timer 例程

字段 描述
例程名称 esp_timer
所在文件夹路径 examples\system\esp_timer
核心功能说明 演示ESP-IDF的高精度定时器功能。创建周期性定时器和一次性定时器,执行回调函数,并验证定时器在轻度睡眠后仍能正确工作。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- periodic_timer_callback():周期性定时器回调
- oneshot_timer_callback():一次性定时器回调
- esp_timer_create():创建定时器
- esp_timer_start():启动定时器
- esp_timer_stop():停止定时器
- esp_timer_delete():删除定时器
- esp_timer_dump():打印定时器信息
- 轻度睡眠相关函数
输入输出参数说明 输出:
- 定时器回调执行日志
- 定时器状态信息
- 轻度睡眠前后的时间信息
适用场景及典型应用案例 适用于:
- 学习ESP-IDF高精度定时器的使用
- 开发需要精确定时的应用
- 实时系统中的时间管理
- 传感器数据采集定时
- 作为定时器应用的参考模板

17.3 deep_sleep 例程

字段 描述
例程名称 deep_sleep
所在文件夹路径 examples\system\deep_sleep
核心功能说明 演示ESP32的深度睡眠模式和各种唤醒源。支持定时器唤醒、EXT0外部唤醒、EXT1外部唤醒和GPIO唤醒,展示了如何在深度睡眠中保存状态并快速唤醒。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- timer_wakeup_init():初始化定时器唤醒
- ext0_wakeup_init():初始化EXT0唤醒
- ext1_wakeup_init():初始化EXT1唤醒
- esp_sleep_enable_timer_wakeup():使能定时器唤醒
- esp_sleep_enable_ext0_wakeup():使能EXT0唤醒
- esp_sleep_enable_ext1_wakeup():使能EXT1唤醒
- esp_deep_sleep_start():进入深度睡眠
输入输出参数说明 输出:
- 唤醒源信息
- 深度睡眠持续时间
- 系统状态信息
适用场景及典型应用案例 适用于:
- 学习ESP32深度睡眠模式的使用
- 开发低功耗物联网设备
- 电池供电设备的电源管理
- 定时唤醒的传感器节点
- 作为深度睡眠应用的参考模板

17.4 pthread 例程

字段 描述
例程名称 pthread
所在文件夹路径 examples\system\pthread
核心功能说明 演示POSIX线程(pthread)在ESP-IDF中的使用。创建多个线程,展示线程同步、互斥锁和条件变量的使用,以及线程优先级和调度策略的配置。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- pthread_create():创建线程
- pthread_join():等待线程结束
- pthread_mutex_init():初始化互斥锁
- pthread_mutex_lock():锁定互斥锁
- pthread_mutex_unlock():解锁互斥锁
- pthread_cond_init():初始化条件变量
- pthread_cond_wait():等待条件变量
- pthread_cond_signal():发送条件信号
输入输出参数说明 输出:
- 线程执行顺序
- 共享资源访问情况
- 线程同步结果
适用场景及典型应用案例 适用于:
- 学习POSIX线程在ESP-IDF中的使用
- 开发多线程应用
- 实现并发处理
- 学习线程同步机制
- 作为多线程应用的参考模板

17.5 ota/simple_ota_example 例程

字段 描述
例程名称 ota/simple_ota_example
所在文件夹路径 examples\system\ota\simple_ota_example
核心功能说明 演示ESP-IDF的OTA(Over-The-Air)升级功能。通过HTTPS从服务器下载固件并更新设备,支持固件完整性验证和版本检查。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- simple_ota_task():OTA升级任务
- esp_https_ota():执行HTTPS OTA升级
- esp_https_ota_config_t:OTA配置结构
- Wi-Fi连接相关函数
输入输出参数说明 输入:
- 配置的Wi-Fi SSID和密码
- OTA服务器URL

输出:
- OTA升级进度
- 升级结果
- 系统重启信息
适用场景及典型应用案例 适用于:
- 学习ESP-IDF OTA功能的使用
- 开发需要远程升级的设备
- 物联网设备的固件管理
- 作为OTA应用的参考模板

17.6 app_trace_basic 例程

字段 描述
例程名称 app_trace_basic
所在文件夹路径 examples\system\app_trace_basic
核心功能说明 演示ESP-IDF的应用跟踪(App Trace)功能,用于实时跟踪和分析应用程序的执行情况。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_apptrace_init():初始化应用跟踪
- esp_apptrace_write():写入跟踪数据
- esp_apptrace_flush():刷新跟踪数据
输入输出参数说明 输出:
- 应用执行跟踪数据
- 系统状态信息
适用场景及典型应用案例 适用于:
- 学习ESP-IDF应用跟踪功能
- 开发过程中的性能分析
- 系统调试和问题排查
- 作为应用跟踪的参考模板

17.7 base_mac_address 例程

字段 描述
例程名称 base_mac_address
所在文件夹路径 examples\system\base_mac_address
核心功能说明 演示如何获取和修改ESP32设备的基础MAC地址,以及如何在不同网络接口上使用不同的MAC地址。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_base_mac_addr_get():获取基础MAC地址
- esp_efuse_mac_get_default():从eFuse获取默认MAC地址
- esp_netif_get_mac():获取网络接口的MAC地址
输入输出参数说明 输出:
- 设备的基础MAC地址
- 各网络接口的MAC地址
适用场景及典型应用案例 适用于:
- 学习MAC地址管理
- 开发需要自定义MAC地址的应用
- 网络设备的标识和管理
- 作为MAC地址操作的参考模板

17.8 console/advanced 例程

字段 描述
例程名称 console/advanced
所在文件夹路径 examples\system\console\advanced
核心功能说明 演示ESP-IDF的高级控制台功能,包括命令分组、子命令、参数解析和复杂命令处理。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_console_repl_init():初始化REPL
- esp_console_cmd_register():注册命令
- 各种命令处理函数(系统、Wi-Fi、NVS等)
输入输出参数说明 输入:
- 通过串口或USB输入的命令

输出:
- 命令执行结果
- 帮助信息
- 系统状态信息
适用场景及典型应用案例 适用于:
- 学习ESP-IDF高级控制台功能
- 开发复杂的命令行界面
- 设备配置和管理
- 作为高级CLI应用的参考模板

17.9 deep_sleep_wake_stub 例程

字段 描述
例程名称 deep_sleep_wake_stub
所在文件夹路径 examples\system\deep_sleep_wake_stub
核心功能说明 演示如何使用深度睡眠唤醒存根(wake stub)功能,在深度睡眠唤醒后执行代码,而无需完整启动系统。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_deep_sleep_set_wake_stub():设置唤醒存根
- 唤醒存根函数
- 深度睡眠相关函数
输入输出参数说明 输出:
- 唤醒存根执行结果
- 系统状态信息
适用场景及典型应用案例 适用于:
- 学习深度睡眠唤醒存根功能
- 开发超低功耗应用
- 快速唤醒的传感器节点
- 作为唤醒存根应用的参考模板

17.10 efuse 例程

字段 描述
例程名称 efuse
所在文件夹路径 examples\system\efuse
核心功能说明 演示如何使用ESP32的eFuse(一次性可编程存储)功能,包括读取和写入eFuse数据。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_efuse_read():读取eFuse数据
- esp_efuse_write():写入eFuse数据
- esp_efuse_dump():打印eFuse信息
输入输出参数说明 输出:
- eFuse数据
- 系统配置信息
适用场景及典型应用案例 适用于:
- 学习eFuse功能的使用
- 开发需要安全存储的应用
- 设备配置和标识
- 作为eFuse操作的参考模板

17.11 esp_event 例程

17.11.1 esp_event/default_event_loop 例程

字段 描述
例程名称 esp_event/default_event_loop
所在文件夹路径 examples\system\esp_event\default_event_loop
核心功能说明 演示如何使用ESP-IDF的默认事件循环,实现事件的发布和订阅。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_event_loop_create_default():创建默认事件循环
- esp_event_handler_register():注册事件处理程序
- esp_event_post():发布事件
输入输出参数说明 输出:
- 事件处理结果
- 系统状态信息
适用场景及典型应用案例 适用于:
- 学习ESP-IDF事件系统
- 开发基于事件的应用
- 实现组件间通信
- 作为事件系统应用的参考模板

17.12 eventfd 例程

字段 描述
例程名称 eventfd
所在文件夹路径 examples\system\eventfd
核心功能说明 演示如何使用eventfd(事件文件描述符)进行线程间通信和同步。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- eventfd():创建eventfd
- read():读取eventfd
- write():写入eventfd
- 线程创建和管理函数
输入输出参数说明 输出:
- 事件触发状态
- 线程同步结果
适用场景及典型应用案例 适用于:
- 学习eventfd功能
- 开发线程间通信应用
- 实现事件通知机制
- 作为线程同步的参考模板

17.13 flash_suspend 例程

字段 描述
例程名称 flash_suspend
所在文件夹路径 examples\system\flash_suspend
核心功能说明 演示ESP32的Flash暂停功能,允许在Flash操作期间暂停和恢复执行。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- Flash操作函数
- 中断处理函数
输入输出参数说明 输出:
- Flash操作状态
- 中断处理结果
适用场景及典型应用案例 适用于:
- 学习Flash暂停功能
- 开发需要在Flash操作期间响应中断的应用
- 实时系统中的Flash管理
- 作为Flash操作的参考模板

17.14 freertos 例程

17.14.1 freertos/basic_freertos_smp_usage 例程

字段 描述
例程名称 freertos/basic_freertos_smp_usage
所在文件夹路径 examples\system\freertos\basic_freertos_smp_usage
核心功能说明 演示FreeRTOS在ESP32 SMP(对称多处理)系统中的基本使用,包括任务创建、同步、通信等。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- xTaskCreate():创建任务
- xSemaphoreCreateMutex():创建互斥锁
- xQueueCreate():创建队列
- xTaskNotifyGive():发送任务通知
输入输出参数说明 输出:
- 任务执行顺序
- 同步操作结果
- 队列通信结果
适用场景及典型应用案例 适用于:
- 学习FreeRTOS SMP功能
- 开发多任务应用
- 实现并发处理
- 作为FreeRTOS应用的参考模板

17.15 gcov 例程

字段 描述
例程名称 gcov
所在文件夹路径 examples\system\gcov
核心功能说明 演示如何使用GCOV(代码覆盖率工具)来分析ESP32应用程序的代码覆盖率。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- 测试函数
- GCOV相关函数
输入输出参数说明 输出:
- 代码覆盖率报告
- 测试结果
适用场景及典型应用案例 适用于:
- 学习GCOV代码覆盖率工具
- 开发需要代码覆盖率分析的应用
- 提高代码质量和测试覆盖率
- 作为代码覆盖率分析的参考模板

17.16 gdbstub 例程

字段 描述
例程名称 gdbstub
所在文件夹路径 examples\system\gdbstub
核心功能说明 演示如何使用ESP32的GDB stub功能,通过GDB(GNU调试器)远程调试ESP32应用程序。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- GDB stub初始化函数
- 调试相关函数
输入输出参数说明 输出:
- 调试信息
- 程序执行状态
适用场景及典型应用案例 适用于:
- 学习GDB stub调试功能
- 开发需要复杂调试的应用
- 解决难以重现的问题
- 作为调试技术的参考模板

17.17 heap_task_tracking 例程

17.17.1 heap_task_tracking/basic 例程

字段 描述
例程名称 heap_task_tracking/basic
所在文件夹路径 examples\system\heap_task_tracking\basic
核心功能说明 演示ESP-IDF的堆任务跟踪功能,用于监控和分析不同任务的堆内存使用情况。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_heap_task_tracking_init():初始化堆任务跟踪
- esp_heap_task_tracking_start():开始堆任务跟踪
- esp_heap_task_tracking_stop():停止堆任务跟踪
输入输出参数说明 输出:
- 任务堆内存使用情况
- 内存分配统计
适用场景及典型应用案例 适用于:
- 学习堆任务跟踪功能
- 开发需要内存优化的应用
- 排查内存泄漏问题
- 作为内存管理的参考模板

17.18 himem 例程

字段 描述
例程名称 himem
所在文件夹路径 examples\system\himem
核心功能说明 演示ESP32的高内存(HiMem)功能,用于访问超出常规内存范围的外部RAM。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- himem_init():初始化HiMem
- himem_alloc():分配HiMem内存
- himem_free():释放HiMem内存
输入输出参数说明 输出:
- HiMem分配结果
- 内存访问状态
适用场景及典型应用案例 适用于:
- 学习HiMem功能
- 开发需要大量内存的应用
- 处理大型数据结构
- 作为内存管理的参考模板

17.19 ipc 例程

17.19.1 ipc/ipc_isr 例程

字段 描述
例程名称 ipc/ipc_isr
所在文件夹路径 examples\system\ipc\ipc_isr
核心功能说明 演示ESP32的IPC(进程间通信)功能,用于在不同CPU核心之间传递中断和数据。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_ipc_isr_register():注册IPC中断处理程序
- esp_ipc_call():执行IPC调用
输入输出参数说明 输出:
- IPC通信结果
- 中断处理状态
适用场景及典型应用案例 适用于:
- 学习ESP32 IPC功能
- 开发多核心协作应用
- 实现跨核心中断处理
- 作为IPC应用的参考模板

17.20 light_sleep 例程

字段 描述
例程名称 light_sleep
所在文件夹路径 examples\system\light_sleep
核心功能说明 演示ESP32的轻度睡眠模式和各种唤醒源,包括定时器唤醒、GPIO唤醒和UART唤醒。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_light_sleep_start():进入轻度睡眠
- esp_sleep_enable_timer_wakeup():使能定时器唤醒
- esp_sleep_enable_gpio_wakeup():使能GPIO唤醒
- esp_sleep_enable_uart_wakeup():使能UART唤醒
输入输出参数说明 输出:
- 唤醒源信息
- 轻度睡眠持续时间
- 系统状态信息
适用场景及典型应用案例 适用于:
- 学习ESP32轻度睡眠模式
- 开发低功耗应用
- 电池供电设备的电源管理
- 作为轻度睡眠应用的参考模板

17.21 nmi_isr 例程

字段 描述
例程名称 nmi_isr
所在文件夹路径 examples\system\nmi_isr
核心功能说明 演示ESP32的NMI(不可屏蔽中断)功能,用于处理最高优先级的中断。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- NMI中断处理函数
- 汇编函数
- GPIO中断配置函数
输入输出参数说明 输出:
- NMI中断触发信息
- 系统状态信息
适用场景及典型应用案例 适用于:
- 学习NMI中断功能
- 开发需要最高优先级中断处理的应用
- 实现关键系统事件处理
- 作为中断处理的参考模板

17.22 ota/advanced_https_ota 例程

字段 描述
例程名称 ota/advanced_https_ota
所在文件夹路径 examples\system\ota\advanced_https_ota
核心功能说明 演示ESP-IDF的高级OTA功能,包括BLE辅助配网、OTA恢复、部分下载等高级特性。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- advanced_ota_task():高级OTA任务
- esp_https_ota():执行HTTPS OTA升级
- BLE配网相关函数
输入输出参数说明 输入:
- 配置的Wi-Fi SSID和密码(或通过BLE配网)
- OTA服务器URL

输出:
- OTA升级进度
- 升级结果
- 系统重启信息
适用场景及典型应用案例 适用于:
- 学习ESP-IDF高级OTA功能
- 开发复杂的远程升级系统
- 物联网设备的固件管理
- 作为高级OTA应用的参考模板

17.23 perfmon 例程

字段 描述
例程名称 perfmon
所在文件夹路径 examples\system\perfmon
核心功能说明 演示ESP32的性能监控(PerfMon)功能,用于测量和分析系统性能。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- perfmon_init():初始化性能监控
- perfmon_start():开始性能监控
- perfmon_stop():停止性能监控
输入输出参数说明 输出:
- 性能监控数据
- 系统运行状态
适用场景及典型应用案例 适用于:
- 学习PerfMon功能
- 开发需要性能优化的应用
- 系统性能分析和调试
- 作为性能监控的参考模板

17.24 rt_mqueue 例程

字段 描述
例程名称 rt_mqueue
所在文件夹路径 examples\system\rt_mqueue
核心功能说明 演示POSIX实时消息队列(rt_mqueue)的使用,用于进程间通信。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- mq_open():打开消息队列
- mq_send():发送消息
- mq_receive():接收消息
- mq_close():关闭消息队列
输入输出参数说明 输出:
- 消息发送和接收结果
- 队列操作状态
适用场景及典型应用案例 适用于:
- 学习POSIX消息队列
- 开发进程间通信应用
- 实现消息传递机制
- 作为IPC通信的参考模板

17.25 select 例程

字段 描述
例程名称 select
所在文件夹路径 examples\system\select
核心功能说明 演示POSIX select()函数的使用,用于多路I/O复用,同时监控多个文件描述符。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- select():监控文件描述符
- 套接字操作函数
- UART操作函数
输入输出参数说明 输出:
- I/O事件通知
- 数据接收结果
适用场景及典型应用案例 适用于:
- 学习select()函数
- 开发需要多路I/O的应用
- 实现事件驱动编程
- 作为I/O多路复用的参考模板

17.26 startup_time 例程

字段 描述
例程名称 startup_time
所在文件夹路径 examples\system\startup_time
核心功能说明 演示如何测量和优化ESP32的启动时间,包括启动过程中的各个阶段。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- 启动时间测量函数
- 系统初始化函数
输入输出参数说明 输出:
- 启动时间统计
- 系统初始化状态
适用场景及典型应用案例 适用于:
- 学习启动时间优化
- 开发需要快速启动的应用
- 系统性能分析
- 作为启动时间优化的参考模板

17.27 sysview_tracing 例程

字段 描述
例程名称 sysview_tracing
所在文件夹路径 examples\system\sysview_tracing
核心功能说明 演示如何使用SystemView进行系统跟踪和分析,包括任务调度、中断和系统调用等。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- SystemView初始化函数
- 系统跟踪函数
输入输出参数说明 输出:
- 系统跟踪数据
- 任务执行情况
适用场景及典型应用案例 适用于:
- 学习SystemView跟踪功能
- 开发需要系统分析的应用
- 任务调度优化
- 作为系统分析的参考模板

17.28 task_watchdog 例程

字段 描述
例程名称 task_watchdog
所在文件夹路径 examples\system\task_watchdog
核心功能说明 演示ESP32的任务看门狗(Task Watchdog Timer, TWD)功能,用于监控任务的执行状态,防止任务卡住。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- esp_task_wdt_init():初始化任务看门狗
- esp_task_wdt_add():添加任务到看门狗监控
- esp_task_wdt_reset():重置任务看门狗
输入输出参数说明 输出:
- 任务看门狗状态
- 系统监控信息
适用场景及典型应用案例 适用于:
- 学习任务看门狗功能
- 开发需要高可靠性的应用
- 防止任务死锁
- 作为系统监控的参考模板

17.29 ulp 例程

17.29.1 ulp/lp_core/gpio 例程

字段 描述
例程名称 ulp/lp_core/gpio
所在文件夹路径 examples\system\ulp\lp_core\gpio
核心功能说明 演示ESP32低功耗核心(LP Core)的GPIO操作,在主CPU睡眠时执行GPIO相关任务。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- LP Core固件编译和加载
- GPIO操作函数
输入输出参数说明 输出:
- LP Core执行结果
- GPIO操作状态
适用场景及典型应用案例 适用于:
- 学习LP Core功能
- 开发低功耗应用
- 实现主CPU睡眠时的GPIO控制
- 作为LP Core应用的参考模板

17.30 unit_test 例程

字段 描述
例程名称 unit_test
所在文件夹路径 examples\system\unit_test
核心功能说明 演示ESP-IDF的单元测试框架,用于编写和运行单元测试。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- TEST_CASE():定义测试用例
- TEST_ASSERT():断言宏
- 测试运行函数
输入输出参数说明 输出:
- 测试结果
- 测试覆盖率
适用场景及典型应用案例 适用于:
- 学习单元测试框架
- 开发需要测试的应用
- 提高代码质量
- 作为单元测试的参考模板

17.31 xip_from_psram 例程

字段 描述
例程名称 xip_from_psram
所在文件夹路径 examples\system\xip_from_psram
核心功能说明 演示ESP32的XIP(Execute In Place)从PSRAM执行代码的功能,用于扩展可执行代码空间。
主要调用的内部/外部函数或模块 - app_main():程序入口函数
- PSRAM初始化函数
- XIP相关函数
输入输出参数说明 输出:
- XIP执行状态
- 内存使用情况
适用场景及典型应用案例 适用于:
- 学习XIP功能
- 开发需要大量代码空间的应用
- 扩展程序容量
- 作为XIP应用的参考模板

ESP-IDF 例程——system
https://blog.zhaosn.top/ESP32-examples/17.system/
作者
Zhao SN
发布于
2026年1月21日
更新于
2026年2月28日
许可协议