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

📄 ssw.c

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 C
字号:
//========================================================================
//          TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
//   Property of Texas Instruments
//   For Unrestricted Internal Use Only
//   Unauthorized reprofuction and/or distribution is strictly prohibited.
//   This product is protected under copyright law and trade secret law
//   as an unpublished work
//   Created 2000,  (C) Copyright 2000 Texas Instruments. All rights reserved
//
//
//   Filename           : ssw.c
//
//   Date of Module Modification:3/22/04
//   Date of Generation :N/A - created on 3/19/04
//
//
//========================================================================

#include "ssw.h"
#include "global_types.h"


/*-----------------------------------------------------------------------------
 * NAME         : SSW_ConfAddress
 *
 * DESCRIPTION  : Returns the Rhea switch configuration register address of the selected peripheral
 *
 * PARAMETERS   : UWORD16  ssw_sel - Select SSW, UWORD16 value
 *
 * RETURN VALUE : UWORD32 SSW_ConfAddress
 *
 *------------------------------------------------------------------------------*/

UWORD32 SSW_ConfAddress(SSW_id ssw_sel)
{
  switch (ssw_sel)
  {
    case UART_1             : return(SSW_ConfAddr(UART1));
    case UART_2             : return(SSW_ConfAddr(UART2));
    case UART_3             : return(SSW_ConfAddr(UART3));
    case MCBSP1             : return(SSW_ConfAddr(MCBSP1));
    case MCBSP_DIGITAL_RF   : return(SSW_ConfAddr(MCBSP_DIGITAL_RF));
    case I2C_1              : return(SSW_ConfAddr(I2C_1));
    case SPI                : return(SSW_ConfAddr(SPI));
    case DMT1               : return(SSW_ConfAddr(DMT1));
    case DMT2               : return(SSW_ConfAddr(DMT2));
    case I2C_2              : return(SSW_ConfAddr(I2C_2));
    case DIG_RF             : return(SSW_ConfAddr(DIG_RF));
    case NDFLASH            : return(SSW_ConfAddr(NDFLASH));
    case MMC_SDIO2          : return(SSW_ConfAddr(MMC_SDIO2));
    case MCSI1              : return(SSW_ConfAddr(MCSI1));
    case MCSI2              : return(SSW_ConfAddr(MCSI2));
    case TPU                : return(SSW_ConfAddr(TPU));
    case TSP                : return(SSW_ConfAddr(TSP));
    case GEA3               : return(SSW_ConfAddr(GEA3));
    case CIPHERA5           : return(SSW_ConfAddr(CIPHERA5));
    case USIM               : return(SSW_ConfAddr(USIM));
    case ULPD               : return(SSW_ConfAddr(ULPD));
  }

} /* SSW_ConfAddress */


/*-----------------------------------------------------------------------------
 * NAME         : SSW_StatAddress
 *
 * DESCRIPTION  : Returns the Rhea switch status register address of the selected peripheral

 * PARAMETERS   : UWORD16  ssw_sel - Select SSW, UWORD16 value
 *
 * RETURN VALUE : UWORD32 SSW_StatAddress
 *
 *------------------------------------------------------------------------------*/

UWORD32 SSW_StatAddress(SSW_id ssw_sel)
{
  return (SSW_ConfAddress(ssw_sel)+4);
}


/*-----------------------------------------------------------------------------
 * NAME         : SSW_GetOwner
 *
 * DESCRIPTION  : Get Owner of Rhea Switch for the selected peripheral
 *
 * PARAMETERS   : UWORD16  ssw_sel - Select SSW
 *
 * RETURN VALUE : UWORD16  Error Code
 *                SSW_DSP_ACCESS - DSP is SSW owner
 *                SSW_ARM_ACCESS - ARM is SSW owner
 *                SSW_NO_ACCESS  - None of CPU's own SSW
 *
 *------------------------------------------------------------------------------*/

UWORD16 SSW_GetOwner(SSW_id ssw_sel)
{
  UWORD32 ssw_confAddr = SSW_ConfAddress(ssw_sel);
  return(REG16(ssw_confAddr));
}


/*-----------------------------------------------------------------------------
 * NAME         : SSW_Grab
 *
 * DESCRIPTION  : Grab Rhea Switch to get access to the selected peripheral
 *
 * PARAMETERS   : UWORD16  ssw_sel - Select SSW
 *
 * RETURN VALUE : UWORD16  Error Code
 *                FALSE - SSW Grabbed
 *                TRUE  - Can not Grab SSW
 *
 *------------------------------------------------------------------------------*/

UWORD16 SSW_Grab(SSW_id ssw_sel)
{
  UWORD32 ssw_confAddr = SSW_ConfAddress(ssw_sel);

  /* Request SSW */
  REG16(ssw_confAddr) = SSW_REQUEST;

  /* Verify ssw ownership */
  if ( REG16(ssw_confAddr) & SSW_REQUEST )
    return( FALSE );
  else
    return( TRUE );

} /* SSW_Grab() */



/*-----------------------------------------------------------------------------
 * NAME         : SSW_Release
 *
 * DESCRIPTION  : Release Rhea Switch to get allow other CPU access
 *                to the selected peripheral
 *
 * PARAMETERS   : UWORD16  ssw_sel - Select SSW
 *
 * RETURN VALUE : None
 *
 *------------------------------------------------------------------------------*/

void SSW_Release(SSW_id ssw_sel)
{
  UWORD32 ssw_confAddr = SSW_ConfAddress(ssw_sel);

  /* Request SSW release */
  REG16(ssw_confAddr) &= ~SSW_REQUEST;

} /* SSW_Release() */




⌨️ 快捷键说明

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