调用示例
各接口说明处给的是接口的调用片段,此处以调用dcmi_get_card_num_list接口为例,给出调用示例,说明需要include的头文件(dcmi_interface_api.h)、调用接口的逻辑等。
示例代码文件get_card_num_list.c
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include "dcmi_interface_api.h" #define MAX_CARD_NUM (16) #define NPU_OK (0) int main(int argc, char ** argv) { int ret; int card_count = 0; int card_id_list[MAX_CARD_NUM] = {0}; ret = dcmi_init(); if (ret != NPU_OK) { printf("Failed to init dcmi.\n"); return ret; } ret = dcmi_get_card_num_list(&card_count, card_id_list, MAX_CARD_NUM); if (ret != NPU_OK) { printf("Failed to get card number.\n"); return ret; } printf("card count is %d\n", card_count); return ret; }
从已安装驱动和npu-smi工具的环境的“/usr/local/include/”目录下获取dcmi_interface_api.h文件。
- 以HwHiAiUser用户将get_card_num_list.c、dcmi_interface_api.h传到同一个目录下。
- 以HwHiAiUser用户登录到Host侧系统。
- 执行如下命令,将上传的get_card_num_list.c、dcmi_interface_api.h所属的用户和组修改为HwHiAiUser。
chown HwHiAiUser:HwHiAiUser dcmi_interface_api.h chown HwHiAiUser:HwHiAiUser get_card_num_list.c
- 执行如下命令,编译get_card_num_list.c中的代码,生成可执行文件card_list。编译时需要使用驱动中提供的相关动态库,具体如下:
gcc get_card_num_list.c -L/usr/lib64 -ldcmi -lascend_hal -ldevmmap -ldrvdsmi -o card_list
- 执行可执行文件card_list。
./card_list