⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drv_nandflash.ms

📁 nandflash驱动程序
💻 MS
📖 第 1 页 / 共 2 页
字号:
	.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 + -