74 lines
1.5 KiB
C
74 lines
1.5 KiB
C
/**
|
|
* @file kmdw_ipc.h
|
|
* @brief IPC APIs
|
|
*
|
|
* @copyright Copyright (c) 2022 Kneron Inc. All rights reserved.
|
|
*/
|
|
|
|
#ifndef __KMDW_IPC_H_
|
|
#define __KMDW_IPC_H_
|
|
|
|
#include "cmsis_os2.h"
|
|
#include "ipc.h"
|
|
|
|
typedef void (*ipc_handler_t)(struct kdp_img_raw_s *p_raw_image, int state);
|
|
|
|
/**
|
|
* @brief Initialize NPU functionality
|
|
* @param ipc_handler IPC callback
|
|
*/
|
|
void kmdw_ipc_initialize(ipc_handler_t ipc_handler);
|
|
|
|
/**
|
|
* @brief Set model information
|
|
* @param model_info_addr model information address
|
|
* @param info_idx information index
|
|
* @param slot_idx slot index
|
|
*/
|
|
void kmdw_ipc_set_model(struct kdp_model_s *model_info_addr, uint32_t info_idx, int32_t slot_idx);
|
|
|
|
/**
|
|
* @brief Set active model index
|
|
* @param index model slot index
|
|
*/
|
|
void kmdw_ipc_set_model_active(uint32_t index);
|
|
|
|
/**
|
|
* @brief Set active image index
|
|
* @param index image index
|
|
*/
|
|
void kmdw_ipc_set_image_active(uint32_t index);
|
|
|
|
/**
|
|
* @brief Set SCPU debug level
|
|
* @param lvl level
|
|
*/
|
|
void kdrv_ncpu_set_scpu_debug_lvl(uint32_t lvl);
|
|
|
|
/**
|
|
* @brief Set NCPU debug level
|
|
* @param lvl level
|
|
*/
|
|
void kdrv_ncpu_set_ncpu_debug_lvl(uint32_t lvl);
|
|
|
|
/**
|
|
* @brief Trigger NCPU interrupt
|
|
* @param ipc_idx IPC channel to trigger
|
|
*/
|
|
void kmdw_ipc_trigger_int(int ipc_cmd);
|
|
|
|
/**
|
|
* @brief Get scpu_to_ncpu_t point
|
|
* @return IPC struct
|
|
*/
|
|
scpu_to_ncpu_t* kmdw_ipc_get_output(void);
|
|
|
|
/**
|
|
* @brief Get ncpu_to_scpu_result_t point
|
|
* @return IPC struct
|
|
*/
|
|
ncpu_to_scpu_result_t* kmdw_ipc_get_input(void);
|
|
|
|
|
|
#endif
|