📄 rheabridge.c
字号:
*/
void RHEA_ReadArmRheaCtrolReg(WriteBufferStrobe0_t *const WriteBufferStrobe0,
WriteBufferStrobe1_t *const WriteBufferStrobe1)
{
UWORD16 memReg = REG16(RHEA_ARM_CONTROL_REG_USER_ADDR);
*WriteBufferStrobe0 = (WriteBufferStrobe0_t)(memReg & RHEA_WRITE_BUFFER_TOGGLE_STROBE0_MASK);
*WriteBufferStrobe1 = (WriteBufferStrobe1_t)((memReg & RHEA_WRITE_BUFFER_TOGGLE_STROBE1_MASK)
>> RHEA_WRITE_BUFFER_TOGGLE_STROBE1_POS);
}
/*
------------------------------------------------------------------------------
RHEA_InitBusAllocReg -
------------------------------------------------------------------------------
*/
void RHEA_InitBusAllocReg(const RheaPriority_t RheaPriority,
const RheaPriorityToggle_t RheaPriorityToggle)
{
REG16(RHEA_BUS_ALLOC_REG_SUPERVISOR_ADDR)
= ( RheaPriority | RheaPriorityToggle << RHEA_PRIORITY_ENABLE_POS);
}
/*
------------------------------------------------------------------------------
RHEA_ReadBusAllocReg -
------------------------------------------------------------------------------
*/
void RHEA_ReadBusAllocReg(RheaPriority_t *const RheaPriority,
RheaPriorityToggle_t *const RheaPriorityToggle)
{
UWORD16 memReg = REG16(RHEA_BUS_ALLOC_REG_USER_ADDR);
*RheaPriority = (RheaPriority_t)(memReg & RHEA_PRIORITY_MASK);
*RheaPriorityToggle = (RheaPriorityToggle_t)((memReg & RHEA_PRIORITY_ENABLE_MASK) >> RHEA_PRIORITY_ENABLE_POS);
}
/*
------------------------------------------------------------------------------
RHEA_InitEnhancedRheaControlReg -
------------------------------------------------------------------------------
*/
void RHEA_InitEnhancedRheaCtrolReg(const RheaTimeOutToggle_t TimeOutEnable,
const RheaInterruptToggle_t InterruptDisable,
const RheaHighFrequencyToggle_t HighFrequencyEnable,
const RheaAbortToggle_t AbortDisable)
{
REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR)
= ( TimeOutEnable | (InterruptDisable << RHEA_MASK_INTERRUPT_POS)
| (HighFrequencyEnable << RHEA_HIGH_FREQ_POS)
| (AbortDisable << RHEA_MASK_ABORT_POS));
}
/*
------------------------------------------------------------------------------
RHEA_EnableTimeOutDisableMskIt -
------------------------------------------------------------------------------
*/
void RHEA_EnableTimeOutDisableMskIt(void)
{
/* extract all the fields but TimeOutToggle field */
UWORD16 value = REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR) & ~RHEA_TIMEOUT_TOGGLE_MASK
& ~RHEA_MASK_INTERRUPT_MASK;
/* add field contents into register */
REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR)
= value | RHEA_TIMEOUT_ENABLE | RHEA_INTERRUPT_ENABLE << RHEA_MASK_INTERRUPT_POS;
}
/*
------------------------------------------------------------------------------
RHEA_EnableTimeOut -
------------------------------------------------------------------------------
*/
void RHEA_EnableTimeOut(void)
{
/* extract all the fields but TimeOutToggle field */
UWORD16 value = REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR) & ~RHEA_TIMEOUT_TOGGLE_MASK;
/* add field contents into register */
REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR) = value | RHEA_TIMEOUT_ENABLE;
}
/*
------------------------------------------------------------------------------
RHEA_DisableTimeOut -
------------------------------------------------------------------------------
*/
void RHEA_DisableTimeOut(void)
{
/* extract all the fields but TimeOutToggle field */
UWORD16 value = REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR) & ~RHEA_TIMEOUT_TOGGLE_MASK;
/* add field contents into register */
REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR) = value | RHEA_TIMEOUT_DISABLE;
}
/*
------------------------------------------------------------------------------
RHEA_ReadEnhancedRheaCtrolReg -
------------------------------------------------------------------------------
*/
void RHEA_ReadEnhancedRheaCtrolReg
(RheaTimeOutToggle_t *const TimeOutEnable,
RheaInterruptToggle_t *const InterruptDisable,
RheaHighFrequencyToggle_t *const HighFrequencyEnable,
RheaAbortToggle_t *const AbortDisable)
{
UWORD16 memReg = REG16(RHEA_ENHANCED_CONTROL_REG_USER_ADDR);
*TimeOutEnable = (RheaTimeOutToggle_t)(memReg & RHEA_TIMEOUT_TOGGLE_MASK);
*InterruptDisable = (RheaInterruptToggle_t)((memReg & RHEA_MASK_INTERRUPT_MASK) >> RHEA_MASK_INTERRUPT_POS);
*HighFrequencyEnable = (RheaHighFrequencyToggle_t)((memReg & RHEA_HIGH_FREQ_TOGGLE_MASK) >> RHEA_HIGH_FREQ_POS);
*AbortDisable = (RheaAbortToggle_t)((memReg & RHEA_MASK_ABORT_MASK) >> RHEA_MASK_ABORT_POS);
}
/*
--------------------------------------------------------------------------
RHEA_ReadFaultAddress -
--------------------------------------------------------------------------
*/
UWORD16 RHEA_ReadFaultAddress(void)
{
UWORD16 memReg= REG16(RHEA_ADDRESS_DEBUG_REG_ADDR);
memReg &= RHEA_ADDRESS_DEBUG_MASK;
return ( (UWORD16) (memReg));
}
/*
-------------------------------------------------------------------------
RHEA_ReadFaultDataLow -
-------------------------------------------------------------------------
*/
UWORD16 RHEA_ReadFaultDataLow(void)
{
UWORD16 memReg= REG16(RHEA_DEBUG_DATA_LSB_REG_ADDR);
memReg &= RHEA_DEBUG_DATA_LSB_MASK;
return ( (UWORD16) (memReg));
}
/*
-------------------------------------------------------------------------
RHEA_ReadFaultDataHigh -
-------------------------------------------------------------------------
*/
UWORD16 RHEA_ReadFaultDataHigh(void)
{
UWORD16 memReg= REG16(RHEA_DEBUG_DATA_MSB_REG_ADDR);
memReg &= RHEA_DEBUG_DATA_MSB_MASK;
return ( (UWORD16) (memReg));
}
/*
-------------------------------------------------------------------------
RHEA_ReadDebugCtrolSignal -
-------------------------------------------------------------------------
*/
void RHEA_ReadDebugCtrolSignal
(boolean_t *const TimeOut,
boolean_t *const AccessSizeMismatch,
RHEA_Request_t *const RequestType,
boolean_t *const NotSupervisorMode,
RHEA_Access_Size_t *const MemoryAccessSize,
RHEA_Access_Size_t *const PeripheralMemoryAccessSize)
{
UWORD16 memReg;
UWORD8 AccessSize;
memReg = REG16(RHEA_DEBUG_CONTROL_SIGNAL_REG_ADDR);
*TimeOut = (boolean_t)(memReg & RHEA_ABORT_FLAG_MASK);
*AccessSizeMismatch = (boolean_t)((memReg & RHEA_WR_SIZE_FLAG_MASK) >> RHEA_WR_SIZE_FLAG_POS);
*RequestType = (RHEA_Request_t)((memReg & RHEA_DBG_RNW_MASK ) >> RHEA_DBG_RNW_POS);
*NotSupervisorMode = (boolean_t)((memReg & RHEA_DBG_NSPUV_MASK ) >> RHEA_DBG_NSPUV_POS);
AccessSize = (memReg & RHEA_DBG_MAS_MASK ) >> RHEA_DBG_MAS_POS;
*MemoryAccessSize = (RHEA_Access_Size_t)(( AccessSize == 3) ? RHEA_BITS32_SIZE : AccessSize );
AccessSize = (memReg & RHEA_DBG_PERHMAS_MASK) >> RHEA_DBG_PERHMAS_POS;
*PeripheralMemoryAccessSize = ( AccessSize == 3) ? RHEA_BITS32_SIZE : (RHEA_Access_Size_t)AccessSize;
}
/*
--------------------------------------------------------------------
RHEA_CheckResetCtrolReg -
--------------------------------------------------------------------
*/
boolean_t RHEA_CheckResetCtrolReg(void)
{
if ((REG16(RHEA_CNTL_REG_USER_ADDR) & RHEA_CNTL_REG_MASK) == RHEA_CNTL_REG_RESET_VALUE)
return (True);
else
return(False);
}
/*
---------------------------------------------------------------------
RHEA_CheckResetBusAllocReg -
---------------------------------------------------------------------
*/
boolean_t RHEA_CheckResetBusAllocReg(void)
{
if ((REG16(RHEA_BUS_ALLOC_REG_USER_ADDR) & RHEA_BUS_ALLOC_REG_MASK) == RHEA_BUS_ALLOC_REG_RESET_VALUE)
return True;
else
return False;
}
/*
---------------------------------------------------------------------------
RHEA_CheckResetArmRheaCtrolReg -
---------------------------------------------------------------------------
*/
boolean_t RHEA_CheckResetArmRheaCtrolReg(void)
{
if ((REG16(RHEA_ARM_CONTROL_REG_USER_ADDR) & RHEA_ARM_CONTROL_REG_MASK) == RHEA_ARM_CONTROL_REG_RESET_VALUE)
return True;
else
return False;
}
/*
--------------------------------------------------------------------------------
RHEA_CheckResetEnhancedRheaCtrolReg -
--------------------------------------------------------------------------------
*/
boolean_t RHEA_CheckResetEnhancedRheaCtrolReg(void)
{
if ((REG16(RHEA_ENHANCED_CONTROL_REG_USER_ADDR) & RHEA_ENHANCED_CONTROL_REG_MASK) == RHEA_ENHANCED_CONTROL_REG_RESET_VALUE)
return True;
else
return False;
}
/*
--------------------------------------------------------------------------------
RHEA_CheckResetFaultAddressReg -
--------------------------------------------------------------------------------
*/
boolean_t RHEA_CheckResetDebugFaultAddressReg(void)
{
if ((REG16(RHEA_ADDRESS_DEBUG_REG_ADDR) & RHEA_ADDRESS_DEBUG_MASK) == RHEA_ADDRESS_DEBUG_REG_RESET_VALUE )
return True;
else
return False;
}
/*
--------------------------------------------------------------------------------
RHEA_CheckResetDebugFaultDataLowReg -
--------------------------------------------------------------------------------
*/
boolean_t RHEA_CheckResetFaultDataLowReg(void)
{
if ((REG16(RHEA_DEBUG_DATA_LSB_REG_ADDR) & RHEA_DEBUG_DATA_LSB_MASK) == RHEA_DEBUG_DATA_LSB_RESET_VALUE)
return True;
else
return False;
}
/*
--------------------------------------------------------------------------------
RHEA_CheckResetDebugFaultDataHighReg -
--------------------------------------------------------------------------------
*/
boolean_t RHEA_CheckResetFaultDataHighReg(void)
{
if ((REG16(RHEA_DEBUG_DATA_MSB_REG_ADDR) & RHEA_DEBUG_DATA_MSB_MASK)== RHEA_DEBUG_DATA_MSB_RESET_VALUE )
return True;
else
return False;
}
/*
--------------------------------------------------------------------------------
RHEA_CheckResetDebugControlSignalReg -
--------------------------------------------------------------------------------
*/
boolean_t RHEA_CheckResetDebugCtrolSignalReg(void)
{
if ((REG16(RHEA_DEBUG_CONTROL_SIGNAL_REG_ADDR) & RHEA_DEBUG_CONTROL_SIGNAL_MASK)== RHEA_DEBUG_CONTROL_SIGNAL_REG_RESET_VALUE)
return True;
else
return False;
}
//--------------------------------------------------------------------------------
// RHEA_SetHighFrequency
//--------------------------------------------------------------------------------
void RHEA_SetHighFrequency(void)
{
UWORD16 value ;
value = REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR) & ~RHEA_HIGH_FREQ_TOGGLE_MASK;
/* add field contents into register */
REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR)
= value | (RHEA_HIGH_FREQUENCY_ENABLE << RHEA_HIGH_FREQ_POS);
}
//--------------------------------------------------------------------------------
// RHEA_SetLowFrequency
//--------------------------------------------------------------------------------
void RHEA_SetLowFrequency(void)
{
UWORD16 value ;
value = REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR) & ~RHEA_HIGH_FREQ_TOGGLE_MASK;
/* add field contents into register */
REG16(RHEA_ENHANCED_CONTROL_REG_SUPERVISOR_ADDR)
= value | (RHEA_HIGH_FREQUENCY_DISABLE << RHEA_HIGH_FREQ_POS);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -