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

📄 csl_cache.h

📁 TI达芬奇dm644x各硬件模块测试代码
💻 H
📖 第 1 页 / 共 3 页
字号:
 *  ============================================================================ */CACHE_L1_Freeze CACHE_freezeL1 (    void);/** ============================================================================ *   @n@b CACHE_unfreezeL1 * *   @b Description *   @n Unfreezes the L1P and L1D. *   @n As per the specification, *   @n a. The new unfreeze state is programmed in L1DCC, L1PCC. *   @n b. The old state is read from the L1DCC, L1PCC from the POPER field. *   @n    This latter read accomplishes 2 things, viz. Ensuring the new state *         is programmed as well as reading the old programmed value. * * *   @b Arguments *   @n None * *   <b> Return Value </b> *   @n  Old Freeze State (CACHE_L1_Freeze) * *   @b Example *   @verbatim        ...        CACHE_L1_Freeze oldFreezeState ;        oldFreezeState = CACHE_unfreezeL1();        ...     @endverbatim *  ============================================================================ */CACHE_L1_Freeze CACHE_unfreezeL1 (    void);/*----------------------------------------------------------------------------*\    L1P\*----------------------------------------------------------------------------*//** ============================================================================ *   @n@b CACHE_setL1pSize * *   @b Description *   @n Sets the L1P size. *   @n As per the specification, *   @n a. The new size is programmed in L1PCFG. *   @n b. L1PCFG is read back to ensure it is set. * *   @b Arguments *   @verbatim              newSize      New size to be programmed     @endverbatim * *   <b> Return Value </b> *   @n  Old Size set for L1P (CACHE_L1Size) * *   @b Example *   @verbatim        ...        CACHE_L1Size oldSize ;        oldSize = CACHE_setL1pSize(CACHE_L1_32KCACHE);        ...     @endverbatim *  ============================================================================ */CACHE_L1Size CACHE_setL1pSize (    CACHE_L1Size                newSize);/** ============================================================================ *   @n@b CACHE_freezeL1p * *   @b Description *   @n Freezes L1P. *   @n As per the specification, *   @n a. The new freeze state is programmed in L1PCC. *   @n b. The old state is read from the L1PCC from the POPER field. *   @n    This latter read accomplishes 2 things, viz. Ensuring the new state *         is programmed as well as reading the old programmed value. * *   @b Arguments *   @n None * *   <b> Return Value </b> *   @n  Old Freeze State (CACHE_L1_Freeze) * *   @b Example *   @verbatim        ...        CACHE_L1_Freeze oldFreezeState ;        oldFreezeState = CACHE_freezeL1p();        ...     @endverbatim *  ============================================================================ */CACHE_L1_Freeze CACHE_freezeL1p (    void);/** ============================================================================ *   @n@b CACHE_unfreezeL1p * *   @b Description *   @n Unfreezes L1P. *   @n As per the specification, *   @n a. The normal state is programmed in L1PCC *   @n b. The old state is read from the L1PCC from the POPER field. *   @n    This latter read accomplishes 2 things, viz. Ensuring the new state *         is programmed as well as reading the old programmed value. * *   @b Arguments *   @n None * *   <b> Return Value </b> *   @n  Old Freeze State (CACHE_L1_Freeze) * *   @b Example *   @verbatim        ...        CACHE_L1_Freeze oldFreezeState ;        oldFreezeState = CACHE_unfreezeL1p();        ...     @endverbatim *  ============================================================================ */CACHE_L1_Freeze CACHE_unfreezeL1p (    void);/* Block Operations *//** ============================================================================ *   @n@b CACHE_invL1p * *   @b Description *   @n Invalidates range specified in L1P. *   @n As per the specification, *   @n a. The start of the range that needs to be invalidated is written *         into L1PIBAR *   @n b. The byte count is programmed in L1PIWC. * *   @b Arguments *   @verbatim            blockPtr      Start address of range to be invalidated            byteCnt       Number of bytes to be invalidated            wait          Whether the call is blocking (and the extent of wait)                          till the issue operation is completed.                          Whether the function must exit on completion/or not.     @endverbatim * *   <b> Return Value </b> *   @n  None * *   @b Example *   @verbatim        ...        CACHE_invL1p ((Uint32*)(0x1000), 200, CACHE_NOWAIT);        ...     @endverbatim *  ============================================================================ */void CACHE_invL1p (    void            *blockPtr,    Uint32           byteCnt,    CACHE_Wait       wait);/* Global Operations *//** ============================================================================ *   @n@b CACHE_invAllL1p * *   @b Description *   @n Invalidates all of L1P. *   @n As per the specification, *   @n a. The L1PINV is programmed. * *   @b Arguments *   @verbatim            wait          Whether the call is blocking (and the extent of wait)                          till the issue operation is completed.                          Whether the function must exit on completion/or not.     @endverbatim * *   <b> Return Value </b> *   @n  None * *   @b Example *   @verbatim        ...        CACHE_invAllL1p (CACHE_NOWAIT);        ...     @endverbatim *  ============================================================================ */void CACHE_invAllL1p (    CACHE_Wait         wait);/*----------------------------------------------------------------------------*\    L1D\*----------------------------------------------------------------------------*//** ============================================================================ *   @n@b CACHE_setL1dSize * *   @b Description *   @n Sets the L1D size. *   @n As per the specification, *   @n a. The new size is programmed in L1DCFG *   @n b. L1DCFG is read back to ensure it is set. * *   @b Arguments *   @verbatim              newSize      New size to be programmed     @endverbatim * *   <b> Return Value </b> *   @n  Old Size set for L1D (CACHE_L1Size) * *   @b Example *   @verbatim        ...        CACHE_L1Size oldSize ;        oldSize = CACHE_setL1dSize(CACHE_L1_32KCACHE);        ...     @endverbatim *  ============================================================================ */CACHE_L1Size CACHE_setL1dSize (    CACHE_L1Size                newSize);/** ============================================================================ *   @n@b CACHE_freezeL1d * *   @b Description *   @n Freezes L1D. *   @n As per the specification, *   @n a. The new freeze state is programmed in L1DCC. *   @n b. The old state is read from the L1DCC from the POPER field. *   @n    This latter read accomplishes 2 things, viz. Ensuring the new state *         is programmed as well as reading the old programmed value. * *   @b Arguments *   @n None * *   <b> Return Value </b> *   @n  Old Freeze State (CACHE_L1_Freeze) * *   @b Example *   @verbatim        ...        CACHE_L1_Freeze oldFreezeState ;        oldFreezeState = CACHE_freezeL1d();        ...     @endverbatim *  ============================================================================ */CACHE_L1_Freeze CACHE_freezeL1d (    void);/** ============================================================================ *   @n@b CACHE_unfreezeL1d * *   @b Description *   @n Unfreezes L1D. *   @n As per the specification, *   @n a. The normal state is programmed in L1DCC *   @n b. The old state is read from the L1DCC from the POPER field. *   @n    This latter read accomplishes 2 things, viz. Ensuring the new state *         is programmed as well as reading the old programmed value. * *   @b Arguments *   @n None * *   <b> Return Value </b> *   @n  Old Freeze State (CACHE_L1_Freeze) * *   @b Example *   @verbatim        ...        CACHE_L1_Freeze oldFreezeState ;        oldFreezeState = CACHE_unfreezeL1d();        ...     @endverbatim *  ============================================================================ */CACHE_L1_Freeze CACHE_unfreezeL1d(    void);/* Block Operations *//** ============================================================================ *   @n@b CACHE_wbL1d * *   @b Description *   @n Writes back range specified in L1D. *   @n As per the specification, *   @n a. The start of the range that needs to be written back is programmed *         into L1DWBAR. *   @n b. The byte count is programmed in L1DWWC. * *   @b Arguments *   @verbatim            blockPtr      Start address of range to be written back            byteCnt       Number of bytes to be written back            wait          Whether the call is blocking (and the extent of wait)                          till the issue operation is completed or not.                          Whether the function must exit on completion/or not.     @endverbatim * *   <b> Return Value </b> *   @n  None * *   @b Example *   @verbatim        ...        CACHE_wbL1d((Uint32*)(0x1000), 200, CACHE_NOWAIT);        ...     @endverbatim *  ============================================================================ */void CACHE_wbL1d (    void           *blockPtr,    Uint32          byteCnt,    CACHE_Wait      wait);/** ============================================================================ *   @n@b CACHE_invL1d * *   @b Description *   @n Invalidates range specified in L1D. *   @n As per the specification, *   @n a. The start of the range that needs to be invalidated is written *         into L1DIBAR. *   @n b. The byte count is programmed in L1DIWC. * *   @b Arguments *   @verbatim            blockPtr      Start address of range to be invalidated            byteCnt       Number of bytes to be invalidated            wait          Whether the call is blocking (and the extent of wait)                          till the issue operation is completed.                          Whether the function must exit on completion/or not.     @endverbatim * *   <b> Return Value </b> *   @n  None * *   @b Example *   @verbatim        ...        CACHE_invL1d ((Uint32*)(0x1000), 200, CACHE_NOWAIT);        ...     @endverbatim *  ============================================================================ */void CACHE_invL1d (    void            *blockPtr,    Uint32           byteCnt,    CACHE_Wait       wait);/** ============================================================================ *   @n@b CACHE_wbInvL1d * *   @b Description *   @n Writeback invalidates range specified in L1D. *   @n As per the specification, *   @n a. The start of the range that needs to be writeback invalidated is *         programmed into L1DWIBAR. *   @n b. The byte count is programmed in L1DWIWC. * *   @b Arguments *   @verbatim            blockPtr      Start address of range to be written back invalidated            byteCnt       Number of bytes to be written back invalidated            wait          Whether the call is blocking (and the extent of wait)                          till the issue operation is completed.                          Whether the function must exit on completion/or not.     @endverbatim * *   <b> Return Value </b>

⌨️ 快捷键说明

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