📄 mpu_subsystem.c
字号:
//=====================================================================//
// company: COMMIT Incorporated //
// department: HW //
// author: LiYuan //
// version: 1.0 //
// create date: 11/03/2005 //
// release date: //
// final revise date: //
// reviser: //
// file descript: //
//=====================================================================//
#include "MPU_subsystem.h"
#include "inter_connect.h"
#include "interrupt_mapping.h"
char DSP_status = 0;
//=====================================================================//
//mail box interrpt configuration //
//=====================================================================//
void MAILBOX_IntCfg()
{
IsrRegister(DSP_MAILBOX1_INT, MAILBOX_InthProcess);
*(unsigned int *)0xfffecb18 = 0x00000001;
*(unsigned int *)0xfffecb04 &= ~0x00000400; //open interrupt
}
//=====================================================================//
//mail box read //
//=====================================================================//
short MAILBOX_Read(int mailbox_name)
{
short data_temp = 0;
switch(mailbox_name)
{
case MAILBOX_MPU2DSP1A:
data_temp = MAILBOX_MPU2DSP1A_REG;
break;
case MAILBOX_MPU2DSP1B:
data_temp = MAILBOX_MPU2DSP1B_REG;
break;
case MAILBOX_MPU2DSP2A:
data_temp = MAILBOX_MPU2DSP2A_REG;
break;
case MAILBOX_MPU2DSP2B:
data_temp = MAILBOX_MPU2DSP2B_REG;
break;
case MAILBOX_DSP2MPU1A:
data_temp = MAILBOX_DSP2MPU1A_REG;
break;
case MAILBOX_DSP2MPU1B:
data_temp = MAILBOX_DSP2MPU1B_REG;
break;
case MAILBOX_DSP2MPU2A:
data_temp = MAILBOX_DSP2MPU2A_REG;
break;
case MAILBOX_DSP2MPU2B:
data_temp = MAILBOX_DSP2MPU2B_REG;
default:
break;
}
return(data_temp);
}
//=====================================================================//
//mail box write //
//=====================================================================//
void MAILBOX_Write(int mailbox_name, short data_a, short data_b)
{
switch(mailbox_name)
{
case MAILBOX_MPU2DSP1:
MAILBOX_MPU2DSP1A_REG = data_a;
MAILBOX_MPU2DSP1B_REG = data_b;
break;
case MAILBOX_MPU2DSP2:
MAILBOX_MPU2DSP2A_REG = data_a;
MAILBOX_MPU2DSP2B_REG = data_b;
default:
break;
}
}
//=====================================================================//
//mail box flag check //
//=====================================================================//
short MAILBOX_GetFlag(int mailbox_name)
{
switch(mailbox_name)
{
case MAILBOX_MPU2DSP1:
return(MAILBOX_MPU2DSP1_FLAG_REG & 0x0001);
case MAILBOX_MPU2DSP2:
return(MAILBOX_MPU2DSP2_FLAG_REG & 0x0001);
default:
break;
}
return(0);
}
//=====================================================================//
//mail box interrpt process //
//=====================================================================//
void MAILBOX_InthProcess()
{
MAILBOX_Read(MAILBOX_DSP2MPU1A);
MAILBOX_Read(MAILBOX_DSP2MPU1B);
//get peripherals
OCP_UART2_SSW_MPU_CONF_REG |= 0x0001;
OCP_MCBSP1_SSW_MPU_CONF_REG |= 0x0001;
OCP_I2C_1_SSW_MPU_CONF_REG |= 0x0001;
OCP_I2C_2_SSW_MPU_CONF_REG |= 0x0001;
OCP_SPI_SSW_MPU_CONF_REG |= 0x0001;
TIPB_MCSI1_RHSW_MPU_CNF_REG |= 0x0001;
TIPB_MCSI2_RHSW_MPU_CNF_REG |= 0x0001;
TIPB_USIM_RHSW_MPU_CNF_REG |= 0x0001;
DSP_status = 1;
}
//=====================================================================//
//wait DSP run //
//=====================================================================//
void WaitDSPRun()
{
MAILBOX_IntCfg();
while(!DSP_status);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -