ESP32入门基础之资源管理
Posted while(1)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP32入门基础之资源管理相关的知识,希望对你有一定的参考价值。
文章目录
1 ESP32-DevKitC V4(ESP32-WROVER-E&IE)板载资源
-
在工程中使用函数查询可用堆大小等信息
esp_chip_info_t chip_info; esp_chip_info(&chip_info); printf("This is %s chip with %d CPU core(s), WiFi%s%s, ", CONFIG_IDF_TARGET, chip_info.cores, (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "", (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : ""); printf("silicon revision %d, ", chip_info.revision); printf("%dMB %s flash\\n", spi_flash_get_chip_size() / (1024 * 1024), (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external"); printf("free heap size: %d bytes\\n", esp_get_free_heap_size()); printf("free internal heap size: %d bytes\\n", esp_get_free_internal_heap_size()); printf("Minimum free heap size: %d bytes\\n", esp_get_minimum_free_heap_size());
串口显示
-
在PowerShell使用指令
esptool.py -p COM* flash_id
查询模组实际flash大小和芯片信息等数据
-
查询外部PSRAM信息
先选择支持外部RAM,打开menuconfig
菜单配置
再重新编译,烧录程序并打开串口数据
也可以在工程中调用相应函数查询
2 FreeRTOS任务内存使用监控
-
如图勾选
-
编写测试程序
static void monitor_task(void *pvParameters) static char InfoBuffer[512] = 0; while (1) vTaskList((char *) &InfoBuffer); printf("任务名 任务状态 优先级 剩余栈 任务序号\\r\\n"); printf("\\r\\n%s\\r\\n", InfoBuffer); vTaskGetRunTimeStats((char *) &InfoBuffer); printf("\\r\\n任务名 运行计数 使用率\\r\\n"); printf("\\r\\n%s\\r\\n", InfoBuffer); vTaskDelay(2000 / portTICK_PERIOD_MS); void app_main(void) xTaskCreate(monitor_task, "monitor_task", 4096, NULL, 6, NULL); while(1)
-
编译烧录并打开串口
注意,该方法要长时间监控才比较准确
以上是关于ESP32入门基础之资源管理的主要内容,如果未能解决你的问题,请参考以下文章
LittlevGL ESP32 学习笔记 ①移植最新的 LVGL 版本到安信可ESP32C3模组,显示一个二维码。(附带源码)
LittlevGL ESP32 学习笔记 ①移植最新的 LVGL 版本到安信可ESP32C3模组,显示一个二维码。(附带源码)
LittlevGL ESP32 学习笔记 ①移植最新的 LVGL 版本到安信可ESP32C3模组,显示一个二维码。(附带源码)
LittlevGL ESP32 学习笔记 ①移植最新的 LVGL 版本到安信可ESP32C3模组,显示一个二维码。(附带源码)