2.3. API参考

2.3.1. CVI_IPCM_Init

【描述】

ipcm初始化。

【语法】

CVI_S32 CVI_IPCM_Init(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.2. CVI_IPCM_Uninit

【描述】

ipcm去初始化。

【语法】

CVI_S32 CVI_IPCM_Uninit(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.3. CVI_IPCM_InvData

【描述】

使指定地址的cache无效。

【语法】

CVI_S32 CVI_IPCM_InvData(CVI_VOID *pData, CVI_U32 u32Size);

【参数】

参数名称

描述

输入/输出

pData

数据地址,需要64byte对齐

输入

u32Size

数据长度,需要64byte对齐

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.4. CVI_IPCM_FlushData

【描述】

将指定地址的内容flush到ddr。

【语法】

CVI_S32 CVI_IPCM_FlushData(CVI_VOID *pData, CVI_U32 u32Size);

【参数】

参数名称

描述

输入/输出

pData

数据地址,需要64byte对齐

输入

u32Size

数据长度,需要64byte对齐

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.5. CVI_IPCM_DataLock

【描述】

大小核访问互斥锁上锁,同一个lock id,只有拿到lock的核才能访问。

【语法】

CVI_S32 CVI_IPCM_DataLock(CVI_U8 u8LockID);

【参数】

参数名称

描述

输入/输出

u8LockID

锁id号;当前支持5组data lock,lock id的范围是[0,4]

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.6. CVI_IPCM_DataUnlock

【描述】

大小核访问互斥锁解锁。

【语法】

CVI_S32 CVI_IPCM_DataUnlock(CVI_U8 u8LockID);

【参数】

参数名称

描述

输入/输出

u8LockID

锁id号;当前支持5组data lock,lock id的范围是[0,4]

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.7. CVI_IPCM_GetBuff

【描述】

从share memory中申请一块空闲pool,返回pool的地址。

【语法】

CVI_VOID *CVI_IPCM_GetBuff(CVI_U32 u32Size);

【参数】

参数名称

描述

输入/输出

u32Size

申请pool的长度

输入

【返回值】

返回值

描述

NULL

失败

其他

返回pool的地址。

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.8. CVI_IPCM_ReleaseBuff

【描述】

释放指定地址的share memory pool。

【语法】

CVI_S32 CVI_IPCM_ReleaseBuff(CVI_VOID *pData);

【参数】

参数名称

描述

输入/输出

pData

pool的地址

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.9. CVI_IPCM_GetUserAddr

【描述】

返回对应物理地址的虚拟地址,物理地址的范围必须是alios管理的地址。

linux 侧,将从alios拿到的物理地址转成虚拟地址;

alios 侧,因为alios没有开mmc,所以直接返回alios的物理地址。

【语法】

CVI_VOID *CVI_IPCM_GetUserAddr(CVI_U32 u32Paddr);

【参数】

参数名称

描述

输入/输出

u32Paddr

待转换的物理地址

输入

【返回值】

返回值

描述

NULL

失败,物理地址不在alios管理的范围

其他

成功,返回对应物理地址的虚拟地址

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.10. CVI_IPCM_GetParamBinAddr

【描述】

获取参数区域的物理地址。

【语法】

CVI_U32 CVI_IPCM_GetParamBinAddr(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.11. CVI_IPCM_GetParamBakBinAddr

【描述】

获取参数备份区域的物理地址。

【语法】

CVI_U32 CVI_IPCM_GetParamBakBinAddr(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.12. CVI_IPCM_GetPQBinQddr

【描述】

获取pq参数的物理地址。

【语法】

CVI_U32 CVI_IPCM_GetPQBinQddr(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.13. CVI_IPCM_CustInit

【描述】

ipcm cust初始化。

【语法】

CVI_S32 CVI_IPCM_CustInit(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.14. CVI_IPCM_CustUninit

【描述】

ipcm cust去初始化。

【语法】

CVI_S32 CVI_IPCM_CustUninit(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.15. CVI_IPCM_CustPoolReset

【描述】

将share memory pool全部复位为free状态,一般在系统第一次启动时ipcm驱动会调用。

【语法】

CVI_S32 CVI_IPCM_CustPoolReset(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.16. CVI_IPCM_RegisterCustHandle

【描述】

注册ipcm cust handler。

【语法】

CVI_S32 CVI_IPCM_RegisterCustHandle(CVI_U8 u8PortID,IPCM_CUST_MSGPROC_FN pfnHandler, CVI_VOID *pData);

【参数】

参数名称

描述

输入/输出

u8PortID

port id,当前0和1分别给虚拟串口、参数解析使用,用户port id建议从2开始

输入

pfnHandle

cust handler

输入

pData

handler应用数据

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h, cvi_comm_ipcm.h

【注意】

port id,当前0和1分别给虚拟串口、参数解析使用,用户port id建议从2开始

【举例】

【相关主题】

2.3.17. CVI_IPCM_DeregisterCustHandle

【描述】

注销ipcm cust handler。

【语法】

CVI_S32 CVI_IPCM_DeregisterCustHandle(CVI_U8 u8PortID);

【参数】

参数名称

描述

输入/输出

u8PortID

port id

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.18. CVI_IPCM_CustSendMsg

【描述】

将share memory的数据通过mailbox发送到另一个核

【语法】

CVI_S32 CVI_IPCM_CustSendMsg(CVI_U8 u8PortID, CVI_U8 u8MsgID, CVI_VOID *pData, CVI_U32 u32Len);

【参数】

参数名称

描述

输入/输出

u8PortID

port id号

输入

u8MsgID

msg id,范围是[0,127]

输入

pData

data指针,该data需要通过CVI_IPCM_GetBuff从share memory中获取

输入

u32Len

data的长度

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

CVI_IPCM_GetBuff

2.3.19. CVI_IPCM_CustSendParam

【描述】

当msg不超过4byte时,可以通过该接口发送4byte的param。

【语法】

CVI_S32 CVI_IPCM_CustSendParam(CVI_U8 u8PortID, CVI_U8 u8MsgID, CVI_U32 u32Param);;

【参数】

参数名称

描述

输入/输出

u8PortID

port id号

输入

u8MsgID

msg id,范围是[0,127]

输入

u32Param

param内容

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.20. CVI_IPCM_SetRtosSysBootStat

【描述】

将rtos启动状态位设为1;只在rtos端有效

【语法】

CVI_S32 CVI_IPCM_SetRtosSysBootStat(void);

【参数】

【返回值】

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

该接口一般在rtos启动时调用,且仅在rtos端调用有效

【举例】

【相关主题】

2.3.21. CVI_IPCM_ClrRtosSysBootStat

【描述】

将rtos启动状态位设为0;只在rtos端有效

【语法】

CVI_S32 CVI_IPCM_ClrRtosSysBootStat(void);

【参数】

【返回值】

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.22. CVI_IPCM_GetRtosBootStat

【描述】

获取rtos启动状态

【语法】

CVI_S32 CVI_IPCM_GetRtosBootStat(void);

【参数】

【返回值】

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.23. CVI_IPCM_GetRtosIpcmStat

【描述】

获取ipcm启动状态

【语法】

CVI_S32 CVI_IPCM_GetRtosIpcmStat(void);

【参数】

【返回值】

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.24. CVI_IPCM_SetRtosBootLogoStat

【描述】

将rtos boot logo状态位设为1

【语法】

CVI_S32 CVI_IPCM_SetRtosBootLogoStat(void);

【参数】

【返回值】

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.25. CVI_IPCM_ClrRtosBootLogoStat

【描述】

将rtos boot logo状态位设为0

【语法】

CVI_S32 CVI_IPCM_ClrRtosBootLogoStat(void);

【参数】

【返回值】

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】

2.3.26. CVI_IPCM_GetRtosBootLogoStat

【描述】

获取rtos boot logo态位

【语法】

CVI_S32 CVI_IPCM_GetRtosBootLogoStat(void);

【参数】

【返回值】

【需求】

  • 头文件: cvi_type.h, cvi_ipcm.h

【注意】

【举例】

【相关主题】