带内复位调用示例
#include <stdio.h> #include "dcmi_interface_api.h" #define MAX_CARD_NUMBER (16) #define NPU_OK (0) int main() { int ret; int card_count = 0; int device_count = 0; int card_id; int card_id_list[8] = {0}; int device_id; enum dcmi_reset_channel inband_channel = INBAND_CHANNEL; 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_NUMBER); if (ret != NPU_OK) { printf("Failed to get card number,ret is %d\n",ret); return ret; } for (card_id = 0; card_id < card_count; card_id++) { ret = dcmi_get_device_num_in_card(card_id_list[card_id], &device_count); if(ret != NPU_OK) { printf("dcmi_get_device_num_in_card failed! card_id is %d ,ret: %d\n", card_id_list[card_id], ret); return ret; } for (device_id = 0; device_id <= device_count; device_id++) { // 复位 ret = dcmi_set_device_reset(card_id_list[card_id], device_id, inband_channel); if(ret != NPU_OK) { if (device_id == device_count) { if (ret == -8255) { printf("dcmi_set_device_reset fail! card_id is %d , device_id is %d, channel_type: %d, ret: %d\n", card_id_list[card_id], device_id, inband_channel, ret); } else { printf("dcmi_set_device_reset fail! card_id is %d , device_id is %d, channel_type: %d, ret: %d\n", card_id_list[card_id], device_id, inband_channel, ret); } } else { printf("dcmi_set_device_reset fail! card_id is %d , device_id is %d, channel_type: %d, ret: %d\n", card_id_list[card_id], device_id, inband_channel, ret); } } else { printf("dcmi_set_device_reset successful! card_id is %d, device_id:%d, channel_type: %d\n", card_id_list[card_id], device_id, inband_channel); } } } return 0; }
父主题: 芯片复位接口