esp32基于 ADF 启动内存跟踪功能的实现

内存跟踪功能的作用

内存跟踪功能可以帮助开发者监控和调试应用程序中的内存使用情况

项目配置

打开配置文件(sdkconfig)

CONFIG_MEDIA_PROTOCOL_LIB_ENABLE=y
CONFIG_MEDIA_LIB_MEM_AUTO_TRACE=y
CONFIG_MEDIA_LIB_MEM_TRACE_DEPTH=3
CONFIG_MEDIA_LIB_MEM_TRACE_NUM=1024
CONFIG_MEDIA_LIB_MEM_TRACE_MODULE=y
CONFIG_MEDIA_LIB_MEM_TRACE_LEAKAGE=y

或者SDK配置编辑器

 

头文件引用

#include "media_lib_adapter.h"
#include "audio_mem.h"

初始化

在mian函数的调用media_lib_add_default_adapter()初始化内存跟踪模块

media_lib_add_default_adapter();

内存信息打印

audio_mem_print("Audio Mem", __LINE__, __FUNCTION__);

  下面代码是内存打印结果

I (1326) Audio Mem2: Func:Task, Line:167, MEM Total:2016704 Bytes, Inter:83027 Bytes, Dram:83027 Bytes, Dram largest free:31744Bytes

停止内存跟踪

media_lib_stop_mem_trace();

简单示例代码(伪代码) 

// 初始化内存跟踪
void init_memory_tracking()
{
    esp_err_t ret = media_lib_add_default_adapter();
    if (ret != ESP_OK) {
        ESP_LOGE(TAG, "Failed to initialize default adapters.");
    }
}

// 停止内存跟踪
void stop_memory_tracking()
{
    media_lib_stop_mem_trace();
}

int main()
{
    init_memory_tracking();

    // 以下是你的应用逻辑
    void *ptr = audio_malloc(100); // 分配内存
    // 使用内存...

    audio_free(ptr); // 释放内存

    // 打印当前的内存使用情况
    audio_mem_print("Audio Mem", __LINE__, __FUNCTION__);

    // 停止内存跟踪
    stop_memory_tracking();

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐的小尾巴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值