文档
注册

dcmi_set_user_config接口原型

函数原型

int dcmi_set_user_config(int card_id, int device_id, const char *config_name, unsigned int buf_size, unsigned char *buf)

功能说明

设置用户配置。

参数说明

参数名称

输入/输出

类型

描述

card_id

输入

int

指定NPU管理单元ID,当前实际支持的ID通过dcmi_get_card_num_list接口获取。

device_id

输入

int

指定设备编号,通过dcmi_get_device_id_in_card接口获取。取值范围如下:

NPU芯片:[0, device_id_max-1]。

config_name

输入

const char *

目前支持处理的配置项名称如下,配置项名称的字符串长度最大为32。

已实现功能的配置项:ddr_ecc_enable、cpu_num_cfg。支持用户自定义名称配置。

配置项功能说明如下:

  • "ddr_ecc_enable":用于使能或禁用ECC。
  • "cpu_num_cfg":用于系统cpu配比设置。
说明:
cpu_num_cfg:
  • data CPU不使用,要求配置为0。
  • control CPU和aicpu的数量总和要和实际device的cpu核数量一致,并且control CPU数量不能小于1。

调用该接口配置标记后,需要复位芯片,配置才能生效。配置生效后,可通过dcmi_get_user_config接口原型接口查看配置结果。

buf_size

输入

unsigned int

buf长度,单位为byte,最大长度为1K byte。

支持ddr_ecc_enable、cpu_num_cfg配置。

目前支持处理的配置项名称如下:

  • 如果配置"ddr_ecc_enable":buf_size参数配置为1。
  • 如果配置"cpu_num_cfg":传入的data的结构体都是uc_cpu_cfg_t, size都是结构体的实际长度16。

除了如上固定的名称外,其他最大长度不超过1024 byte。

buf

输入

unsigned char *

buf指针,指向配置项内容。

支持ddr_ecc_enable、cpu_num_cfg配置。

目前支持处理的配置项名称如下:

  • 针对"ddr_ecc_enable"配置项,配置项内容支持如下选项,默认值是0:

    1:表示使能ECC

    0:表示禁用ECC

  • 针对"cpu_num_cfg"配置项,用户需要自定义配比的数据结构,该数据结构为:
    typedef struct uc_cpu_cfg_stru {
        unsigned char ctrl_cpu_num;    // control CPU数量
        unsigned char data_cpu_num;    // datacpu 数量
        unsigned char ai_cpu_num;      // aicpu 数量
        unsigned char reserved_1;
        unsigned int reserved_2[3];    /* 3 word 12 bytes, total 16 bytes */
    } uc_cpu_cfg_t;

除了如上固定的名称外,其他配置项内容请根据实际情况配置。

返回值

类型

描述

int

处理结果:

  • 成功:返回0。
  • 失败:返回码请参见返回码

异常处理

无。

约束说明

该接口在后续版本将会删除,推荐使用dcmi_set_device_user_config接口原型

表1 部署场景

Linux物理机

Linux物理机容器

root用户

运行用户组(非root用户)

root用户

Y

N

N

调用示例

… 
#define BUF_SIZE 1
int ret = 0;
int card_id = 0;
int device_id = 0;
char *config_name = "mac_info";
unsigned char buf[BUF_SIZE] = {0};
ret=dcmi_set_user_config(card_id, device_id,config_name, BUF_SIZE, buf);
if (ret != 0){
    //todo:记录日志
    return ret;
}
…
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词