📄 system_func.asm
字号:
/******************************************************************************** Copyright (c) 2002 - Analog Devices, Inc.* This software is PROPRIETARY and CONFIDENTIAL******************************************************************************** $RCSfile: system_func.asm,v $* $Revision: 1.3 $* $Date: 2003/09/22 10:50:42 $** Project: UMTS FDD Library* Title: System Function * Author(s): Vito Greco (vito.greco@analog.com)* ** Description: Defines CacheReset and BTB for TS201******************************************************************************** Target Processor: ADSP-TS201*******************************************************************************/// /////////////////////////////////////////////////////////////////////////// ////// System_func.asm//// /////////////////////////////////////////////////////////////////////////// //// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //// >> >> //// >> BEGIN PREPROCESSOR COMMANDS >> //// ~~~// ~~~ COMMENT BLOCK// ~~~// -------- #DEFINE STATEMENTS ----------------------------------------------- //#define REFRESH_RATE_500MHZ (750)#define REFRESH_RATE_400MHZ (600)#define REFRESH_RATE_300MHZ (450)#define REFRESH_RATE (REFRESH_RATE_300MHZ)// -------- #INCLUDE STATEMENTS ---------------------------------------------- //#include "defts201.h"// << END PREPROCESSOR COMMANDS << //// << << //// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //// >> >> //// >> BEGIN DECLARATIONS >> //// ~~~// ~~~ COMMENT BLOCK// ~~~// -------- GLOBAL VARIABLE DECLARATIONS ------------------------------------- //// -------- FUNCTION PROTOTYPE DECLARATIONS ---------------------------------- //// << END DECLARATIONS << //// << << //// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //// >> >> //// >> BEGIN FUNCTION >> //// ~~~// ~~~ COMMENT BLOCK// ~~~// -------- LOCAL VARIABLE DECLARATIONS -------------------------------------- //// -------- CODE ------------------------------------------------------------- //.section program;.global _system_func;.align_code 4;_system_func:// ~~~// ~~~ PROLOGUE SAVES CJMP, "PRESERVED" REGISTERS, AND FRAME AND STACK POINTER// ~~~ J26 = J27 - 64; K26 = K27 - 64;; [J27 += -28] = CJMP; K27 = K27 - 20;; q[J27 + 24] = XR27:24; q[K27 + 16] = YR27:24;; q[J27 + 20] = XR31:28; q[K27 + 12] = YR31:28;; q[J27 + 16] = J19:16; q[K27 + 8 ] = K19:16;; q[J27 + 12] = J23:20; q[K27 + 4 ] = K23:20;; // ~~~// ~~~ CACHE DISABLE// ~~~ .align_code 4;_disable_cache: // -------- CACHE 0 DISABLE -------------------------------------------------- //.align_code 4;_check_enable_cache_0: XR0 = CASTAT0;; XBITEST R0 BY CASTAT_ENBL_P;; IF XSEQ, JUMP _check_enable_cache_2 (NP);;_check_enable_cache_0.end: nop;; nop;; nop;; nop;; nop;; nop;; CACMD0 = CACMD_DIS;; .align_code 4;_check_disable_cache_0: XR0 = CASTAT0;; XBITEST R0 BY CASTAT_ENBL_P;; IF NXSEQ, JUMP _check_disable_cache_0 (NP);; _check_disable_cache_0.end: nop;; nop;; nop;; nop;; nop;; nop;;// CCAIR0 = 0x00000000;; J0 = 0;; //modified by Frank CCAIR0 = J0;; //modified by Frank CACMD0 = (CACMD_CB | CACMD_NOSTALL | (127 << CACMD_LEN_P));;.align_code 4;_check_copyback_cache_0: XR0 = CASTAT0;; XBITEST R0 BY CASTAT_COM_ACTIVE_P;; IF NXSEQ, JUMP _check_copyback_cache_0 (NP);; _check_copyback_cache_0.end: nop;; nop;; nop;; nop;; nop;; nop;; // -------- CACHE 2 DISABLE -------------------------------------------------- //.align_code 4;_check_enable_cache_2: XR0 = CASTAT2;; XBITEST R0 BY CASTAT_ENBL_P;; IF XSEQ, JUMP _check_enable_cache_4 (NP);;_check_enable_cache_2.end: nop;; nop;; nop;; nop;; nop;; nop;; CACMD2 = CACMD_DIS;; .align_code 4;_check_disable_cache_2: XR0 = CASTAT2;; XBITEST R0 BY CASTAT_ENBL_P;; IF NXSEQ, JUMP _check_disable_cache_2 (NP);; _check_disable_cache_2.end: nop;; nop;; nop;; nop;; nop;; nop;;// CCAIR2 = 0x00000000;; J0 = 0;; //modified by Frank CCAIR2 = J0;; //modified by Frank CACMD2 = (CACMD_CB | CACMD_NOSTALL | (127 << CACMD_LEN_P));;.align_code 4;_check_copyback_cache_2: XR0 = CASTAT2;; XBITEST R0 BY CASTAT_COM_ACTIVE_P;; IF NXSEQ, JUMP _check_copyback_cache_2 (NP);; _check_copyback_cache_2.end: nop;; nop;; nop;; nop;; nop;; nop;;// -------- CACHE 4 DISABLE -------------------------------------------------- //.align_code 4;_check_enable_cache_4: XR0 = CASTAT4;; XBITEST R0 BY CASTAT_ENBL_P;; IF XSEQ, JUMP _check_enable_cache_6 (NP);;_check_enable_cache_4.end: nop;; nop;; nop;; nop;; nop;; nop;; CACMD4 = CACMD_DIS;; .align_code 4;_check_disable_cache_4: XR0 = CASTAT4;; XBITEST R0 BY CASTAT_ENBL_P;; IF NXSEQ, JUMP _check_disable_cache_4 (NP);; _check_disable_cache_4.end: nop;; nop;; nop;; nop;; nop;; nop;;// CCAIR4 = 0x00000000;; J0 = 0;; //modified by Frank CCAIR4 = J0;; //modified by Frank CACMD4 = (CACMD_CB | CACMD_NOSTALL | (127 << CACMD_LEN_P));;.align_code 4;_check_copyback_cache_4: XR0 = CASTAT4;; XBITEST R0 BY CASTAT_COM_ACTIVE_P;; IF NXSEQ, JUMP _check_copyback_cache_4 (NP);; _check_copyback_cache_4.end: nop;; nop;; nop;; nop;; nop;; nop;;// -------- CACHE 6 DISABLE -------------------------------------------------- //.align_code 4;_check_enable_cache_6: XR0 = CASTAT6;; XBITEST R0 BY CASTAT_ENBL_P;; IF XSEQ, JUMP _check_enable_cache_8 (NP);;_check_enable_cache_6.end: nop;; nop;; nop;; nop;; nop;; nop;; CACMD6 = CACMD_DIS;; .align_code 4;_check_disable_cache_6: XR0 = CASTAT6;; XBITEST R0 BY CASTAT_ENBL_P;; IF NXSEQ, JUMP _check_disable_cache_6 (NP);; _check_disable_cache_6.end: nop;; nop;; nop;; nop;; nop;; nop;;// CCAIR6 = 0x00000000;; J0 = 0;; //modified by Frank CCAIR6 = J0;; //modified by Frank CACMD6 = (CACMD_CB | CACMD_NOSTALL | (127 << CACMD_LEN_P));;.align_code 4;_check_copyback_cache_6: XR0 = CASTAT6;; XBITEST R0 BY CASTAT_COM_ACTIVE_P;; IF NXSEQ, JUMP _check_copyback_cache_6 (NP);; _check_copyback_cache_6.end: nop;; nop;; nop;; nop;; nop;; nop;;// -------- CACHE 8 DISABLE -------------------------------------------------- //.align_code 4;_check_enable_cache_8: XR0 = CASTAT8;; XBITEST R0 BY CASTAT_ENBL_P;; IF XSEQ, JUMP _check_enable_cache_10 (NP);;_check_enable_cache_8.end: nop;; nop;; nop;; nop;; nop;; nop;; CACMD8 = CACMD_DIS;; .align_code 4;_check_disable_cache_8: XR0 = CASTAT8;; XBITEST R0 BY CASTAT_ENBL_P;; IF NXSEQ, JUMP _check_disable_cache_8 (NP);; _check_disable_cache_8.end: nop;; nop;; nop;; nop;; nop;; nop;;// CCAIR8 = 0x00000000;; J0 = 0;; //modified by Frank CCAIR8 = J0;; //modified by Frank CACMD8 = (CACMD_CB | CACMD_NOSTALL | (127 << CACMD_LEN_P));;.align_code 4;_check_copyback_cache_8: XR0 = CASTAT8;; XBITEST R0 BY CASTAT_COM_ACTIVE_P;; IF NXSEQ, JUMP _check_copyback_cache_8 (NP);; _check_copyback_cache_8.end: nop;; nop;; nop;; nop;; nop;; nop;;// -------- CACHE 10 DISABLE ------------------------------------------------- //.align_code 4;_check_enable_cache_10: XR0 = CASTAT10;; XBITEST R0 BY CASTAT_ENBL_P;; IF XSEQ, JUMP _invalidate_cache (NP);;_check_enable_cache_10.end: nop;; nop;; nop;; nop;; nop;; nop;; CACMD10 = CACMD_DIS;; .align_code 4;_check_disable_cache_10: XR0 = CASTAT10;; XBITEST R0 BY CASTAT_ENBL_P;; IF NXSEQ, JUMP _check_disable_cache_10 (NP);; _check_disable_cache_10.end: nop;; nop;; nop;; nop;; nop;; nop;;// CCAIR10 = 0x00000000;; J0 = 0;; //modified by Frank CCAIR10 = J0;; //modified by Frank CACMD10 = (CACMD_CB | CACMD_NOSTALL | (127 << CACMD_LEN_P));;.align_code 4;_check_copyback_cache_10: XR0 = CASTAT10;; XBITEST R0 BY CASTAT_COM_ACTIVE_P;; IF NXSEQ, JUMP _check_copyback_cache_10 (NP);; _check_copyback_cache_10.end: nop;; nop;; nop;; nop;; nop;; nop;;.align_code 4;_disable_cache.end:// ~~~// ~~~ INVALIDATE CACHE// ~~~.align_code 4;_invalidate_cache:// -------- CACHE 0 INVALIDATE ----------------------------------------------- //// CCAIR0 = 0x00000000;; J0 = 0;; //modified by Frank CCAIR0 = J0;; //modified by Frank CACMD0 = (CACMD_INV | CACMD_NOSTALL | (511 << CACMD_LEN_P));;.align_code 4;_check_invalidate_cache_0: XR0 = CASTAT0;; XBITEST R0 BY CASTAT_COM_ACTIVE_P;; IF NXSEQ, JUMP _check_invalidate_cache_0 (NP);; _check_invalidate_cache_0.end: nop;; nop;; nop;; nop;; nop;; nop;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -