A36 PCB1.1 软件工程整理
This commit is contained in:
92
fr3092_mcu/components/modules/rpmsg-lite/lib/include/rpmsg.h
Normal file
92
fr3092_mcu/components/modules/rpmsg-lite/lib/include/rpmsg.h
Normal file
@ -0,0 +1,92 @@
|
||||
#ifndef _RPMSG_H
|
||||
#define _RPMSG_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "rpmsg_lite.h"
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
|
||||
#define RPMSG_MSG_TYPE_MASTER_READY 0x00000001
|
||||
#define RPMSG_MSG_TYPE_REMOTE_READY 0x00000002
|
||||
#define RPMSG_MSG_TYPE_SYNC_INVOKE 0x00000003
|
||||
#define RPMSG_MSG_TYPE_SYNC_RETURN 0x00000004
|
||||
#define RPMSG_MSG_TYPE_ASYNC_MSG 0x00000005
|
||||
|
||||
#define RPMSG_SYNC_FUNC_MSG(type, sub_type) (((type)<<16) | (sub_type))
|
||||
#define RPSMG_SYNC_FUNC_TYPE(func_id) ((func_id)>>16)
|
||||
#define RPSMG_SYNC_FUNC_SUB_TYPE(func_id) ((func_id) & 0xffff)
|
||||
|
||||
#define RPMSG_SYNC_FUNC_TYPE_TEST 0x0001
|
||||
#define RPMSG_SYNC_FUNC_TYPE_DSP 0x0002
|
||||
#define RPMSG_SYNC_FUNC_TYPE_AUDIO 0x0003
|
||||
#define RPMSG_SYNC_FUNC_TYPE_LVGL 0x0004
|
||||
#define RPMSG_SYNC_FUNC_TYPE_FREETYPE 0x0005
|
||||
|
||||
#define RPMSG_SYNC_FUNC_SUM RPMSG_SYNC_FUNC_MSG(RPMSG_SYNC_FUNC_TYPE_TEST, 0x0001)
|
||||
|
||||
/** @addtogroup rpmsg syncronize invoke message definations
|
||||
* @{
|
||||
*/
|
||||
struct rpmsg_sync_msg_sum_t {
|
||||
uint32_t x;
|
||||
uint32_t y;
|
||||
};
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup rpmsg asyncronize message definations
|
||||
* @{
|
||||
*/
|
||||
struct rpmsg_async_msg_t {
|
||||
uint32_t msg_id;
|
||||
union {
|
||||
void *param;
|
||||
uint32_t dsp_req_frq;
|
||||
} p;
|
||||
};
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
struct rpmsg_msg_t {
|
||||
uint32_t msg_type;
|
||||
|
||||
union {
|
||||
struct {
|
||||
uint32_t func_id;
|
||||
void *param;
|
||||
} sync_func;
|
||||
|
||||
struct {
|
||||
uint32_t status;
|
||||
uint32_t result;
|
||||
} sync_ret;
|
||||
|
||||
struct rpmsg_async_msg_t async_msg;
|
||||
} p;
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------------------*/
|
||||
/* Exported functions ---------------------------------------------------------------*/
|
||||
/*-----------------------------------------------------------------------------------*/
|
||||
|
||||
uint32_t rpmsg_sync_invoke(struct rpmsg_lite_instance *rpmsg, uint32_t func_id, void *param, uint32_t *ret);
|
||||
uint32_t rpmsg_send_async(struct rpmsg_lite_instance *rpmsg, struct rpmsg_async_msg_t *async_msg);
|
||||
uint32_t rpmsg_send_sync_ret(struct rpmsg_lite_instance *rpmsg, uint32_t status, uint32_t ret);
|
||||
|
||||
struct rpmsg_lite_instance *rpmsg_master_init(void (*recv)(struct rpmsg_lite_instance *rpmsg, struct rpmsg_msg_t *msg));
|
||||
struct rpmsg_lite_instance *rpmsg_remote_init(void (*recv)(struct rpmsg_lite_instance *rpmsg, struct rpmsg_msg_t *msg));
|
||||
void rpmsg_wait_master_ready(struct rpmsg_lite_instance *rpmsg);
|
||||
void rpmsg_destroy(struct rpmsg_lite_instance *rpmsg);
|
||||
|
||||
uint32_t rpmsg_recv_msg(struct rpmsg_lite_instance *rpmsg, struct rpmsg_msg_t **msg, uint32_t *msg_len);
|
||||
|
||||
struct rpmsg_lite_instance *rpmsg_get_remote_instance(void);
|
||||
struct rpmsg_lite_instance *rpmsg_get_master_instance(void);
|
||||
|
||||
void rpmsg_remote_recover(void);
|
||||
|
||||
#endif // _RPMSG_H
|
Reference in New Issue
Block a user