Edit online

调试指南

17 Dec 2024
Read time: 3 minute(s)

MPP 调试

MPP 调试 log 等级分为 ERROR, WARNING, INFO, DEBUG, VERBOSE。通过 LOGL_DEFAULT 定义 MPP 全局的 log 等级。 默认 log 等级为 INFO。

源文件路径:aic-mpp/base/log.h
enum log_level {
    LOGL_ERROR = 0,
    LOGL_WARNING,
    LOGL_INFO,
    LOGL_DEBUG,
    LOGL_VERBOSE,

    LOGL_COUNT,

    LOGL_DEFAULT = LOGL_INFO,
    LOGL_FORCE_DEBUG = 0x10,
};

子模块调试

打开子模块调试 log 方式,在子模块中添加:
#define LOG_DEBUG

MPP Heap 调试

打开 MPP Heap 调试开关,可查看 MPP 中间件对预留内存的使用情况。
  1. 在 SDK 根目录下,执行下列命令,进入 kernel 的功能配置界面:
    make kernel-menuconfig

    或使用简写命令

    make km
  2. 在内核配置界面,按如下选择:
    Linux
        Memory Management options  --->
            [*]   MPP debugfs interface
  3. 系统启动后挂载 debugfs
    mount -t debugfs none /sys/kernel/debug/
  4. 进入 mpp 目录后,使用下列命令查看对应节点,即可获取 mpp heap 的内存使用情况。
    进入 mpp 目录:
    cd /sys/kernel/dedbug/mpp/
    使用下列获取所有节点列表:
    ls
    输出示例如下:
    bitmap    count     maxchunk  used
    • count : MPP Heap 中包含的 page 总数

      cat count
      2048
    • used : MPP Heap 中已被申请的 page 总数

      cat used
      600
    • maxchunk : MPP Heap 中还能申请到最大的连续 page 总数

      cat maxchunk
      1448
    • bitmap : MPP Heap 中记录 page 状态的 bitmap

      cat bitmap
      4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295
      4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 16777215 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      • 一个 page 大小为 4K , bitmap 节点打印输出十进制数据。
      • 4294967295 转换为十六进制为 0xFFFFFFFF,二进制为 0b11111111111111111111111111111111
      • 一个 bit 表示一个 page 的状态,1 表示已被申请,0 表示空闲。
      • 4294967295 表示 32 个 page 全部被占用,总共 32 * 4K 大小。
      注:

      实际调试时要注意大小端问题。