带内复位调用示例
#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;
}
父主题: 芯片复位接口