📄 nand_opt.s
字号:
;INCLUDE kxarm.h
; INCLUDE s2443addr.inc
;TEXTAREA
GET 2443addr.inc
AREA |C$$code|, CODE, READONLY
;/////////////////////////////////////////////////////
;//
;// void _Read_512Byte(unsigned char *pBuf)
;//
;// Read 512 bytes (1 Sector) word-alined buffer
;// Buffer (r0) must be word-aligned
;//
;/////////////////////////////////////////////////////
EXPORT _Read_512Byte
_Read_512Byte
stmfd sp!, {r1 - r11}
ldr r1, =NFDATA ; NFDATA
mov r2, #512 ; 512 byte count
1
ldr r4, [r1] ; Load 1st word
ldr r5, [r1] ; Load 2nd word
ldr r6, [r1] ; Load 3rd word
ldr r7, [r1] ; Load 4th word
ldr r8, [r1] ; Load 5th word
ldr r9, [r1] ; Load 6th word
ldr r10,[r1] ; Load 7th word
ldr r11,[r1] ; Load 8th word
stmia r0!, {r4 - r11} ; Store 8 words (32 byte)
subs r2, r2, #32
bne %B1
ldmfd sp!, {r1 - r11}
mov pc, lr ; Return
;/////////////////////////////////////////////////////
;//
;// void _Write_Dummy_468Byte_AllFF(void)
;//
;// Write Dummy 468 bytes 0xFF
;//
;/////////////////////////////////////////////////////
EXPORT _Write_Dummy_468Byte_AllFF
_Write_Dummy_468Byte_AllFF
stmfd sp!,{r1 - r2}
ldr r0, =0xFFFFFFFF
ldr r1, =NFDATA ; NFDATA
str r0, [r1] ; write 20 bytes
str r0, [r1]
str r0, [r1]
str r0, [r1]
str r0, [r1]
mov r2, #448 ; 468-20 byte count
1
str r0, [r1] ; 1
str r0, [r1] ; 2
str r0, [r1] ; 3
str r0, [r1] ; 4
str r0, [r1] ; 5
str r0, [r1] ; 6
str r0, [r1] ; 7
str r0, [r1] ; 8
subs r2, r2, #32
bne %B1
ldmfd sp!, {r1 - r2}
mov pc, lr ; Return
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -