ebi.s
来自「嵌入式系统」· S 代码 · 共 801 行 · 第 1/2 页
S
801 行
;/*-----------------------------------------------------------------------------
;@@@@
;@@@@ Copyright (c) 2000 Sharp Corporation All rights reserved.
;@@@@
;@@@@ (Summary) : EBI Setting Program
;@@@@
;@@@@ (Comment) :
;@@@@
;@@@@ (Author) : K.Misaki
;@@@@
;@@@@ (History) : Date Modifier Comment
;@@@@
;@@@@ (RCS ID) : $Header$
;@@@@
;-----------------------------------------------------------------------------*/
GET EBIip.h
;GET EBIchip.h
GET EBIsystem.h
MACRO
$label APD_EBI_SETTING
LDR r0, =APD_EBI_BASE;
;******************************************
; set EXTBIFCtrl Registers
;******************************************
IF ((APD_EBI_Z = APD_EBI_OUTPUT):LOR:\
(APD_EBI_Z = APD_EBI_HIGH_Z))
LDR r1, =APD_EBI_Z;
STR r1, [r0, #APD_RAM_EXTBIF_OFFSET];
ELSE
APD_EBI_Z Error
ENDIF
;*******************************************
; SETUP EBI 0
;*******************************************
IF (APD_EBI0_E = APD_EBI_ENABLE)
;***************************************
; set EBI Control Registers 0
;***************************************
IF ((APD_EBI0_IDLE >= APD_EBI_IDLE_MIN):LAND:\
(APD_EBI0_IDLE <= APD_EBI_IDLE_MAX))
ELSE
APD_EBI0_IDLE Error;
ENDIF
IF ((APD_EBI0_RS = APD_EBI_AFTER):LOR:\
(APD_EBI0_RS = APD_EBI_SAME))
ELSE
APD_EBI0_RS Error;
ENDIF
IF ((APD_EBI0_RH = APD_EBI_BEFORE):LOR:\
(APD_EBI0_RH = APD_EBI_SAME))
ELSE
APD_EBI0_RH Error;
ENDIF
IF ((APD_EBI0_WS = APD_EBI_AFTER):LOR:\
(APD_EBI0_WS = APD_EBI_SAME))
ELSE
APD_EBI0_WS Error;
ENDIF
IF ((APD_EBI0_WH = APD_EBI_BEFORE):LOR:\
(APD_EBI0_WH = APD_EBI_SAME))
ELSE
APD_EBI0_WH Error;
ENDIF
IF ((APD_EBI0_AS = APD_EBI_AFTER):LOR:\
(APD_EBI0_AS = APD_EBI_SAME))
ELSE
APD_EBI0_AS Error;
ENDIF
IF ((APD_EBI0_AH = APD_EBI_BEFORE):LOR:\
(APD_EBI0_AH = APD_EBI_SAME))
ELSE
APD_EBI0_AH Error;
ENDIF
IF ((APD_EBI0_P = APD_EBI_WORD4_PAGE):LOR:\
(APD_EBI0_P = APD_EBI_WORD8_PAGE))
ELSE
APD_EBI0_P Error;
ENDIF
IF ((APD_EBI0_S = APD_EBI_BIT32):LOR:\
(APD_EBI0_S = APD_EBI_BIT16):LOR:\
(APD_EBI0_S = APD_EBI_BIT8))
ELSE
APD_EBI0_S Error;
ENDIF
IF ((APD_EBI0_SSPEED >= APD_EBI_SSPEED_MIN):LAND:\
(APD_EBI0_SSPEED <= APD_EBI_SSPEED_MAX))
ELSE
APD_EBI0_SSPEED Error;
ENDIF
IF ((APD_EBI0_NSPEED >= APD_EBI_NSPEED_MIN):LAND:\
(APD_EBI0_NSPEED <= APD_EBI_NSPEED_MAX))
ELSE
APD_EBI0_NSPEED Error;
ENDIF
LDR r1, = APD_EBI0_IDLE_V:OR:APD_EBI0_RS_V:OR:\
APD_EBI0_RH_V:OR:APD_EBI0_WS_V:OR:\
APD_EBI0_WH_V:OR:APD_EBI0_AS_V:OR:\
APD_EBI0_AH_V:OR:APD_EBI0_P_V:OR:\
APD_EBI0_S_V:OR:APD_EBI0_NSS_V
STR r1, [r0, #APD_RAM_SEG_CTL0_OFFSET];
;***************************************
; set EBI Segment Map Registers 0
;***************************************
IF ((APD_EBI0_SIZE >= APD_EBI_SIZE_MIN):LAND:\
(APD_EBI0_SIZE <= APD_EBI_SIZE_MAX))
ELSE
APD_EBI0_SIZE Error;
ENDIF
ENDIF ;---IF (APD_EBI0_E = APD_EBI_ENABLE)---
LDR r1, =((APD_EBI0_E:SHL:APD_RAM_SEG_REG_E_OFFSET):OR:\
(APD_EBI0_START:AND:APD_RAM_SEG_REG_START_VALID):OR:\
(APD_EBI0_SIZE:SHL:APD_RAM_SEG_REG_SIZE_OFFSET));
STR r1, [r0, #APD_RAM_SEG_REG0_OFFSET];
;*******************************************
; SETUP EBI 1
;*******************************************
IF (APD_EBI1_E = APD_EBI_ENABLE)
;***************************************
; set EBI Control Registers 1
;***************************************
IF ((APD_EBI1_IDLE >= APD_EBI_IDLE_MIN):LAND:\
(APD_EBI1_IDLE <= APD_EBI_IDLE_MAX))
ELSE
APD_EBI1_IDLE Error;
ENDIF
IF ((APD_EBI1_RS = APD_EBI_AFTER):LOR:\
(APD_EBI1_RS = APD_EBI_SAME))
ELSE
APD_EBI1_RS Error;
ENDIF
IF ((APD_EBI1_RH = APD_EBI_BEFORE):LOR:\
(APD_EBI1_RH = APD_EBI_SAME))
ELSE
APD_EBI1_RH Error;
ENDIF
IF ((APD_EBI1_WS = APD_EBI_AFTER):LOR:\
(APD_EBI1_WS = APD_EBI_SAME))
ELSE
APD_EBI1_WS Error;
ENDIF
IF ((APD_EBI1_WH = APD_EBI_BEFORE):LOR:\
(APD_EBI1_WH = APD_EBI_SAME))
ELSE
APD_EBI1_WH Error;
ENDIF
IF ((APD_EBI1_AS = APD_EBI_AFTER):LOR:\
(APD_EBI1_AS = APD_EBI_SAME))
ELSE
APD_EBI1_AS Error;
ENDIF
IF ((APD_EBI1_AH = APD_EBI_BEFORE):LOR:\
(APD_EBI1_AH = APD_EBI_SAME))
ELSE
APD_EBI1_AH Error;
ENDIF
IF ((APD_EBI1_P = APD_EBI_WORD4_PAGE):LOR:\
(APD_EBI1_P = APD_EBI_WORD8_PAGE))
ELSE
APD_EBI1_P Error;
ENDIF
IF ((APD_EBI1_S = APD_EBI_BIT32):LOR:\
(APD_EBI1_S = APD_EBI_BIT16):LOR:\
(APD_EBI1_S = APD_EBI_BIT8))
ELSE
APD_EBI1_S Error;
ENDIF
IF ((APD_EBI1_SSPEED >= APD_EBI_SSPEED_MIN):LAND:\
(APD_EBI1_SSPEED <= APD_EBI_SSPEED_MAX))
ELSE
APD_EBI1_SSPEED Error;
ENDIF
IF ((APD_EBI1_NSPEED >= APD_EBI_NSPEED_MIN):LAND:\
(APD_EBI1_NSPEED <= APD_EBI_NSPEED_MAX))
ELSE
APD_EBI1_NSPEED Error;
ENDIF
LDR r1, = APD_EBI1_IDLE_V:OR:APD_EBI1_RS_V:OR:\
APD_EBI1_RH_V:OR:APD_EBI1_WS_V:OR:\
APD_EBI1_WH_V:OR:APD_EBI1_AS_V:OR:\
APD_EBI1_AH_V:OR:APD_EBI1_P_V:OR:\
APD_EBI1_S_V:OR:APD_EBI1_NSS_V
STR r1, [r0, #APD_RAM_SEG_CTL1_OFFSET];
;***************************************
; set EBI Segment Map Registers 1
;***************************************
IF ((APD_EBI1_SIZE >= APD_EBI_SIZE_MIN):LAND:\
(APD_EBI1_SIZE <= APD_EBI_SIZE_MAX))
ELSE
APD_EBI1_SIZE Error;
ENDIF
ENDIF ;---IF (APD_EBI1_E = APD_EBI_ENABLE)---
LDR r1, =((APD_EBI1_E:SHL:APD_RAM_SEG_REG_E_OFFSET):OR:\
(APD_EBI1_START:AND:APD_RAM_SEG_REG_START_VALID):OR:\
(APD_EBI1_SIZE:SHL:APD_RAM_SEG_REG_SIZE_OFFSET));
STR r1, [r0, #APD_RAM_SEG_REG1_OFFSET];
;*******************************************
; SETUP EBI 2
;*******************************************
IF (APD_EBI2_E = APD_EBI_ENABLE)
;***************************************
; set EBI Control Registers 2
;***************************************
IF ((APD_EBI2_IDLE >= APD_EBI_IDLE_MIN):LAND:\
(APD_EBI2_IDLE <= APD_EBI_IDLE_MAX))
ELSE
APD_EBI2_IDLE Error;
ENDIF
IF ((APD_EBI2_RS = APD_EBI_AFTER):LOR:\
(APD_EBI2_RS = APD_EBI_SAME))
ELSE
APD_EBI2_RS Error;
ENDIF
IF ((APD_EBI2_RH = APD_EBI_BEFORE):LOR:\
(APD_EBI2_RH = APD_EBI_SAME))
ELSE
APD_EBI2_RH Error;
ENDIF
IF ((APD_EBI2_WS = APD_EBI_AFTER):LOR:\
(APD_EBI2_WS = APD_EBI_SAME))
ELSE
APD_EBI2_WS Error;
ENDIF
IF ((APD_EBI2_WH = APD_EBI_BEFORE):LOR:\
(APD_EBI2_WH = APD_EBI_SAME))
ELSE
APD_EBI2_WH Error;
ENDIF
IF ((APD_EBI2_AS = APD_EBI_AFTER):LOR:\
(APD_EBI2_AS = APD_EBI_SAME))
ELSE
APD_EBI2_AS Error;
ENDIF
IF ((APD_EBI2_AH = APD_EBI_BEFORE):LOR:\
(APD_EBI2_AH = APD_EBI_SAME))
ELSE
APD_EBI2_AH Error;
ENDIF
IF ((APD_EBI2_P = APD_EBI_WORD4_PAGE):LOR:\
(APD_EBI2_P = APD_EBI_WORD8_PAGE))
ELSE
APD_EBI2_P Error;
ENDIF
IF ((APD_EBI2_S = APD_EBI_BIT32):LOR:\
(APD_EBI2_S = APD_EBI_BIT16):LOR:\
(APD_EBI2_S = APD_EBI_BIT8))
ELSE
APD_EBI2_S Error;
ENDIF
IF ((APD_EBI2_SSPEED >= APD_EBI_SSPEED_MIN):LAND:\
(APD_EBI2_SSPEED <= APD_EBI_SSPEED_MAX))
ELSE
APD_EBI2_SSPEED Error;
ENDIF
IF ((APD_EBI2_NSPEED >= APD_EBI_NSPEED_MIN):LAND:\
(APD_EBI2_NSPEED <= APD_EBI_NSPEED_MAX))
ELSE
APD_EBI2_NSPEED Error;
ENDIF
LDR r1, = APD_EBI2_IDLE_V:OR:APD_EBI2_RS_V:OR:\
APD_EBI2_RH_V:OR:APD_EBI2_WS_V:OR:\
APD_EBI2_WH_V:OR:APD_EBI2_AS_V:OR:\
APD_EBI2_AH_V:OR:APD_EBI2_P_V:OR:\
APD_EBI2_S_V:OR:APD_EBI2_NSS_V
STR r1, [r0, #APD_RAM_SEG_CTL2_OFFSET];
;***************************************
; set EBI Segment Map Registers 2
;***************************************
IF ((APD_EBI2_SIZE >= APD_EBI_SIZE_MIN):LAND:\
(APD_EBI2_SIZE <= APD_EBI_SIZE_MAX))
ELSE
APD_EBI2_SIZE Error;
ENDIF
ENDIF ;---IF (APD_EBI2_E = APD_EBI_ENABLE)---
LDR r1, =((APD_EBI2_E:SHL:APD_RAM_SEG_REG_E_OFFSET):OR:\
(APD_EBI2_START:AND:APD_RAM_SEG_REG_START_VALID):OR:\
(APD_EBI2_SIZE:SHL:APD_RAM_SEG_REG_SIZE_OFFSET));
STR r1, [r0, #APD_RAM_SEG_REG2_OFFSET];
;*******************************************
; SETUP EBI 3
;*******************************************
IF (APD_EBI3_E = APD_EBI_ENABLE)
;***************************************
; set EBI Control Registers 3
;***************************************
IF ((APD_EBI3_IDLE >= APD_EBI_IDLE_MIN):LAND:\
(APD_EBI3_IDLE <= APD_EBI_IDLE_MAX))
ELSE
APD_EBI3_IDLE Error;
ENDIF
IF ((APD_EBI3_RS = APD_EBI_AFTER):LOR:\
(APD_EBI3_RS = APD_EBI_SAME))
ELSE
APD_EBI3_RS Error;
ENDIF
IF ((APD_EBI3_RH = APD_EBI_BEFORE):LOR:\
(APD_EBI3_RH = APD_EBI_SAME))
ELSE
APD_EBI3_RH Error;
ENDIF
IF ((APD_EBI3_WS = APD_EBI_AFTER):LOR:\
(APD_EBI3_WS = APD_EBI_SAME))
ELSE
APD_EBI3_WS Error;
ENDIF
IF ((APD_EBI3_WH = APD_EBI_BEFORE):LOR:\
(APD_EBI3_WH = APD_EBI_SAME))
ELSE
APD_EBI3_WH Error;
ENDIF
IF ((APD_EBI3_AS = APD_EBI_AFTER):LOR:\
(APD_EBI3_AS = APD_EBI_SAME))
ELSE
APD_EBI3_AS Error;
ENDIF
IF ((APD_EBI3_AH = APD_EBI_BEFORE):LOR:\
(APD_EBI3_AH = APD_EBI_SAME))
ELSE
APD_EBI3_AH Error;
ENDIF
IF ((APD_EBI3_P = APD_EBI_WORD4_PAGE):LOR:\
(APD_EBI3_P = APD_EBI_WORD8_PAGE))
ELSE
APD_EBI3_P Error;
ENDIF
IF ((APD_EBI3_S = APD_EBI_BIT32):LOR:\
(APD_EBI3_S = APD_EBI_BIT16):LOR:\
(APD_EBI3_S = APD_EBI_BIT8))
ELSE
APD_EBI3_S Error;
ENDIF
IF ((APD_EBI3_SSPEED >= APD_EBI_SSPEED_MIN):LAND:\
(APD_EBI3_SSPEED <= APD_EBI_SSPEED_MAX))
ELSE
APD_EBI3_SSPEED Error;
ENDIF
IF ((APD_EBI3_NSPEED >= APD_EBI_NSPEED_MIN):LAND:\
(APD_EBI3_NSPEED <= APD_EBI_NSPEED_MAX))
ELSE
APD_EBI3_NSPEED Error;
ENDIF
LDR r1, = APD_EBI3_IDLE_V:OR:APD_EBI3_RS_V:OR:\
APD_EBI3_RH_V:OR:APD_EBI3_WS_V:OR:\
APD_EBI3_WH_V:OR:APD_EBI3_AS_V:OR:\
APD_EBI3_AH_V:OR:APD_EBI3_P_V:OR:\
APD_EBI3_S_V:OR:APD_EBI3_NSS_V
STR r1, [r0, #APD_RAM_SEG_CTL3_OFFSET];
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?