📄 drv_nandflash.ms
字号:
.file "..\src\drv_nandflash.c"
; GNU C 2.7.2 [AL 1.1, MM 40] RISC NEWS-OS compiled by CC
; Cc1 defaults:
; -mmemcpy
; Cc1 arguments (-G value = 0, Cpu = 3000, ISA = 1):
; -quiet -dumpbase -g -O -fno-builtin -o
gcc2_compiled.:
__gnu_compiled_c:
.code
.def _tag_nand_fls, scl 10, type 0x8, size 4, endef
.def maker_code, val 0, scl 8, type 0xc, endef
.def device_code, val 1, scl 8, type 0xc, endef
.def rev1, val 2, scl 8, type 0xc, endef
.def mutiplane_code, val 3, scl 8, type 0xc, endef
.def _tag_nand_fls, val 4, scl 102, tag _tag_nand_fls, size 4, endef
.def t_nand_fls_id, scl 13, tag _tag_nand_fls, size 4, type 0x8, endef
.align 1
.def nand_fls_init, val nand_fls_init, scl 2, type 0x24, endef
.global nand_fls_init
.loc 32
.def ent, scl 101, type 0x0, endef
nand_fls_init:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.loc 33
.def begin, scl 100, type 0x0, endef
.def i, val 11, scl 4, type 0xd, endef
.loc 35
ext this_nand_fls_id+0x0@h ; xld.w %r12,this_nand_fls_id
ext this_nand_fls_id+0x0@m
ld.w %r12,this_nand_fls_id+0x0@l
ext p_nand_fls_id+0x0@h ; xld.w [p_nand_fls_id],%r12
ext p_nand_fls_id+0x0@m
ld.w %r9,p_nand_fls_id+0x0@l
ld.w [%r9],%r12
.loc 36
ld.w %r13,0x0
ld.w %r14,0x4 ; xld.w %r14,0x00000004 ; 4
ext memset@rh ; xcall memset
ext memset@rm
call memset@rl
.loc 41
ext 0x0 ; xld.w %r12,0x000402d9 ; 262873
ext 0x100b
ld.w %r12,0x19
bclr [%r12],0x5 ; xbclr [%r12],0x5
.loc 42
ext 0x0 ; xld.w %r11,0x000402da ; 262874
ext 0x100b
ld.w %r11,0x1a
bset [%r11],0x5 ; xbset [%r11],0x5
.loc 43
bclr [%r12],0x4 ; xbclr [%r12],0x4
.loc 44
bset [%r11],0x4 ; xbset [%r11],0x4
.loc 47
ext 0x6 ; xld.w %r12,0x00300022 ; 3145762
ext 0x0
ld.w %r12,0x22
bset [%r12],0x1 ; xbset [%r12],0x1
.loc 50
ext 0x6 ; xld.w %r11,0x0030004a ; 3145802
ext 0x1
ld.w %r11,0xa
;.set volatile
ld.ub %r10,[%r11] ; xld.ub %r10,[%r11]
;.set novolatile
ext 0x3 ; xand %r10,%r10,0x000000f3
and %r10,0x33
;.set volatile
ld.b [%r11],%r10 ; xld.b [%r11],%r10
;.set novolatile
.loc 53
ext 0x6 ; xld.w %r11,0x00300023 ; 3145763
ext 0x0
ld.w %r11,0x23
bset [%r11],0x1 ; xbset [%r11],0x1
.loc 56
ext 0x6 ; xld.w %r11,0x00300103 ; 3145987
ext 0x4
ld.w %r11,0x3
bclr [%r11],0x0 ; xbclr [%r11],0x0
.loc 59
ext 0x6 ; xld.w %r10,0x00300100 ; 3145984
ext 0x4
ld.w %r10,0x0
ld.w %r15,0x0
;.set volatile
ld.b [%r10],%r15 ; xld.b [%r10],%r15
;.set novolatile
.loc 63
ext 0x6 ; xld.w %r11,0x00300047 ; 3145799
ext 0x1
ld.w %r11,0x7
bset [%r11],0x0 ; xbset [%r11],0x0
.loc 64
bset [%r11],0x2 ; xbset [%r11],0x2
.loc 67
ext 0x6 ; xld.w %r11,0x00300f47 ; 3149639
ext 0x3d
ld.w %r11,0x7
bclr [%r11],0x5 ; xbclr [%r11],0x5
.loc 70
ext 0x6 ; xld.w %r11,0x00300020 ; 3145760
ext 0x0
ld.w %r11,0x20
bset [%r11],0x0 ; xbset [%r11],0x0
.loc 71
ext 0x6 ; xld.w %r11,0x00300048 ; 3145800
ext 0x1
ld.w %r11,0x8
bset [%r11],0x0 ; xbset [%r11],0x0
.loc 74
ext 0x6 ; xld.w %r11,0x00300021 ; 3145761
ext 0x0
ld.w %r11,0x21
bset [%r11],0x0 ; xbset [%r11],0x0
.loc 77
bclr [%r12],0x1 ; xbclr [%r12],0x1
.loc 79
; APP
nop
; NO_APP
.loc 81
ld.w %r11,0x0
ext 0x9c ; xld.w %r12,0x0000270f ; 9999
ld.w %r12,0xf
__LX5: ; __L5:
.loc 82
; APP
nop
; NO_APP
.loc 81
add %r11,0x1 ; xadd %r11,%r11,1
ld.uh %r10,%r11
cmp %r10,%r12
jrule __LX5 ; xjrule __L5
.loc 87
ext 0x0 ; xld.w %r11,0x000402d9 ; 262873
ext 0x100b
ld.w %r11,0x19
bset [%r11],0x4 ; xbset [%r11],0x4
.loc 88
ext 0x80 ; xld.w %r12,0x04000004 ; 67108868
ext 0x0
ld.w %r12,0x4
ext 0x2 ; xld.w %r10,0x00000090 ; 144
ld.w %r10,0x10
;.set volatile
ld.b [%r12],%r10 ; xld.b [%r12],%r10
;.set novolatile
.loc 89
bclr [%r11],0x4 ; xbclr [%r11],0x4
.loc 91
bset [%r11],0x5 ; xbset [%r11],0x5
.loc 92
ext 0x80 ; xld.w %r10,0x04000008 ; 67108872
ext 0x0
ld.w %r10,0x8
ld.w %r15,0x0
;.set volatile
ld.b [%r10],%r15 ; xld.b [%r10],%r15
;.set novolatile
.loc 93
bclr [%r11],0x5 ; xbclr [%r11],0x5
.loc 96
ext p_nand_fls_id+0x0@h ; xld.w %r12,[p_nand_fls_id]
ext p_nand_fls_id+0x0@m
ld.w %r9,p_nand_fls_id+0x0@l
ld.w %r12,[%r9]
ext 0x80 ; xld.w %r11,0x04000000 ; 67108864
ext 0x0
ld.w %r11,0x0
;.set volatile
ld.ub %r10,[%r11] ; xld.ub %r10,[%r11]
;.set novolatile
ld.b [%r12],%r10 ; xld.b [%r12],%r10
.loc 97
ext p_nand_fls_id+0x0@h ; xld.w %r12,[p_nand_fls_id]
ext p_nand_fls_id+0x0@m
ld.w %r9,p_nand_fls_id+0x0@l
ld.w %r12,[%r9]
;.set volatile
ld.ub %r10,[%r11] ; xld.ub %r10,[%r11]
;.set novolatile
ext 0x1 ; xld.b [%r12+1],%r10
ld.b [%r12],%r10
.loc 98
ext p_nand_fls_id+0x0@h ; xld.w %r12,[p_nand_fls_id]
ext p_nand_fls_id+0x0@m
ld.w %r9,p_nand_fls_id+0x0@l
ld.w %r12,[%r9]
;.set volatile
ld.ub %r10,[%r11] ; xld.ub %r10,[%r11]
;.set novolatile
ext 0x2 ; xld.b [%r12+2],%r10
ld.b [%r12],%r10
.loc 99
ext p_nand_fls_id+0x0@h ; xld.w %r12,[p_nand_fls_id]
ext p_nand_fls_id+0x0@m
ld.w %r9,p_nand_fls_id+0x0@l
ld.w %r12,[%r9]
;.set volatile
ld.ub %r10,[%r11] ; xld.ub %r10,[%r11]
;.set novolatile
ext 0x3 ; xld.b [%r12+3],%r10
ld.b [%r12],%r10
.loc 101
ext 0x6 ; xld.w %r11,0x00300022 ; 3145762
ext 0x0
ld.w %r11,0x22
bset [%r11],0x1 ; xbset [%r11],0x1
.loc 102
; APP
nop
; NO_APP
.loc 103
ext p_nand_fls_id+0x0@h ; xld.w %r12,[p_nand_fls_id]
ext p_nand_fls_id+0x0@m
ld.w %r9,p_nand_fls_id+0x0@l
ld.w %r12,[%r9]
ld.ub %r11,[%r12] ; xld.ub %r11,[%r12]
.loc 106
ld.w %r10,0x1 ; xld.w %r10,0x00000001 ; 1
.loc 103
ext 0x3 ; xcmp %r11,236
cmp %r11,0x2c
jrne __LX7 ; xjrne __L7
ext 0x1 ; xld.ub %r11,[%r12+1]
ld.ub %r11,[%r12]
ext 0x3 ; xcmp %r11,241
cmp %r11,0x31
jrne __LX7 ; xjrne __L7
ext 0x3 ; xld.ub %r11,[%r12+3]
ld.ub %r11,[%r12]
xor %r11,0x15 ; xxor %r11,%r11,0x00000015
not %r10,%r11
add %r10,1
or %r10,%r11
srl %r10,0x8 ; xsrl %r10,31
srl %r10,0x8
srl %r10,0x8
srl %r10,0x7
__LX7: ; __L7:
.loc 106
.loc 109
.def bend, scl 110, type 0x0, endef
ret
.def end, scl 111, type 0x0, endef
.align 1
.def nand_fls_Reset, val nand_fls_Reset, scl 2, type 0x21, endef
.global nand_fls_Reset
.loc 112
.def ent, scl 101, type 0x0, endef
nand_fls_Reset:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.loc 114
.def begin, scl 100, type 0x0, endef
.def i, val 10, scl 4, type 0x4, endef
.loc 116
ext 0x0 ; xld.w %r11,0x000402d9 ; 262873
ext 0x100b
ld.w %r11,0x19
bset [%r11],0x4 ; xbset [%r11],0x4
.loc 118
ext 0x80 ; xld.w %r12,0x04000000 ; 67108864
ext 0x0
ld.w %r12,0x0
ext 0x3 ; xld.w %r10,0x000000ff ; 255
ld.w %r10,0x3f
;.set volatile
ld.h [%r12],%r10 ; xld.h [%r12],%r10
;.set novolatile
.loc 120
bclr [%r11],0x4 ; xbclr [%r11],0x4
.loc 123
ld.w %r10,0x0
ext 0xc ; xld.w %r11,0x0000031f ; 799
ld.w %r11,0x1f
__LX13: ; __L13:
.loc 124
; APP
nop
; NO_APP
.loc 123
add %r10,0x1 ; xadd %r10,%r10,1
cmp %r10,%r11
jrle __LX13 ; xjrle __L13
.loc 128
.def bend, scl 110, type 0x0, endef
ret
.def end, scl 111, type 0x0, endef
.align 1
.def nand_fls_erase_block, val nand_fls_erase_block, scl 2, type 0x24, endef
.global nand_fls_erase_block
.loc 136
.def ent, scl 101, type 0x0, endef
nand_fls_erase_block:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
.def Block_Number, val 12, scl 17, type 0xe, endef
.loc 138
.def begin, scl 100, type 0x0, endef
.loc 140
ext 0x6 ; xld.w %r11,0x00300022 ; 3145762
ext 0x0
ld.w %r11,0x22
bclr [%r11],0x1 ; xbclr [%r11],0x1
.loc 141
; APP
nop
; NO_APP
.loc 144
ext 0x0 ; xld.w %r11,0x000402d9 ; 262873
ext 0x100b
ld.w %r11,0x19
bset [%r11],0x4 ; xbset [%r11],0x4
.loc 145
ext 0x80 ; xld.w %r14,0x04000004 ; 67108868
ext 0x0
ld.w %r14,0x4
ext 0x1 ; xld.w %r10,0x00000060 ; 96
ld.w %r10,0x20
;.set volatile
ld.b [%r14],%r10 ; xld.b [%r14],%r10
;.set novolatile
.loc 146
bclr [%r11],0x4 ; xbclr [%r11],0x4
.loc 149
bset [%r11],0x5 ; xbset [%r11],0x5
.loc 152
ext 0x80 ; xld.w %r13,0x04000008 ; 67108872
ext 0x0
ld.w %r13,0x8
sll %r12,0x6 ; xsll %r12,6
ld.w %r10,%r12
ext 0x3 ; xand %r10,%r10,0x000000ff
and %r10,0x3f
;.set volatile
ld.h [%r13],%r10 ; xld.h [%r13],%r10
;.set novolatile
.loc 155
ext 0x3fc ; xand %r12,%r12,0x0000ff00
and %r12,0x0
srl %r12,0x8 ; xsrl %r12,8
;.set volatile
ld.h [%r13],%r12 ; xld.h [%r13],%r12
;.set novolatile
.loc 157
bclr [%r11],0x5 ; xbclr [%r11],0x5
.loc 160
bset [%r11],0x4 ; xbset [%r11],0x4
.loc 161
ext 0x3 ; xld.w %r10,0x000000d0 ; 208
ld.w %r10,0x10
;.set volatile
ld.b [%r14],%r10 ; xld.b [%r14],%r10
;.set novolatile
.loc 162
bclr [%r11],0x4 ; xbclr [%r11],0x4
.loc 164
; APP
nop
; NO_APP
.loc 165
; APP
nop
; NO_APP
.loc 166
; APP
nop
; NO_APP
.loc 167
; APP
nop
; NO_APP
.loc 168
; APP
nop
; NO_APP
.loc 169
; APP
nop
; NO_APP
.loc 170
; APP
nop
; NO_APP
.loc 171
; APP
nop
; NO_APP
.loc 172
; APP
nop
; NO_APP
.loc 173
; APP
nop
; NO_APP
.loc 174
; APP
nop
; NO_APP
.loc 175
; APP
nop
; NO_APP
.loc 176
; APP
nop
; NO_APP
.loc 177
; APP
nop
; NO_APP
.loc 178
; APP
nop
; NO_APP
.loc 179
; APP
nop
; NO_APP
.loc 180
; APP
nop
; NO_APP
.loc 181
; APP
nop
; NO_APP
.loc 182
; APP
nop
; NO_APP
.loc 183
; APP
nop
; NO_APP
.loc 184
; APP
nop
; NO_APP
.loc 186
ext 0x6 ; xld.w %r12,0x00300f46 ; 3149638
ext 0x3d
ld.w %r12,0x6
ext 0x0 ; xld.w %r11,0x00000020 ; 32
ld.w %r11,0x20
__LX18: ; __L18:
.loc 187
;.set volatile
ld.ub %r10,[%r12] ; xld.ub %r10,[%r12]
;.set novolatile
and %r10,%r11
ld.ub %r10,%r10
cmp %r10,0x0
jreq __LX18 ; xjreq __L18
.loc 190
ext 0x0 ; xld.w %r11,0x000402d9 ; 262873
ext 0x100b
ld.w %r11,0x19
bset [%r11],0x4 ; xbset [%r11],0x4
.loc 191
ext 0x80 ; xld.w %r12,0x04000004 ; 67108868
ext 0x0
ld.w %r12,0x4
ext 0x1 ; xld.w %r10,0x00000070 ; 112
ld.w %r10,0x30
;.set volatile
ld.b [%r12],%r10 ; xld.b [%r12],%r10
;.set novolatile
.loc 192
bclr [%r11],0x4 ; xbclr [%r11],0x4
.loc 193
ext 0x80 ; xld.w %r10,0x04000000 ; 67108864
ext 0x0
ld.w %r10,0x0
;.set volatile
ld.ub %r10,[%r10] ; xld.ub %r10,[%r10]
;.set novolatile
ld.w %r12,%r10
and %r12,0x1 ; xand %r12,%r12,0x00000001
jrne __LX20 ; xjrne __L20
.loc 201
ext 0x6 ; xld.w %r11,0x00300022 ; 3145762
ext 0x0
ld.w %r11,0x22
bset [%r11],0x1 ; xbset [%r11],0x1
.loc 202
ld.w %r15,0x0
ext ret+0x0@h ; xld.b [ret],%r15
ext ret+0x0@m
ld.w %r9,ret+0x0@l
ld.b [%r9],%r15
.loc 203
ld.w %r10,%r12
jp __LX22 ; xjp __L22
__LX20: ; __L20:
.loc 195
ext 0x6 ; xld.w %r10,0x00300022 ; 3145762
ext 0x0
ld.w %r10,0x22
bset [%r10],0x1 ; xbset [%r10],0x1
.loc 196
ld.w %r10,0x1 ; xld.w %r10,0x00000001 ; 1
ext ret+0x0@h ; xld.b [ret],%r10
ext ret+0x0@m
ld.w %r9,ret+0x0@l
ld.b [%r9],%r10
.loc 197
ld.w %r10,0x3f ; xld.w %r10,-1 ; 0xffffffff
__LX22: ; __L22:
.loc 206
.def bend, scl 110, type 0x0, endef
ret
.def end, scl 111, type 0x0, endef
.align 1
.def nand_fls_write_page, val nand_fls_write_page, scl 2, type 0x24, endef
.global nand_fls_write_page
.loc 211
.def ent, scl 101, type 0x0, endef
nand_fls_write_page:
; .frame %sp,4,$31 # vars= 0, regs= 1/0, args= 0, extra= 0
; .mask 0x80000000,-4
; .fmask 0x00000000,0
ld.w %r15,%r12
.def data, val 15, scl 17, type 0x1c, endef
.def page_num, val 13, scl 17, type 0xe, endef
.def block_num, val 14, scl 17, type 0xe, endef
.loc 212
.def begin, scl 100, type 0x0, endef
.def sWriteCount, val 11, scl 4, type 0xd, endef
.loc 215
ext 0x6 ; xld.w %r11,0x00300022 ; 3145762
ext 0x0
ld.w %r11,0x22
bclr [%r11],0x1 ; xbclr [%r11],0x1
.loc 216
; APP
nop
; NO_APP
.loc 219
ext 0x0 ; xld.w %r12,0x000402d9 ; 262873
ext 0x100b
ld.w %r12,0x19
bset [%r12],0x4 ; xbset [%r12],0x4
.loc 220
ext 0x80 ; xld.w %r11,0x04000004 ; 67108868
ext 0x0
ld.w %r11,0x4
ext 0x2 ; xld.w %r10,0x00000080 ; 128
ld.w %r10,0x0
;.set volatile
ld.b [%r11],%r10 ; xld.b [%r11],%r10
;.set novolatile
.loc 221
bclr [%r12],0x4 ; xbclr [%r12],0x4
.loc 224
bset [%r12],0x5 ; xbset [%r12],0x5
.loc 227
ext 0x80 ; xld.w %r11,0x04000008 ; 67108872
ext 0x0
ld.w %r11,0x8
ld.w %r4,0x0
;.set volatile
ld.h [%r11],%r4 ; xld.h [%r11],%r4
;.set novolatile
.loc 230
;.set volatile
ld.h [%r11],%r4 ; xld.h [%r11],%r4
;.set novolatile
.loc 233
sll %r14,0x6 ; xsll %r14,6
add %r14,%r13
ld.w %r10,%r14
ext 0x3 ; xand %r10,%r10,0x000000ff
and %r10,0x3f
;.set volatile
ld.h [%r11],%r10 ; xld.h [%r11],%r10
;.set novolatile
.loc 236
ext 0x3fc ; xand %r14,%r14,0x0000ff00
and %r14,0x0
srl %r14,0x8 ; xsrl %r14,8
;.set volatile
ld.h [%r11],%r14 ; xld.h [%r11],%r14
;.set novolatile
.loc 238
bclr [%r12],0x5 ; xbclr [%r12],0x5
.loc 241
ld.w %r11,0x0
ext 0x80 ; xld.w %r13,0x04000000 ; 67108864
ext 0x0
ld.w %r13,0x0
ext 0x20 ; xld.w %r12,0x0000083f ; 2111
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -