2.3. API Reference¶
2.3.1. CVI_IPCM_Init¶
[Description]
Initialize IPCM.
[Syntax]
CVI_S32 CVI_IPCM_Init(void);
[Parameters]
None
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.2. CVI_IPCM_Uninit¶
[Description]
Deinitialize IPCM.
[Syntax]
CVI_S32 CVI_IPCM_Uninit(void);
[Parameters]
None
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.3. CVI_IPCM_InvData¶
[Description]
makespecifiedaddresscacheInvalid.
[Syntax]
CVI_S32 CVI_IPCM_InvData(CVI_VOID *pData, CVI_U32 u32Size);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
pData |
dataaddress, need to64bytealignment |
Input |
u32Size |
Data length; 64-byte alignment is required |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.4. CVI_IPCM_FlushData¶
[Description]
willspecifiedaddresscontentflushtoddr.
[Syntax]
CVI_S32 CVI_IPCM_FlushData(CVI_VOID *pData, CVI_U32 u32Size);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
pData |
dataaddress, need to64bytealignment |
Input |
u32Size |
Data length; 64-byte alignment is required |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.5. CVI_IPCM_DataLock¶
[Description]
Lock the mutual-exclusion lock shared by the big and little cores. For the same lock ID, only the core holding the lock can access the resource.
[Syntax]
CVI_S32 CVI_IPCM_DataLock(CVI_U8 u8LockID);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
u8LockID |
Lock ID; five data locks are currently supported, with lock IDs in the range [0,4] |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.6. CVI_IPCM_DataUnlock¶
[Description]
Unlock the mutual-exclusion lock shared by the big and little cores.
[Syntax]
CVI_S32 CVI_IPCM_DataUnlock(CVI_U8 u8LockID);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
u8LockID |
Lock ID; five data locks are currently supported, with lock IDs in the range [0,4] |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.7. CVI_IPCM_GetBuff¶
[Description]
fromshare memoryinrequestpleasean available blockpool, returnpooladdress.
[Syntax]
CVI_VOID *CVI_IPCM_GetBuff(CVI_U32 u32Size);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
u32Size |
Requested pool length |
Input |
[Return Value]
Return Value |
Description |
|---|---|
NULL |
Failure |
Other |
returnpooladdress. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.8. CVI_IPCM_ReleaseBuff¶
[Description]
releasespecifiedaddressshare memory pool.
[Syntax]
CVI_S32 CVI_IPCM_ReleaseBuff(CVI_VOID *pData);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
pData |
pooladdress |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.9. CVI_IPCM_GetUserAddr¶
[Description]
returncorrespondingphysicaladdressvirtualaddress, physicaladdressrangemustisaliosmanageaddress.
in linux side, willfromaliostaketophysicaladdressconvertbecomevirtualaddress;
in alios side, becausealiosno hasopenmmc, thereforedirectlyconnectreturnaliosphysicaladdress.
[Syntax]
CVI_VOID *CVI_IPCM_GetUserAddr(CVI_U32 u32Paddr);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
u32Paddr |
wait forconvertreplacephysicaladdress |
Input |
[Return Value]
Return Value |
Description |
|---|---|
NULL |
Failure, physicaladdressnotinaliosmanagerange |
Other |
Success, returncorrespondingphysicaladdressvirtualaddress |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.10. CVI_IPCM_GetParamBinAddr¶
[Description]
getparameterareaphysicaladdress.
[Syntax]
CVI_U32 CVI_IPCM_GetParamBinAddr(void);
[Parameters]
None
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.11. CVI_IPCM_GetParamBakBinAddr¶
[Description]
getparameterbackupareaphysicaladdress.
[Syntax]
CVI_U32 CVI_IPCM_GetParamBakBinAddr(void);
[Parameters]
None
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.12. CVI_IPCM_GetPQBinQddr¶
[Description]
Getpqparameterphysicaladdress.
[Syntax]
CVI_U32 CVI_IPCM_GetPQBinQddr(void);
[Parameters]
None
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.13. CVI_IPCM_CustInit¶
[Description]
Initialize IPCM cust.
[Syntax]
CVI_S32 CVI_IPCM_CustInit(void);
[Parameters]
None
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.14. CVI_IPCM_CustUninit¶
[Description]
Deinitialize IPCM cust.
[Syntax]
CVI_S32 CVI_IPCM_CustUninit(void);
[Parameters]
None
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.15. CVI_IPCM_CustPoolReset¶
[Description]
Reset all shared-memory pools to the free state. The IPCM driver generally calls this during the first system boot.
[Syntax]
CVI_S32 CVI_IPCM_CustPoolReset(void);
[Parameters]
None
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.16. CVI_IPCM_RegisterCustHandle¶
[Description]
Register an IPCM cust handler.
[Syntax]
CVI_S32 CVI_IPCM_RegisterCustHandle(CVI_U8 u8PortID,IPCM_CUST_MSGPROC_FN pfnHandler, CVI_VOID *pData);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
u8PortID |
Port ID; 0 and 1 are currently used by the virtual serial port and parameter parsing respectively. User port IDs should start at 2. |
Input |
pfnHandle |
cust handler |
Input |
pData |
Handler application data |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h, cvi_comm_ipcm.h
[Note]
Port ID; 0 and 1 are currently used by the virtual serial port and parameter parsing respectively. User port IDs should start at 2.
[Example]
None
[Related Topics]
None
2.3.17. CVI_IPCM_DeregisterCustHandle¶
[Description]
Unregister the IPCM cust handler.
[Syntax]
CVI_S32 CVI_IPCM_DeregisterCustHandle(CVI_U8 u8PortID);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
u8PortID |
port id |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.18. CVI_IPCM_CustSendMsg¶
[Description]
Send shared-memory data to the other core through the mailbox
[Syntax]
CVI_S32 CVI_IPCM_CustSendMsg(CVI_U8 u8PortID, CVI_U8 u8MsgID, CVI_VOID *pData, CVI_U32 u32Len);
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
u8PortID |
Port ID |
Input |
u8MsgID |
Msg ID, in the range [0,127] |
Input |
pData |
Data pointer; obtain this data from shared memory with CVI_IPCM_GetBuff |
Input |
u32Len |
Data length |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
CVI_IPCM_GetBuff
2.3.19. CVI_IPCM_CustSendParam¶
[Description]
When the msg does not exceed 4 bytes, this interface can send a 4-byte param.
[Syntax]
CVI_S32 CVI_IPCM_CustSendParam(CVI_U8 u8PortID, CVI_U8 u8MsgID, CVI_U32 u32Param);;
[Parameters]
Parameter Name |
Description |
Input/Output |
|---|---|---|
u8PortID |
Port ID |
Input |
u8MsgID |
Msg ID, in the range [0,127] |
Input |
u32Param |
Param content |
Input |
[Return Value]
Return Value |
Description |
|---|---|
0 |
Success. |
Non-zero |
Failure,pleaseSee Error Codes. |
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.20. CVI_IPCM_SetRtosSysBootStat¶
[Description]
Set the RTOS boot-status bit to 1; valid only on the RTOS side
[Syntax]
CVI_S32 CVI_IPCM_SetRtosSysBootStat(void);
[Parameters]
None
[Return Value]
None
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
This interface is generally called when RTOS starts and is valid only when called on the RTOS side
[Example]
None
[Related Topics]
None
2.3.21. CVI_IPCM_ClrRtosSysBootStat¶
[Description]
Set the RTOS boot-status bit to 0; valid only on the RTOS side
[Syntax]
CVI_S32 CVI_IPCM_ClrRtosSysBootStat(void);
[Parameters]
None
[Return Value]
None
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.22. CVI_IPCM_GetRtosBootStat¶
[Description]
Get the RTOS boot status
[Syntax]
CVI_S32 CVI_IPCM_GetRtosBootStat(void);
[Parameters]
None
[Return Value]
None
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.23. CVI_IPCM_GetRtosIpcmStat¶
[Description]
Get the IPCM boot status
[Syntax]
CVI_S32 CVI_IPCM_GetRtosIpcmStat(void);
[Parameters]
None
[Return Value]
None
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.24. CVI_IPCM_SetRtosBootLogoStat¶
[Description]
Set the RTOS boot-logo status bit to 1
[Syntax]
CVI_S32 CVI_IPCM_SetRtosBootLogoStat(void);
[Parameters]
None
[Return Value]
None
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.25. CVI_IPCM_ClrRtosBootLogoStat¶
[Description]
Set the RTOS boot-logo status bit to 0
[Syntax]
CVI_S32 CVI_IPCM_ClrRtosBootLogoStat(void);
[Parameters]
None
[Return Value]
None
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None
2.3.26. CVI_IPCM_GetRtosBootLogoStat¶
[Description]
Get the RTOS boot-logo status bit
[Syntax]
CVI_S32 CVI_IPCM_GetRtosBootLogoStat(void);
[Parameters]
None
[Return Value]
None
[Requirements]
Header file: cvi_type.h, cvi_ipcm.h
[Note]
None
[Example]
None
[Related Topics]
None