📄 funcramtst.asm
字号:
#include p18c801.inc
EXTRAM_START equ 0x100000
EXTRAM_SIZE equ 0x20000 ;128k bytes
EXTERN Func_Trap
Global HW_Bd_Test
MYCODE CODE
;
HW_Bd_Test
movlw low EXTRAM_START
movwf TBLPTRL
movlw high EXTRAM_START
movwf TBLPTRH
movlw upper EXTRAM_START
movwf TBLPTRU
movlw 0x00
movwf PRODL ;256 counter
;
r_t_0: ;write and test first 256 bytes
movlw 0x00
movwf TABLAT
tblwt*+
decf PRODL
bnz r_t_0
movlw 0xff
movwf PRODL
tblrd*-
r_t_0_1:
tblrd*-
movf TABLAT,0
xorlw 0x00
btfss STATUS,2,0 ;see if it's zero
goto TRAP1 ;Func_Trap
decf PRODL
bnz r_t_0_1
;
;
movlw 0x00
movwf PRODL
r_t_1:
movff PRODL,TABLAT
tblwt*+
incf PRODL
bnz r_t_1
decf PRODL
tblrd*-
r_t_1_1:
tblrd*-
movf TABLAT,0
xorwf PRODL,0
btfss STATUS,2,0 ;see if it's zero
goto Func_Trap
decf PRODL
bnz r_t_1_1
;
;write and test first 2 bytes of each section(256byte)
movlw upper EXTRAM_SIZE
movwf PRODH
movlw high EXTRAM_SIZE
movwf PRODL
;
movf PRODL,0
addwf TBLPTRH
movf PRODH,0
addwfc TBLPTRU
;
r_t_2:
decf TBLPTRH
movlw 0
subwfb TBLPTRU
;
decf PRODL
movlw 0
subwfb PRODH
;
movff PRODL,TABLAT
tblwt*+
movff PRODH,TABLAT
tblwt*-
;
movf PRODL,0
xorlw 0
bnz r_t_2
movf PRODH,0
xorlw 0
bnz r_t_2
r_t_2_0:
movlw upper EXTRAM_SIZE
movwf PRODH
movlw high EXTRAM_SIZE
movwf PRODL
;
movf PRODL,0
addwf TBLPTRH
movf PRODH,0
addwfc TBLPTRU
;
r_t_2_1:
decf TBLPTRH
movlw 0
subwfb TBLPTRU
;
decf PRODL
movlw 0
subwfb PRODH
;
tblrd*+
movf PRODL,0
xorwf TABLAT
btfss STATUS,2,0 ;see if it's zero
goto Func_Trap
tblrd*-
movf PRODH,0
xorwf TABLAT
btfss STATUS,2,0 ;see if it's zero
goto Func_Trap
;
movf PRODL,0
xorlw 0
bnz r_t_2_1
movf PRODH,0
xorlw 0
bnz r_t_2_1
return
TRAP1:
TBLRD *
bra TRAP1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -