⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hw_mailbox.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/******************************************************************/
/*   Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File :  hw_mailbox.h
Desc :  定义MailBox的寄存器结构体\寄存器位的宏定义\接口函数

Author : huangxinyu
Date : 2007-09-17
Notes :

$Log: hw_mailbox.h,v $
Revision 1.3  2007/10/23 08:25:09  Huangxinyu
调试后修改bug

Revision 1.2  2007/10/08 02:38:45  Lingzhaojun
添加版本自动注释脚本

*********************************************************************/

#ifndef _HW_MAILBOX_H
#define _HW_MAILBOX_H

/********************************************************************
 INCLUDE FILES
*********************************************************************/
#include "typedef.h"
#include "hw_memmap.h"

/********************************************************************
 GLOBAL MACROS DEFINE
********************************************************************/

#define MB_C2H0_FLAG    (1<<0)
#define MB_C2H1_FLAG    (1<<1)
#define MB_C2H2_FLAG    (1<<2)
#define MB_C2H3_FLAG    (1<<3)

#define MB_H2C0_FLAG    (1<<0)
#define MB_H2C1_FLAG    (1<<1)
#define MB_H2C2_FLAG    (1<<2)
#define MB_H2C3_FLAG    (1<<3)

/*********************************************************************
 ENUMERATIONS AND STRUCTURES
*********************************************************************/
typedef struct
{
    REG32 data;
    REG32 cmd;
}MAILBOXCHANNEL;
typedef volatile struct MailBoxReg
{
    REG32 MAILBOX_ID;     // 0x00
    REG32 Reserved1[3];   // 0x04 ~ 0x0C
    REG32 H2C_STA;        // 0x10
    REG32 Reserved2[3];   // 0x14 ~ 0x1C
    MAILBOXCHANNEL H2C[4];
    REG32 C2H_STA;        // 0x40
    REG32 Reserved3[3];   // 0x44 ~ 0x4C
    MAILBOXCHANNEL C2H[4];
}MailBoxReg_t, *pMailBoxReg_t;

#define  pMailBoxReg  ((pMailBoxReg_t)AHB0_MAILBOX_BASE)




//#define ROCK_MAILBOX_PROTOCOL

/*
*cmd高4位表示消息优先级,由低到高(0x0---0xf)共16个优先级
*在消息队列中高优先级的msg将优先发送和接受
*相同优先级的消息依FIFO原则处理
*/
typedef enum
{
    Z2A_NextStreamReq = 0,//4发送解码器需要的下个输入buf的req
    Z2A_AddNewDIspFrame,//4通知arm添加新的可以显示的祯
    Z2A_StreamDecResult,//4解码结果,若解码出错,arm需要查找下一个I祯,并发送reset解码器消息
}ZSP2ARM_MSG;



typedef enum
{
    A2Z_NextStream = 0,//4通知zsp解码该位置上的数据
    A2Z_DecoderDisable,//4通知zsp暂停解码
    A2Z_DecoderEnable,//4通知zsp恢复解码

    A2Z_DecoderReset = 0x10000000,//4通知zsp复位解码器数据,接下来将发送I祯
    A2Z_StartDecoder,//4启动解码
    A2Z_CloseDecoder,//4关闭解码器
}ARM2ZSP_MSG;
typedef struct
{
    long  MailBoxCmd;
    long  MailBoxData;
}MAILBOXMSG;
UINT16 MailBoxSendMsg(void* msg);
void* MailBoxGetMsg(void);



#endif  /* _HW_MAILBOX_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -