📄 csl_bwmngmtgethwsetup.c
字号:
/* ============================================================================
* Copyright (c) Texas Instruments Inc 2002, 2003, 2004, 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_bwmngmtGetHwSetup.c
*
* @brief File for functional layer of CSL API @a CSL_bwmngmtGetHwSetup()
*
* Description
* - The @a CSL_bwmngmtGetHwSetup() function definition & it's associated
* functions
*
* PATH \\(CSLPATH)\\ipmodules\\bwmngmt\\src
*
* @date 4th June, 2004
* @author Chad Courtney
*/
/* =============================================================================
* Revision History
* ===============
* 11-Apr-2005 Brn updated the file for doxygen compatibiliy
* 03-Aug-2005 Brn Butification
* =============================================================================
*/
#include <csl_bwmngmt.h>
/** ============================================================================
* @n@b CSL_bwmngmtGetHwSetup
*
* @b Description
*
* <b> Usage Constraints: </b>
* Both @a CSL_bwmngmtInit() and @a CSL_bwmngmtOpen() must be called
* successfully in that order before this function can be called.\n
*
* The following registers and fields are queried by this API \n
* @b Arguments
* @verbatim
hBwmngmt Handle to the BWMNGMT instance
setup Setup structure for BWMNGMT
* @endverbatim
*
* <b> Return Value </b> CSL_Status
* CSL_SOK - Close successful
* CSL_ESYS_BADHANDLE - Invalid handle
* CSL_ESYS_INVPARAMS - If setup is NULL
*
1. CPU Arbitration Parameters \n
- PRI field set in Control Block Specified by "control" \n
- MAXWAIT field set in Control Block Specified by "control" \n
2. IDMA Arbitration Parameter \n
- MAXWAIT field set in Control Block Specified by "control" \n
3. SLAP Arbitration Parameter \n
- MAXWAIT field set in Control Block Specified by "control" \n
4. MAP Arbitration Parameter \n
- PRI field set in Control Block Specified by "control" \n
if not EXT then returns CSL_BWMNGMT_PRI_NULL \n
5. UC Arbitration Parameter \n
- MAXWAIT field set in Control Block Specified by "control" \n
if not L1D or L2 then returns CSL_BWMNGMT_MAXWAIT_NULL \n
* @b Example:
* @verbatim
CSL_BwmngmtHandle hBwmngmt;
CSL_BwmngmtHwSetup hwSetup;
hwSetup.control = CSL_BWMNGMT_BLOCK_L1D;
// only CSL_BWMNGMT_BLOCK_L1D, CSL_BWMNGMT_BLOCK_L2, or
// CSL_BWMNGMT_BLOCK_EXT are valid
...
// Init Successfully done
...
// Open Successfully done
...
CSL_bwmngmtGetHwSetup(hBwmngmt, &hwSetup);
@endverbatim
*
* ===========================================================================
*/
#pragma CODE_SECTION (CSL_bwmngmtGetHwSetup, ".text:csl_section:bwmngmt");
CSL_Status CSL_bwmngmtGetHwSetup(
/** pointer to the object that holds reference to the
* instance of BWMNGMT requested after the call */
CSL_BwmngmtHandle hBwmngmt,
/** Place holder to return the hwSetup data */
CSL_BwmngmtHwSetup *hwSetup
)
{
CSL_Status status = CSL_SOK;
Uint32 ControlBlock;
if (hwSetup == NULL )
return CSL_ESYS_INVPARAMS;
ControlBlock = hwSetup->control;
if( ControlBlock == CSL_BWMNGMT_BLOCK_L1D ) {
hwSetup->cpuPriority = (CSL_BwmngmtPriority) CSL_FEXT
(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->CPUARBL1D, BWMNGMT_CPUARBL1D_PRI);
hwSetup->cpuMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->CPUARBL1D,
BWMNGMT_CPUARBL1D_MAXWAIT);
hwSetup->idmaMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->IDMAARBL1D,
BWMNGMT_IDMAARBL1D_MAXWAIT);
hwSetup->slapMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->SLAPARBL1D,
BWMNGMT_SLAPARBL1D_MAXWAIT);
hwSetup->ucMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->UCARBL1D,
BWMNGMT_UCARBL1D_MAXWAIT);
}
else if( ControlBlock == CSL_BWMNGMT_BLOCK_L2 ) {
hwSetup->cpuPriority = (CSL_BwmngmtPriority)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->CPUARBL2,
BWMNGMT_CPUARBL2_PRI);
hwSetup->cpuMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->CPUARBL2,
BWMNGMT_CPUARBL2_MAXWAIT);
hwSetup->idmaMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->IDMAARBL2,
BWMNGMT_IDMAARBL2_MAXWAIT);
hwSetup->slapMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->SLAPARBL2,
BWMNGMT_SLAPARBL2_MAXWAIT);
hwSetup->ucMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->UCARBL2,
BWMNGMT_UCARBL2_MAXWAIT);
}
else if( ControlBlock == CSL_BWMNGMT_BLOCK_EXT ) {
hwSetup->cpuPriority = (CSL_BwmngmtPriority)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->CPUARBEXT,
BWMNGMT_CPUARBEXT_PRI);
hwSetup->cpuMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->CPUARBEXT,
BWMNGMT_CPUARBEXT_MAXWAIT);
hwSetup->idmaMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->IDMAARBEXT,
BWMNGMT_IDMAARBEXT_MAXWAIT);
hwSetup->slapMaxwait = (CSL_BwmngmtMaxwait)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->SLAPARBEXT,
BWMNGMT_SLAPARBEXT_MAXWAIT);
hwSetup->mapPriority = (CSL_BwmngmtPriority)
CSL_FEXT(((CSL_BwmngmtRegs*)CSL_BWMNGMT_REGS)->MAPARBEXT,
BWMNGMT_MAPARBEXT_PRI);
}
else status = CSL_ESYS_INVPARAMS;
return status;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -