📄 csl_pscgethwstatus.c
字号:
/* ============================================================================
* Copyright (c) Texas Instruments Inc 2005
*
* Use of this software is controlled by the terms and conditions found
* in the license agreement under which this software has been supplied.
* ===========================================================================
*/
/** @file csl_pscGetHwStatus.c
*
* @path $(CSLPATH)\psc\v1\src
*
* @brief File for functional layer of CSL API @a CSL_pscGetHwStatus()
*
*/
/* =============================================================================
* Revision History
* ===============
* 5-June-2005 Lawrence Ronk File Created.
* =============================================================================
*/
#include <csl_psc.h>
#include <csl_pscAux.h>
/** ============================================================================
* @n@b CSL_pscGetHwStatus
*
* @b Description
* @n Gets the status of the different operations of PSC.
*
* @b Arguments
* @verbatim
hPsc Handle to the PSC instance
query The query to this API of PSC which indicates the
status to be returned.
response Placeholder to return the status.
@endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - Status info return successful
* @li CSL_ESYS_BADHANDLE - Invalid handle
* @li CSL_ESYS_INVQUERY - Invalid query command
* @li CSL_ESYS_INVPARAMS - Invalid parameter
* @li CSL_ESYS_NOTSUPPORTED- Action Not Supported
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_PscHandle hPsc;
CSL_PscHwStatusQuery query;
void reponse;
status = CSL_pscGetHwStatus (hPsc, query, &response);
@endverbatim
* =============================================================================
*/
#pragma CODE_SECTION (CSL_pscGetHwStatus, ".text:csl_section:psc");
CSL_Status CSL_pscGetHwStatus (
CSL_PscHandle hPsc,
CSL_PscHwStatusQuery query,
void *response
)
{
CSL_Status status = CSL_SOK;
if (hPsc == NULL){
return CSL_ESYS_BADHANDLE;
}
if (response == NULL){
return CSL_ESYS_INVPARAMS;
}
switch (query) {
case CSL_PSC_QUERY_PID:
((CSL_PscPeriphId *)response)->pIdScheme = CSL_FEXT(hPsc->regs->PID, PSC_PID_SCHEME);
((CSL_PscPeriphId *)response)->pIdFunc = CSL_FEXT(hPsc->regs->PID, PSC_PID_FUNC);
((CSL_PscPeriphId *)response)->pIdRtl = CSL_FEXT(hPsc->regs->PID, PSC_PID_RTL);
((CSL_PscPeriphId *)response)->pIdMajor = CSL_FEXT(hPsc->regs->PID, PSC_PID_MAJOR);
((CSL_PscPeriphId *)response)->pIdCustom = CSL_FEXT(hPsc->regs->PID, PSC_PID_CUSTOM);
((CSL_PscPeriphId *)response)->pIdMinor = CSL_FEXT(hPsc->regs->PID, PSC_PID_MINOR);
break;
case CSL_PSC_QUERY_GET_PD_CFG:
status = CSL_pscPdCfgGet( hPsc, (CSL_PscPdCfg *)response );
case CSL_PSC_QUERY_GET_MD_CFG:
status = CSL_pscMdCfgGet( hPsc, (CSL_PscMdCfg *)response );
break;
case CSL_PSC_QUERY_INT_PEND_STATUS:
status = CSL_pscIntPendStat( hPsc, (CSL_PscIntPendRegs *)response );
break;
case CSL_PSC_QUERY_PD_INT_STATUS:
CSL_pscPdIntStat( hPsc, (CSL_PscPdIntStatus *)response );
break;
case CSL_PSC_QUERY_MD_INT_STATUS:
CSL_pscMdIntStat( hPsc, (CSL_PscMdIntStatus *)response );
break;
case CSL_PSC_QUERY_MD_DSP_LRESET_DONE:
*((CSL_PscResetDone *)response) = (CSL_PscResetDone) CSL_FEXT(hPsc->regs->MDSTAT[CSL_PSC_MD_DSP], PSC_MDSTAT_LRSTDONE);
break;
case CSL_PSC_QUERY_MD_MCKOUT:
CSL_pscMdClkStat( hPsc, (CSL_PscMdClkStatus *)response );
break;
default:
status = CSL_ESYS_INVQUERY ;
}
return status;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -